
想一千次,不如去做一次。華麗的跌倒,勝過無謂的徘徊。
【vivado學習五】時序分析
典型的時序模型由發起寄存器、組合邏輯和捕獲寄存器3部分組成,如圖1所示形成了三條時鐘路徑:原時鐘路徑(Source Clock path)、資料時鐘路徑(Data path)、目的時鐘路徑(Destination Clock path)。
圖1 時序模型1
1 建立時間(setup)和保持時間(hold)
如圖1所示,時鐘上升邊沿(Capture Edge 、Next Launch Edge)會将資料儲存下來,但是必須要滿足一定的條件:
A,建立時間Tsu:在時鐘有效沿之前,資料必須保持穩定的最小時間;
B,保持時間Th:在時鐘有效沿之後,資料必須保持穩定的最小時間;
這就相當于一個視窗時間,在有效邊沿的視窗時間内,資料必須保持穩定;這裡的時鐘信号時序和資料信号時序,都是寄存器實際感受到的時序。
2 發起沿和捕獲沿
如圖1所示,發起沿和捕獲沿通常相差一個時鐘周期同時捕獲沿也是下一個發起沿。
發起沿(LaunchEdge):資料被launch的時鐘邊沿;也就是說,每一個啟動沿,一般都會産生一個新的資料!
捕獲沿(CaptureEdge):資料被latch的時鐘邊沿;也就是說,每一個鎖存沿,都會有一個新的資料被儲存!
3 時序模型2
如圖2所示:
Clk--時鐘源
Rega--發起寄存器
Regb--捕獲寄存器
Tclka--原時鐘延時
Tclkb--目的時鐘延時
Tco--發起沿有效到資料出現在發起寄存器Q端口所需時間
Tdata--資料延時(組合邏輯和走線延時)
Tsu--捕獲寄存器建立時間
Th--捕獲寄存器保持時間
圖2 時序模型2
4 資料到達時間(Data Arrival Time)
圖3 資料到達時間
資料到達時間(Data Arrival Time)=Launch Edge +Tclka+Tco+Tdata
已發起沿為時間參考點,LaunchEdge 通常為0。
5 資料建立需求時間(setup)
資料建立需求時間(DataRequired Time(setup)) = Tclkb-Tsu-Clock Uncertainty
表明資料必須提前Tsu穩定存在于捕獲寄存器的輸入端口。
6 資料保持需求時間(hold)
資料保持需求時間(DataRequired Time(hold))=Tclkb +Th-Clock Uncertainty
表明資料必須在時鐘捕獲沿(regb/clk)之後穩定存在一段時間Th。
7 建立時間裕量(Setup Slack)
建立時間裕量(SetupSlack)= Data Required Time(setup)-Data Arrival Time(setup)
如果SetupSlack為正,則說明資料在規定的時間内達到了目标。反之,則認為資料并沒有在規定的時間達到目标,此時REG2鎖存的資料很有可能存在亞穩态。
保持時間裕量(holdSlack)=DataRequired Time(hold)-Data Arrival Time(hold)
往期推薦
【Vivado 學習一】 時鐘限制
【Vivado 學習二】 IO延時限制
【Vivado 學習三】 時鐘網絡分析
【Vivado 學習四】 跨時鐘域路徑分析
更多精彩推薦,請關注我們