91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA時(shí)序案例之多周期路徑分析

電子設(shè)計(jì) ? 來(lái)源:科學(xué)計(jì)算technomania ? 作者:貓叔 ? 2020-11-18 13:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

兩種時(shí)序例外

多周期路徑

上面我們講的是時(shí)鐘周期約束,默認(rèn)按照單周期關(guān)系來(lái)分析數(shù)據(jù)路徑,即數(shù)據(jù)的發(fā)起沿和捕獲沿是最鄰近的一對(duì)時(shí)鐘沿。如下圖所示。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


默認(rèn)情況下,保持時(shí)間的檢查是以建立時(shí)間的檢查為前提,即總是在建立時(shí)間的前一個(gè)時(shí)鐘周期確定保持時(shí)間檢查。這個(gè)也不難理解,上面的圖中,數(shù)據(jù)在時(shí)刻1的邊沿被發(fā)起,建立時(shí)間的檢查是在時(shí)刻2進(jìn)行,而保持時(shí)間的檢查是在時(shí)刻1(如果這里不能理解,再回頭看我們講保持時(shí)間章節(jié)的內(nèi)容),因此保持時(shí)間的檢查是在建立時(shí)間檢查的前一個(gè)時(shí)鐘沿。

但在實(shí)際的工程中,經(jīng)常會(huì)碰到數(shù)據(jù)被發(fā)起后,由于路徑過(guò)長(zhǎng)或者邏輯延遲過(guò)長(zhǎng)要經(jīng)過(guò)多個(gè)時(shí)鐘周期才能到達(dá)捕獲寄存器;又或者在數(shù)據(jù)發(fā)起的幾個(gè)周期后,后續(xù)邏輯才能使用。這時(shí)如果按照單周期路徑進(jìn)行時(shí)序檢查,就會(huì)報(bào)出時(shí)序違規(guī)。因此就需要我們這一節(jié)所講的多周期路徑了。

多周期約束的語(yǔ)句是:

set_multicycle_path  [-setup|-hold] [-start|-end][-from ] [-to ] [-through ]

對(duì)于建立時(shí)間,num_cycles是指多周期路徑所需的時(shí)鐘周期個(gè)數(shù);對(duì)于保持時(shí)間,num_cycles是指相對(duì)于默認(rèn)的捕獲沿,實(shí)際捕獲沿應(yīng)回調(diào)的周期個(gè)數(shù)。

發(fā)起沿和捕獲沿可能是同一個(gè)時(shí)鐘,也可能是兩個(gè)時(shí)鐘,參數(shù)start和end就是選擇參考時(shí)鐘是發(fā)送端還是接收端。

  • start表示參考時(shí)鐘為發(fā)送端(發(fā)端)所用時(shí)鐘,對(duì)于保持時(shí)間的分析,若后面沒(méi)有指定start或end,則默認(rèn)為為-start;
  • end表示參考時(shí)鐘為捕獲端(收端)所用時(shí)鐘,對(duì)于建立時(shí)間的分析,若后面沒(méi)有指定start或end,則默認(rèn)為為-end;

上面這兩句話也不難理解,因?yàn)閟etup-time是在下一個(gè)時(shí)鐘沿進(jìn)行捕獲時(shí)的約束,因此默認(rèn)是對(duì)接收端的約束;而hold-up-time是對(duì)同一個(gè)時(shí)鐘沿的約束,目的是發(fā)送端不能太快,是對(duì)發(fā)送端的約束。

對(duì)于單周期路徑來(lái)說(shuō),setup的num_cycles為1,hold的num_cycles為0.

多周期路徑要分以下幾種情況進(jìn)行分析:

1. 單時(shí)鐘域

即發(fā)起時(shí)鐘和捕獲時(shí)鐘是同一個(gè)時(shí)鐘,其多周期路徑模型如下圖所示。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


單時(shí)鐘域的多周期路徑常見(jiàn)于帶有使能的電路中,我們以雙時(shí)鐘周期路徑為例,其實(shí)現(xiàn)電路如下:

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


若我們沒(méi)有指定任何的約束,默認(rèn)的建立/保持時(shí)間的分析就像我們上面所講的單周期路徑,如下圖所示。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


但由于我們的的數(shù)據(jù)經(jīng)過(guò)了兩個(gè)時(shí)鐘周期才被捕獲,因此建立時(shí)間的分析時(shí)需要再延遲一個(gè)周期的時(shí)間。

