您好,登錄后才能下訂單哦!
靜態時序分析及setup及hold時序違例修復的示例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
STA用于分析設計中的所有時序路徑是否都時序收斂,其不需要輸入激勵。對于數字芯片設計工程師,必須要了解不同的時序路徑和相關的STA概念。
時序分析適用于任何ASIC設計的階段,可在各個設計階段執行。如果設計違反setup time或者hold time,則設計進入亞穩態。
因此,必須通過時序分析工具Synopsys PT找出并解決設計中的時序違例問題。
Setup Time& Hold Time
觸發器輸入信號'd'在有效時鐘邊沿到達之前所需的保持穩定值的最短時間,稱為setup time(建立時間)。
觸發器輸入信號'd'在時鐘的有效邊沿到達之后應至少保持的時間稱為hold time(保持時間)。
Frequency Calculations
如下圖所示,觸發器(reg1)的時序參數為tpff1和tsu1,觸發器(reg2)的時序參數為tpff2和tsu2。該數據路徑中的組合邏輯延遲為tcomb。這些時序參數可以用于確定該設計的最大工作頻率。
arrival time為tpff1 + tcomb,required time為Tclk-tsu2,其中Tclk是時鐘周期,tsu2是第二個觸發器的setup time。
因此,計算最大頻率需滿足:
tpff1 + tcomb = Tclk-tsu2 Tclk = tpff1 + tcomb +tsu2 Fmax = 1/( tpff1 + tcomb +tsu2)
Skew in Design
在上圖中,觸發1是launchflip-flop,觸發2是capture flip-flop。
在上面的例子中,時鐘路徑上增加了buffer延遲。此時,最大頻率為:
tpff1 + tcomb = Tclk-tsu2+tbufTclk = tpff1 + tcomb +tsu2- tbuf Fmax = 1/( tpff1 + tcomb +tsu2- tbuf)
在上面的例子中,數據路徑上增加了緩沖器延遲。此時,最大頻率為:
tpff1 + tcomb +tbuf= Tclk-tsu2Tclk = tpff1 + tcomb +tsu2+ tbufFmax = 1/( tpff1 + tcomb +tsu2+tbuf)
由此可以看出,數據路徑和時鐘路徑上的skew會從相反的方向影響設計的性能。
Timing Paths in Design
STA通過檢查設計中所有可能的時序路徑來確定ASIC設計是否時序違例,并且只檢查具有最差延遲的路徑,而不關心設計的邏輯功能。
時序路徑從寄存器時鐘端口或input端口開始,稱為Start point。
時序路徑終止于寄存器數據端口或output端口,稱為Endpoint。
對于任何RTL設計,可以有四類時序路徑:
? Input-to-register path? Output-to-register path? Register-to-register path? Input-to-output path
Timing Goals for the Design
在實際場景中,使用時鐘和IO時序來定義設計的時序目標。因為定義了時鐘之后,就意味著定義了Register-to-register path
Min-Max Analysis for ASIC Design
setup time Min-Max分析是基于最快的時鐘到達和最慢的數據到達。
hold time Min-Max分析是基于最快的數據到達和最慢的時鐘到達。
要fix setup time違例,數據應該快速到達,launch時鐘應快速到達,capture時鐘應緩慢到達。
要fix hold time違例,數據應該緩慢到達,launch時鐘應緩慢到達,capture時鐘應快速到達。
下面舉兩個分別優化setup time和hold time的示例:
Setup Violation Fix
現在流行的編碼技術是優先編碼(priority encoding)和多路復用編碼(multiplexed encoding)。
assign y_out=a_in && b_in&& c_in && d_in && e_in && f_in&& g_in&& h_in;
上面的語句生成優先級邏輯,其中h_in具有最高優先級。
在優先級編碼方法中,總延遲為7tpd。為了提高設計性能,必須減少組合邏輯的傳播延遲。
下圖是多路復用編碼,總傳播延遲僅為3tpd。(并行化的體現)
Hold Violation Fix
對于上圖中的設計,如果組合邏輯延遲較小可能發生保持時間違例。
要修復設計的保持時間違例,可以在數據路徑上插buffer,但需要注意不能夠導致建立時間違例。
Timing Exceptions in the Design
1、Asynchronous and False Paths
如果設計中一個信號或端口的變化不影響輸出,需要設置成false path。
異步路徑也被視為false path,不需要進行時序檢查。
2、Multicycle Paths
如果設計中的時序路徑延遲允許超過一個時鐘周期,則路徑為被視為多周期路徑。
set_multicycle_path –setup 2 –from [get_cells FF4 ] –to [ get_cells FF5 ]set_multicycle_path –hold 1 –from [ get_cells FF4 ] –to [ get_cells FF5 ]
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。