在高速的同步電路設(shè)計中,時序決定了一切,要求所有時序路徑都必須在約束限制的時鐘周期內(nèi),這成為設(shè)計人員最大的難題,因此,首先確定和分析基本時序路徑有助于設(shè)計者快速,準確地計算時序裕量,使系統(tǒng)穩(wěn)定工作,XILINX公司提倡的幾種常用基本路徑。
(1)Clock-to-Setup路徑:
clock-to-setup路徑從觸發(fā)器的輸入端開始,結(jié)束于下一級觸發(fā)器,鎖存器或者RAM的輸入端,對終止端的數(shù)據(jù)信號要求一定的建立時間。
如下圖所示:
該條路徑包括了觸發(fā)器內(nèi)部clock-to-Q的延遲,觸發(fā)器之間的由組合邏輯造成的路徑延遲以及目標觸發(fā)器的建立時間,其延時是數(shù)據(jù)從源觸發(fā)器開始,在下一個時鐘沿來到之前通過組合邏輯和布線的最大時間,Clock-to-Setup時間可通過約束文件中的周期約束來限制。
(2)Clock-to-pad路徑:
Clock-to-Pad路徑從寄存器或者鎖存器的時鐘輸入端開始,終止于芯片的輸出引腳,中間經(jīng)過了觸發(fā)器輸出端以及所有的組合邏輯,如下圖所示:
這條路徑包括了經(jīng)過觸發(fā)器的延時和從觸發(fā)器到輸出引腳之間的邏輯延遲,在約束文件中,可以通過OFFSET語句和FROM:TO來約束,如果使用OFFSET語句,那么時延計算時會包含時鐘輸入BUFFER/ROUTING延時;如果使用FROM:TO約束,則延時從觸發(fā)器自身開始,不包括輸入路徑,比較精確,所以使用相對更頻繁一些。
① OFFSET語句:OFFSET說明了外部時鐘和與其相關(guān)的輸入,輸出數(shù)據(jù)引腳之間的時序關(guān)系。其語法規(guī)則如下:
OFFSET={IN/OUT}"offset_time"[unit] {BEFORE/AFTER} "clk_name"[TIMEGRP"group_name"];
OFFSET可以用于設(shè)置多類約束,對于Clock-to-Pad需要將屬性配置為OUT AFTER, 例如:
NET Q_out OFFSET = OUT 35.0 AFTER "CLK_SYS"
② FROM :TO 語句 :FROM:TO定義了兩組信號之間時序關(guān)系。
其語法規(guī)則如下:
#TIMESPEC "TSname" = FROM "group1"TO "group2" value;
其中,TSname 必須以TS開頭,group1是起始路徑,group2是目的路徑,value值的默認單位為ns,也可以使用MHZ。
實例:
TIMESPEC TS_aa = FROM FFS TO PAD 10;
(3)Pad-to-Pad路徑:
Pad-to-Pad路徑從芯片輸入信號端口開始,結(jié)束于芯片輸出信號端口,中間包含所有組合邏輯,但并不包含任何同步邏輯如圖所示:
Pad-to-Pad路徑延時是數(shù)據(jù)輸入到芯片,經(jīng)過邏輯延時和布線時延后再輸出芯片的最大時間要求,在約束文件中任然通過FROM:TO來約束,其語法如下:
TIMESPEC TS_aa = FROMPADSTO PADS 10 ;
(4)Pad-to-Setup路徑
Pad-to-setup路徑從芯片的輸入信號端口開始,結(jié)束于同步電路模塊(觸發(fā)器,鎖存器和RAM),對相應(yīng)的數(shù)據(jù)信號要求一定的建立時間,如下圖所示:
該路徑可以通過BUFFER和所有組合邏輯,不包含任何同步電路木塊和雙向端口,是數(shù)據(jù)到達芯片的最大時間要求,和Clock-to-Pad一樣,該路徑可以通過OFFSET和FROM:TO來設(shè)計,其中OFFSET語句的屬性設(shè)置為OFFSET IN BEFORE。
例如:
OFFSET = IN 10 ns BEFORE my_clk TIMEGRP My_FFS;
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61131 -
時序
+關(guān)注
關(guān)注
5文章
387瀏覽量
37317
原文標題:FPGA設(shè)計的常用基本時序路徑分析
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論