采用如下的時(shí)序約束:

set_multicycle_path 2 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

在建立時(shí)間被修改后,保持時(shí)間也會(huì)自動(dòng)調(diào)整到捕獲時(shí)鐘沿的前一個(gè)時(shí)鐘沿,如下圖所示。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


很明顯,這個(gè)保持時(shí)間檢查是不對(duì)的,因?yàn)楸3謺r(shí)間的檢查針對(duì)的是同一個(gè)時(shí)鐘沿,因此我們要把保持時(shí)間往回調(diào)一個(gè)周期,需要再增加一句約束:

set_multicycle_path 1 -hold -end -from [get_pins data0_reg/C]  -to [get_pins data1_reg/D]

這里加上-end參數(shù)是因?yàn)槲覀円巡东@時(shí)鐘沿往前移,因此針對(duì)的是接收端,但由于我們這邊講的是單時(shí)鐘域,發(fā)送端和接收端的時(shí)鐘是同一個(gè),因此-end可以省略。這樣,完整的時(shí)序約束如下:

set_multicycle_path 2 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]
set_multicycle_path 1 -hold  -from [get_pins data0_reg/C]  -to [get_pins data1_reg/D]

約束完成后,建立保持時(shí)間檢查如下圖所示。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


在單時(shí)鐘域下,若數(shù)據(jù)經(jīng)過(guò)N個(gè)周期到達(dá),則約束示例如下:

set_multicycle_path N -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]
set_multicycle_path N-1 -hold  -from [get_pins data0_reg/C]  -to [get_pins data1_reg/D]

2. 時(shí)鐘相移

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


前面我們討論的是在單時(shí)鐘域下,發(fā)送端和接收端時(shí)鐘是同頻同相的,如果兩個(gè)時(shí)鐘同頻不同相怎么處理?

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


如上圖所示,時(shí)鐘周期為4ns,接收端的時(shí)鐘沿比發(fā)送端晚了0.3ns,若不進(jìn)行約束,建立時(shí)間只有0.3ns,時(shí)序基本不可能收斂;而保持時(shí)間則為3.7ns,過(guò)于豐富。可能有的同學(xué)對(duì)保持時(shí)間會(huì)有疑惑,3.7ns是怎么來(lái)的?還記得我們上面講的保持時(shí)間的定義么,在0ns時(shí)刻,接收端捕獲到發(fā)送的數(shù)據(jù)后,要再過(guò)3.7ns的時(shí)間發(fā)送端才會(huì)發(fā)出下一個(gè)數(shù)據(jù),因此本次捕獲的數(shù)據(jù)最短可持續(xù)3.7ns,即保持時(shí)間為3.7ns。

因此,在這種情況下,我們應(yīng)把捕獲沿向后移一個(gè)周期,約束如下:

set_multicycle_path 2 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]

對(duì)setup約束后,hold會(huì)自動(dòng)向后移動(dòng)一個(gè)周期,此時(shí)的建立保持時(shí)間檢查如下:


那如果接收端的時(shí)鐘比發(fā)送端的時(shí)鐘超前了怎么處理?

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


同樣的,時(shí)鐘周期為4ns,但接收端時(shí)鐘超前了0.3ns,從圖中可以看出,此時(shí)setup是3.7ns,而保持時(shí)間是0.3ns。這兩個(gè)時(shí)間基本已經(jīng)滿足了Xilinx器件的要求,因此無(wú)需進(jìn)行約束。

3. 慢時(shí)鐘到快時(shí)鐘的多周期

當(dāng)發(fā)起時(shí)鐘慢于捕獲時(shí)鐘時(shí),我們應(yīng)該如何處理?

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


假設(shè)捕獲時(shí)鐘頻率是發(fā)起時(shí)鐘頻率的3倍,在沒(méi)有任何約束的情況下,Vivado默認(rèn)會(huì)按照如下圖所示的建立保持時(shí)間進(jìn)行分析。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


但我們可以通過(guò)約束讓建立時(shí)間的要求更容易滿足,即

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]

跟上面講的一樣,設(shè)置了setup,hold會(huì)自動(dòng)變化,但我們不希望hold變化,因此再增加:

set_multicycle_path 2 -hold -end -from [get_clocks CLK1] -to [get_clocks CLK2]

這里由于發(fā)起和捕獲是兩個(gè)時(shí)鐘,因此-end參數(shù)是不可省的。加上時(shí)序約束后,Vivado會(huì)按照下面的方式進(jìn)行時(shí)序分析。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


