日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

建立时间和保持时间(setup time 和 hold time)

發布時間:2024/1/4 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 建立时间和保持时间(setup time 和 hold time) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建立時間和保持時間貫穿了整個時序分析過程。只要涉及到同步時序電路,那么必然有上升沿、下降沿采樣,那么無法避免setup-time 和 hold-time這兩個概念。本文內容相對獨立于該系列其他文章,是同步時序電路的基礎。

針對xilinx手冊中一些概念的更新和術語的規范化,以及存在的一些問題,參考文檔為UG906,已進行了一系列修改。--2019/5/5

系列目錄

時序收斂:基本概念

建立時間和保持時間(setup time 和 hold time)

OFFSET約束(OFFSET IN 和OFFSET OUT)

Clock Skew , Clock uncertainly 和 Period

特殊約束From To

OFFSET IN 使用舉例

Achieving Timing Closure

1. 什么是setup-time 和 hold-time

同步時序電路設計中,只在時鐘的上升沿或下降沿進行采樣。為了正確得到采樣結果,需要確保采樣時刻數據有效,因此工具會對綜合結果進行靜態時序分析,以判斷時鐘和數據之間的相對關系是否滿足要求。以寄存器-寄存器之間的路徑為例子

圖1

圖2

發射時間(launch edge):源時鐘發射數據的時刻
采樣時間(capture edge):目的時鐘采樣數據的時刻(顯然采樣時刻要晚于發射時刻)

而Setup time和Hold time,按照維基百科的解釋為

Setup time is the minimum amount of time the data signal should be held steady before the clock event so that the data is reliably sampled by the clock. This applies to synchronous input signals to the flip-flop.

Hold time is the minimum amount of time the data signal should be held steady after the clock event so that the data are reliably sampled. This applies to synchronous input signals to the flip-flop.

無論是Setup time 或者Hold time,都是指時間上的相對關系;在具體分析過程中,時鐘有發射時鐘和采樣時鐘,而各個路徑上的數據也有不同的延時,因此僅提及Setup time/Hold time往往有指代不清的問題。因此,Xilinx在UG902中明確了

setup relationship:時序分析工具給出的launch edge和capture edge之間setup關系
setup requirement:launch edge和capture edge之間最嚴格的setup約束(分析得到所有的setup relationship中的最小值)
hold relationship:時序分析工具給出的launch edge和capture edge之間hold關系
hold requirement:launch edge和capture edge之間最嚴格的hold約束(分析得到所有的hold relationship中的最大值)

如圖2所示,在同一理想時鐘下,假設時鐘周期為5ns;lanch time記為0ns,則capture time為5ns,此時setup relationship為5ns,hold relationship為0ns。

2. 建立在Setup和Hold上時序分析

建立在上一節基礎上,可以對數據的具體采樣時刻進行分析,以判斷是否在數據有效時刻完成了采樣。如果說采樣時刻比數據到達時刻晚,則滿足了setup的要求。

如圖1所示,由于源時鐘可能有路徑延時,因此Q端的輸出會比launch time晚source clock path delay,同時由于在數據路徑上有延時,因此到達下一寄存器Q端還需花費datapath delay時間,因此

Data Arrival Time(Setup) = launch edge time + source clock path delay + datapath delay

類似可計算實際的采樣時刻

Data Required Time(Setup) = Caputure edge time + destinationclock path delay – clock uncertainty – Synchronous Element Setup time

其中Synchronous Element Setup time是寄存器的特性,Clock Uncertainty類似下圖所示,由于時鐘的不確定性,需要考慮最壞情況。

Xilinx計算Slack來判斷是否滿足是需要求。Slack的中文意思是“松弛的”,可以簡單的理解為設計余量。即如果slack是正數,那么設計滿足要求,否則不滿足要求。對于setup time的slack,有

Slack = Data Required Time(Setup) - Data Arrival Time(Setup)

如圖2所示的理想情況下,Required Time(setup)為5ns,只要datapth delay不大于5ns,那么Slack就能滿足要求。

當然,在一個設計中會存在多條路徑,所有的Slack均需要滿足要求。

類似的,也可以給出Hold的分析結果;與setup不同,要求數據完成采樣之后下一個數據才能到達。

Data Arrival Time(hold) = launch edge time + source clock path delay + datapath delay

Data Required Time(Setup) = Caputure edge time + destinationclock path delay + clock uncertainty + Synchronous Element Hold time

Slack = Data Arrival Time(Hold) - Data Requried Time(Hold)

如圖2所示的理想情況下,Required Time(Hold)為0ns,只要datapth delay大于0,那么Slack就能滿足要求。

總結

以上是生活随笔為你收集整理的建立时间和保持时间(setup time 和 hold time)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。