vivado 亚稳态_【vivado学习五】时序分析
想一千次,不如去做一次。華麗的跌倒,勝過無謂的徘徊。
【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鎖存的數據很有可能存在亞穩態。
8 保持時間裕量(Hold Slack)
保持時間裕量(holdSlack)=DataRequired Time(hold)-Data Arrival Time(hold)如果為正,則認為數據在被鎖存的時候有足夠多的穩定時間,是有效的。反之則認為數據有誤或者數據可能存在亞穩態。
往期推薦
【Vivado 學習一】 時鐘約束
【Vivado 學習二】 IO延時約束
【Vivado 學習三】 時鐘網絡分析
【Vivado?學習四】 跨時鐘域路徑分析
更多精彩推薦,請關注我們
總結
以上是生活随笔為你收集整理的vivado 亚稳态_【vivado学习五】时序分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php post请求后端拿不到值_[精选
- 下一篇: evb测试板_做芯片 再“穷”不能“穷”