4. 快時(shí)鐘到慢時(shí)鐘的多周期

當(dāng)發(fā)起時(shí)鐘快于捕獲時(shí)鐘時(shí),我們應(yīng)該如何處理?

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


假設(shè)發(fā)起時(shí)鐘頻率是捕獲時(shí)鐘頻率的3倍,在沒(méi)有任何約束的情況下,Vivado默認(rèn)會(huì)按照如下圖所示的建立保持時(shí)間進(jìn)行分析。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


同理,我們可以通過(guò)約束,讓時(shí)序條件更加寬裕。

set_multicycle_path 3 -setup -start -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path 2 -hold -from [get_clocks CLK1] -to [get_clocks CLK2]

這里的hold約束中沒(méi)有加-end參數(shù),這樣的話默認(rèn)就是-start,是因?yàn)槲覀儼寻l(fā)起時(shí)鐘回調(diào)2個(gè)周期,如下圖所示。

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


針對(duì)上面講的幾種多周期路徑,總結(jié)如下:

FPGA時(shí)序約束理論篇之兩種時(shí)序例外


偽路徑

什么是偽路徑?偽路徑指的是該路徑存在,但該路徑的電路功能不會(huì)發(fā)生或者無(wú)須時(shí)序約束。如果路徑上的電路不會(huì)發(fā)生,那Vivado綜合后會(huì)自動(dòng)優(yōu)化掉,因此我們無(wú)需考慮這種情況。

為什么要?jiǎng)?chuàng)建偽路徑?創(chuàng)建偽路徑可以減少工具運(yùn)行優(yōu)化時(shí)間,增強(qiáng)實(shí)現(xiàn)結(jié)果,避免在不需要進(jìn)行時(shí)序約束的地方花較多時(shí)間而忽略了真正需要進(jìn)行優(yōu)化的地方。

偽路徑一般用于:
? 跨時(shí)鐘域
? 一上電就被寫入數(shù)據(jù)的寄存器
? 異步復(fù)位或測(cè)試邏輯
? 異步雙端口RAM

可以看出,偽路徑主要就是用在異步時(shí)鐘的處理上,我們上一節(jié)講的多周期路徑中,也存在跨時(shí)鐘域的情況的,但上面我們講的是兩個(gè)同步的時(shí)鐘域。

偽路徑的約束為:

set_false_path [-setup] [-hold] [-from ] [-to ] [-through ]
  • -from的節(jié)點(diǎn)應(yīng)是有效的起始點(diǎn).有效的起始點(diǎn)包含時(shí)鐘對(duì)象,時(shí)序單元的clock引腳,或者input(or inout)原語(yǔ);
  • -to的節(jié)點(diǎn)應(yīng)包含有效的終結(jié)點(diǎn).一個(gè)有效的終結(jié)點(diǎn)包含時(shí)鐘對(duì)象,output(or inout)原語(yǔ)端口,或者時(shí)序功能單元的數(shù)據(jù)輸入端口;
  • -through的節(jié)點(diǎn)應(yīng)包括引腳,端口,或線網(wǎng).當(dāng)單獨(dú)使用-through時(shí),應(yīng)注意所有路徑中包含-through節(jié)點(diǎn)的路徑都將被時(shí)序分析工具所忽略.

需要注意的是,-through是有先后順序的,下面的兩個(gè)約束是不同的約束:

set_false_path -through cell1/pin1 -through cell2/pin2
set_false_path -through cell2/pin2 -through cell1/pin1

因?yàn)樗鼈兘?jīng)過(guò)的先后順序不同,偽路徑的約束是單向的,并非雙向的,若兩個(gè)時(shí)鐘域相互之間都有數(shù)據(jù)傳輸,則應(yīng)采用如下約束:

set_false_path -from [get_clocks clk1] -to [get_clocks clk2]
set_false_path -from [get_clocks clk2] -to [get_clocks clk1]

也可以直接采用如下的方式,與上述兩行約束等效:

set_clock_groups -async -group [get_clocks clk1] -to [get_clocks clk2]

