典型的時序模型由發起寄存器、組合邏輯和捕獲寄存器3部分組成,如圖1所示形成了三條時鐘路徑:原時鐘路徑(Source Clock path)、數據時鐘路徑(Data path)、目的時鐘路徑(Destination Clock path)。
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--捕獲寄存器保持時間
4、數據到達時間(Data Arrival Time)
數據到達時間(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鎖存的數據很有可能存在亞穩態。
8、保持時間裕量(Hold Slack)
保持時間裕量(holdSlack)=DataRequired Time(hold)-Data Arrival Time(hold)
如果為正,則認為數據在被鎖存的時候有足夠多的穩定時間,是有效的。反之則認為數據有誤或者數據可能存在亞穩態。
編輯:hfy
-
寄存器
+關注
關注
31文章
5427瀏覽量
123730 -
數據信號
+關注
關注
0文章
61瀏覽量
12115 -
Vivado
+關注
關注
19文章
834瀏覽量
68379
發布評論請先 登錄
TDengine 發布時序數據分析 AI 智能體 TDgpt,核心代碼開源

一文詳解Vivado時序約束

集成電路設計中靜態時序分析介紹
ads1248使用三條校準指令校驗時,要使用內部的VREF,還是使用外部的REF0?
Vivado Design Suite用戶指南: 設計分析與收斂技巧

使用ads1148制作的測溫電路中與430單片機通信,2.CKPH會使得不能正常通信嗎?
Vivado使用小技巧

評論