FPGA設(shè)計時序分析一、時序路徑
一、前言
????時序路徑字面容易簡單地理解為時鐘路徑,事實時鐘存在的意義是為了數(shù)據(jù)的處理、傳輸,因此嚴(yán)格意義上的時序路徑是指在時鐘控制下的時鐘路徑與數(shù)據(jù)路徑。
二、時序路徑
????2.1 時序路徑構(gòu)成
????關(guān)鍵詞:源時鐘路徑,數(shù)據(jù)路徑,目的時鐘路徑
? ? 以數(shù)據(jù)在兩個寄存器間的傳輸連接為例,典型的時序路徑包含3個部分:源時鐘路徑,數(shù)據(jù)路徑,目的時鐘路徑,源時鐘路徑和目的時鐘路徑的時鐘可相同,也可不同。

2.2 時序路徑分類
????下圖為FPGA芯片與外圍電路連接的簡略圖,中間虛線框內(nèi)為FPGA器件,左右兩側(cè)的開發(fā)板器件分別為輸入到FPG芯片和FPGA芯片輸出到外圍器件。FPGA芯片通過DIN和DOUT口與外圍電路連接。

????將兩個寄存器REG A和REG B為界限,時序路徑可分為4類:
路徑1:外部器件到FPGA內(nèi)部的寄存器單元REG A,
路徑2:輸入端口DIN直連的寄存器REG A到輸出端口DOUT直連的寄存器REG B
路徑3:輸入寄存器REG A到輸出寄存器REG B
路徑4:芯片輸入端口DIN到輸出端口DOUT間的路徑

4類時序路徑組成分析
當(dāng)路徑1的起點非開發(fā)板的輸出Q,而是以DIN為起點時,路徑1是不存在源時鐘路徑。同理路徑3的終點非外部開發(fā)板的輸入端口D,而是以DOUT為終點時,路徑3不存在目的時鐘路徑。對于路徑4,因為起點和終點分別為DIN,DOUT,路徑上不存在寄存器,輸入輸出的時鐘可為虛擬時鐘,也可以是設(shè)計時鐘。
虛擬時鐘:用于描述數(shù)據(jù)引腳上的外部時鐘信號,約束時可不指定實際端口,該時鐘不會存在于FPGA內(nèi)部,為了方便時序分析而存在。
2.3?數(shù)據(jù)捕獲
關(guān)鍵詞:發(fā)送沿Lanch edge,捕獲沿Capture edge
????以邊沿觸發(fā)的觸發(fā)器為例,REG A的Q只有在起點處的源時鐘處于上升沿或下降沿時才會輸出D的數(shù)據(jù),傳輸?shù)絉EG B的輸入端口D。因此,該時鐘邊沿即為發(fā)送沿。同理,對于REG B的輸入D,只有在目的時鐘源處于上升沿或觸發(fā)沿時,才能輸入到觸發(fā)器REG B中,目的時鐘的時鐘信號邊沿稱為捕獲沿,即捕獲到發(fā)送沿發(fā)送來的數(shù)據(jù)。發(fā)送沿和捕獲沿相差一個時鐘周期

在10ns出,clk0將D0輸入發(fā)送出,即Q0的值為1,同時Q0的值傳輸?shù)紻1,捕獲時鐘clk1在20ns處將1捕獲,輸出到Q1,即經(jīng)過一個時鐘周期20ns,D0傳輸?shù)搅薗1。

2.4 Fast corner/Slow corner
????時序分析還需考慮器件在不同環(huán)境條件下的傳輸和處理時延不同,將這些影響時延的外在因素統(tǒng)一考慮,分為兩種極端場景,Slow corner和Fast corner,兩者可理解為最差的條件和最好的條件。每種場景在組合最大時延和最小時延,共存在四種情況。
Slow corner+最大時延
Slow corner+最小時延
Fast corner+最大時延
Fast corner+最小時延
2.5 Vivado時序報告
在Report Timing Summary中,Design Timing Summary中可以找到設(shè)計中setup和hold的最差時序路徑,setup和hold都大于0,時序不違例,該設(shè)計中無recovery、removal路徑。

設(shè)計中只對clk_100M設(shè)置了時鐘約束

clk_100M為手動設(shè)置的約束,其余時鐘為時鐘IP生成的,配置完成后會自動生成時鐘約束,最終來源也是clk_100M.

三、參考資料
用戶手冊《ug906-vivado-design-analysis-zh-cn-2022.2.pdf》