還有一些其他的約束,比如case analysis、disabling timing和bus_skew等,由于平時(shí)用的比較少,這里就不講了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22427

    瀏覽量

    636787
  • 時(shí)序約束
    +關(guān)注

    關(guān)注

    1

    文章

    120

    瀏覽量

    13973
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    FPGA時(shí)序收斂的痛點(diǎn)與解決之道——從一次高速接口調(diào)試談起

    FPGA開發(fā)中,時(shí)序收斂往往是項(xiàng)目后期最令人頭疼的環(huán)節(jié)。許多工程師都有過(guò)這樣的經(jīng)歷:RTL仿真通過(guò),綜合布線后卻出現(xiàn)大量時(shí)序違例,為了滿足時(shí)序不得不反復(fù)修改代碼、調(diào)整約束,甚至重構(gòu)設(shè)
    的頭像 發(fā)表于 03-11 11:43 ?193次閱讀

    基于友晶DE10-Nano開發(fā)板的VGA顯示控制器模塊設(shè)計(jì)

    VGA顯示控制器模塊vga_generator.v(位于DemonstrationsFPGAHDMI_TXvpg_source路徑下)可生成符合DMT(Display Monitor Timing 顯示器時(shí)序)
    的頭像 發(fā)表于 02-26 13:43 ?5419次閱讀
    基于友晶DE10-Nano開發(fā)板的VGA顯示控制器模塊設(shè)計(jì)

    輸入引腳時(shí)鐘約束_Xilinx FPGA編程技巧-常用時(shí)序約束詳解

    基本的約束方法 為了保證成功的設(shè)計(jì),所有路徑時(shí)序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及異常路徑為: 輸入路徑(Input Pa
    發(fā)表于 01-16 08:19

    鎖存器中的時(shí)間借用概念與靜態(tài)時(shí)序分析

    對(duì)于基于鎖存器的設(shè)計(jì),靜態(tài)時(shí)序分析會(huì)應(yīng)用一個(gè)稱為時(shí)間借用的概念。本篇博文解釋了時(shí)間借用的概念,若您的設(shè)計(jì)中包含鎖存器且時(shí)序報(bào)告中存在時(shí)間借用,即可適用此概念。
    的頭像 發(fā)表于 12-31 15:25 ?5515次閱讀
    鎖存器中的時(shí)間借用概念與靜態(tài)<b class='flag-5'>時(shí)序</b><b class='flag-5'>分析</b>

    數(shù)字IC/FPGA設(shè)計(jì)中的時(shí)序優(yōu)化方法

    在數(shù)字IC/FPGA設(shè)計(jì)的過(guò)程中,對(duì)PPA的優(yōu)化是無(wú)處不在的,也是芯片設(shè)計(jì)工程師的使命所在。此節(jié)主要將介紹performance性能的優(yōu)化,如何對(duì)時(shí)序路徑進(jìn)行優(yōu)化,提高工作時(shí)鐘頻率。
    的頭像 發(fā)表于 12-09 10:33 ?3311次閱讀
    數(shù)字IC/<b class='flag-5'>FPGA</b>設(shè)計(jì)中的<b class='flag-5'>時(shí)序</b>優(yōu)化方法

    智多晶EDA工具HqFpga軟件的主要重大進(jìn)展

    圖、時(shí)序分析等。HQ支持Windows、Linux操作系統(tǒng)利用HQ設(shè)計(jì)套件,設(shè)計(jì)人員能夠?qū)崿F(xiàn)高效率的FPGA工程開發(fā)與調(diào)試驗(yàn)證。
    的頭像 發(fā)表于 11-08 10:15 ?3766次閱讀
    智多晶EDA工具Hq<b class='flag-5'>Fpga</b>軟件的主要重大進(jìn)展

    vivado時(shí)序分析相關(guān)經(jīng)驗(yàn)

    改為寄存輸出。 時(shí)序分析有兩個(gè)主要路徑 Intra-clock:同時(shí)鐘之間的路徑分析,需實(shí)打?qū)嵔鉀Q。(改善設(shè)計(jì),改變綜合策略等) Inter-clock:表示跨時(shí)鐘
    發(fā)表于 10-30 06:58

    E203內(nèi)核移植到FPGA開發(fā)板時(shí)出現(xiàn)時(shí)序違例的解決方式

    在移植內(nèi)核時(shí),用VIVADO進(jìn)行綜合實(shí)現(xiàn)后會(huì)出現(xiàn)時(shí)序違例,如圖: 雖然可以上板正常進(jìn)行開發(fā),但是還是想把這些違例解決下^_^ 檢查后,發(fā)現(xiàn)是 apb_adv_timer 這條路徑報(bào)的違例,解決方式
    發(fā)表于 10-27 07:32

    時(shí)序約束問(wèn)題的解決辦法

    slack 計(jì)算如下圖所示: 所以 slakc 為負(fù)數(shù)時(shí),說(shuō)明路徑的組合邏輯延時(shí)過(guò)長(zhǎng)。解決辦法有兩個(gè):第一個(gè)是降低時(shí)鐘頻率,第二個(gè)是將延時(shí)過(guò)長(zhǎng)的組合邏輯拆成兩個(gè)或者多個(gè)時(shí)鐘周期執(zhí)行。 無(wú)論 Setup
    發(fā)表于 10-24 09:55

    FPGA測(cè)試DDR帶寬跑不滿的常見(jiàn)原因及分析方法

    FPGA 中測(cè)試 DDR 帶寬時(shí),帶寬無(wú)法跑滿是常見(jiàn)問(wèn)題。下面我將從架構(gòu)、時(shí)序、訪問(wèn)模式、工具限制等多個(gè)維度,系統(tǒng)梳理導(dǎo)致 DDR 帶寬跑不滿的常見(jiàn)原因及分析方法。
    的頭像 發(fā)表于 10-15 10:17 ?1057次閱讀

    功率分析儀的校準(zhǔn)周期一般是多久?

    功率分析儀的校準(zhǔn)周期并非固定統(tǒng)一,需結(jié)合設(shè)備精度等級(jí)、使用環(huán)境、應(yīng)用場(chǎng)景(關(guān)鍵 / 非關(guān)鍵)、校準(zhǔn)類型(實(shí)驗(yàn)室溯源 / 現(xiàn)場(chǎng)日常)綜合確定,核心原則是 “在精度保障與成本效率間平衡”。以下是行業(yè)通用
    的頭像 發(fā)表于 09-25 17:31 ?857次閱讀

    京東:調(diào)用用戶行為API分析購(gòu)買路徑,優(yōu)化頁(yè)面跳轉(zhuǎn)邏輯

    ? ?在電商平臺(tái)的激烈競(jìng)爭(zhēng)中, 用戶購(gòu)買路徑的流暢性 直接影響轉(zhuǎn)化率。京東通過(guò)深度整合用戶行為API,構(gòu)建了完整的購(gòu)買路徑分析體系,顯著優(yōu)化了頁(yè)面跳轉(zhuǎn)邏輯。以下是關(guān)鍵技術(shù)實(shí)現(xiàn)路徑: 一、用戶行為
    的頭像 發(fā)表于 09-18 14:38 ?674次閱讀
    京東:調(diào)用用戶行為API<b class='flag-5'>分析</b>購(gòu)買<b class='flag-5'>路徑</b>,優(yōu)化頁(yè)面跳轉(zhuǎn)邏輯

    FPGA時(shí)序約束之設(shè)置時(shí)鐘組

    Vivado中時(shí)序分析工具默認(rèn)會(huì)分析設(shè)計(jì)中所有時(shí)鐘相關(guān)的時(shí)序路徑,除非時(shí)序約束中設(shè)置了時(shí)鐘組或f
    的頭像 發(fā)表于 04-23 09:50 ?1385次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>時(shí)序</b>約束之設(shè)置時(shí)鐘組

    TDengine 發(fā)布時(shí)序數(shù)據(jù)分析 AI 智能體 TDgpt,核心代碼開源

    2025 年 3 月 26 日,濤思數(shù)據(jù)通過(guò)線上直播形式正式發(fā)布了其新一代時(shí)序數(shù)據(jù)分析 AI 智能體——TDgpt,并同步開源其核心代碼。這一創(chuàng)新功能作為 TDengine 3.3.6.0 的重要
    的頭像 發(fā)表于 03-27 10:30 ?746次閱讀
    TDengine 發(fā)布<b class='flag-5'>時(shí)序數(shù)據(jù)分析</b> AI 智能體 TDgpt,核心代碼開源

    Techwiz LCD應(yīng)用:LC透鏡光線追跡

    TechWiz Ray 2D和3D計(jì)算光程差和焦距,并進(jìn)行高級(jí)LC分析,包括通過(guò)施加電壓進(jìn)行LC指向矢分布。 (a)LC分布和光學(xué)路徑分析(關(guān)狀態(tài)) (b)LC分布和光學(xué)路徑分析(開狀態(tài))
    發(fā)表于 03-18 08:49