01
時序參數
上升沿敏感觸發器的重要時序參數如圖1所示,它們是:
建立時間 (tsu)
保持時間(th)
觸發傳播延時(tpd)
圖1 D觸發器時序參數
建立時間(tsu):在時鐘的有效邊沿到達之前,觸發器的數據輸入應該保持穩定值的最小時間被稱為建立時間。
有效邊沿表示上升沿(正邊沿)靈敏的D觸發器從低電平到高電平的跳變,下降沿(負邊沿)靈敏的D觸發器從高電平到低電平的跳變。
在建立時間窗口期間,如果數據輸入從1到0或反之,那么觸發器輸出將是亞穩態的,這表明存在建立違例。
保持時間(th):觸發器的數據輸入在時鐘有效邊沿到達后保持穩定的最小時間,稱為保持時間。
有效邊沿表示上升沿(正邊沿)靈敏的D觸發器從低到高的跳變,下降沿(負邊沿)靈敏的D觸發器從高到低的跳變。
在保持時間窗口期間,如果數據輸入從1到0或反之,那么觸發器輸出將是亞穩態的,這表明存在保持違例。
觸發器的傳播時延(tpd=tcq):觸發器到達時鐘有效邊沿后產生有效輸出所需的時間,稱為觸發器的傳播時延。
傳播延遲也稱為時鐘到q端的延遲,也稱為tcq。
02
亞穩態
如果將圖2所示設計的數據輸入連接到另一個模塊上,該模塊的時鐘由不同的時鐘源產生,則第一個觸發器輸出將處于亞穩態。
meta_data表示觸發器數據是亞穩態的,因此第一個觸發器存時序違例。亞穩態表明數據輸出是無效的,為了得到有效的數據輸出,設計需要使用多電平同步器。
所述第一觸發器所采樣的數據與所述第二觸發器的輸出的時序如圖3所示。如圖所示,第一個觸發器的輸出處于亞穩態,輸出觸發器的data_out輸出處于合法有效狀態。
圖2 電平同步
圖3 亞穩態電平同步時序
03
時鐘偏斜
如果ASIC設計中有多個時鐘,那么時鐘分布和時鐘樹綜合將對平衡各塊不同時鐘輸入之間的時鐘偏斜起到非常重要的作用。
如果設計中的兩個不同的時鐘到達不同的時間實例,則設計具有時鐘偏斜。時鐘偏移的原因是路由延遲,即單時鐘域設計的線延遲。考慮所示的圖,讓我們考慮在發射觸發器的clk邊緣在時間實例t0到達,在時間實例t2捕獲觸發器。由于這個同步設計的時鐘到達時間不同,clk1和clk2之間存在相移,我們可以認為這是時鐘偏移。另一個原因是振蕩器的老化;然后,振蕩器產生的時鐘周期頻率變化,因此到達時間的差異可以稱為抖動。
圖4 同步設計
在圖4中,時鐘偏斜是由于clk1引腳和clk2引腳之間的互連延遲引起。
在實際的專用集成電路設計中,我們經歷了兩種不同類型的偏置,如圖5所示。
正時鐘偏移:表示先觸發發射時鐘clk1,再到達捕獲時鐘clk2。如圖中tskew,它是clk1和clk2到達時間的差值。換句話說,我們可以想象正時鐘偏斜是數據和時鐘在相同的方向上運行,正時鐘偏斜有利于建立時間,但對保持時間不好,因為有正的margin來管理。
負時鐘偏移:最后觸發發射時鐘clk1,第一個觸發捕獲時鐘clk2。如圖中tskew,它是clk1和clk2到達時間的差值。換句話說,我們可以想象負時鐘偏移是數據和時鐘在相反的方向上運行,負時鐘偏移對保持時間更好,但對建立時間不好。
圖5 設計中的偏移
在ASIC設計中,我們總是會遇到由于抖動或互連(即線延遲)而產生的時鐘偏斜,下面是我們應該知道的要點。
正時鐘偏斜有利于建立時間,但不利于保持時間。
負時鐘偏斜有利于保持時間,但不利于建立時間。
正時鐘偏斜(positive clock skew)
如前面所討論的,正時鐘傾斜發射觸發器首先被觸發,然后在捕獲觸發器被捕獲。在發射時鐘和捕獲時鐘之間有緩沖延遲的裕度,可以用來提高設計所需的頻率。
圖6顯示了時鐘正向斜向的同步設計,clk1和clk2之間的偏斜是tbuffer。
圖6 正時鐘偏斜
讓我們找出所需的數據時間和數據到達時間。
Data Arrival Time(AT)=tpff1+tcombo
Dara Required Time(RT)=Tclk+tbuffer-tsu
其中,Tclk是時鐘周期或時鐘到q端的延時。tbuffer是緩沖延時,tsu是觸發器建立時間,tpff1是觸發器傳播延時,tcombo是組合邏輯延時。
建立裕量(setup slack)是數據所需時間和數據到達時間之間的差值,應該為正。正的建立時間裕量表明設計中不存在任何建立違例。為了避免設計中的建立違例 ,設計應該具有快速數據、快速啟動時鐘(clk1)和慢捕獲時鐘(clk2)。也就是說,與所需的數據時間相比,數據的實際到達應該更快。(如圖7所示)
圖7 觸發和捕獲時鐘之間的關系為正時鐘偏斜
負時鐘偏斜(negative clock skew)
如前面所討論的,負時鐘偏斜,在發射觸發器最后觸發和捕獲觸發器首先被觸發。由于在觸發時鐘和捕獲時鐘之間有緩沖延遲的裕度,這降低了設計的最大頻率。
圖8顯示了負時鐘偏移的同步設計,clk1和clk2之間的偏移是tbuffer。
讓我們找出所需的數據時間和數據到達時間。
Data Arrival Time(AT)=tbuffer+tpff1+tcombo
Dara Required Time(RT)=Tclk-tsu
圖8 負時鐘偏斜
圖9 觸發和捕獲時鐘之間的關系為負時鐘偏斜
04
裕量(slack)
在ASIC設計中,有兩個術語用于描述裕量,即建立裕量(setup slack)和保持裕量(hold slack)。
圖10 同步設計中的寄存器到寄存器路徑
建立裕量(setup slack)
建立裕量是數據所需時間和數據到達時間之間的差值,應該為正。正的建立裕量表明設計中不存在任何建立違例。
Data Arrival Time(AT)=tbuffer+tpff1+tcombo
Dara Required Time(RT)=Tclk-tsu
Setup Slack=RT-AT
保持裕量(hold slack)
保持裕量是數據到達時間和數據需要時間之間的差值,應該是正的。正保持裕量表明在設計中沒有任何保持違例。
05?時鐘延遲
時鐘由鎖相環產生,用于單時鐘域設計,對于多個時鐘域,我們可能需要多個鎖相環。
時鐘網絡引入了延遲,它實際上是時鐘到達芯片所需的時間,時鐘延遲是由時鐘分布過程中的時鐘網絡延遲造成的。
圖11 時鐘網絡延遲
06
設計的面積
ASIC的總面積是由標準單元、宏和IP核組成的。在集成電路的百萬或億門設計中,面積的限制和更好的布局規劃對獲得預期性能起著重要的作用。我們可以在不同的設計階段考慮面積優化,例如:
在體系結構設計過程中,通過不同功能塊交互描述,獲取更好的策略。
在RTL設計過程中,使用基于工具的指令和命令,并使用資源共享技術。
在版圖階段的物理設計中,通過策略來放置功能塊,最小化由于布線延遲和布線資源使用而造成的面積消耗。
07
速度要求
在ASIC設計中,速度是另一個重要的考慮因素。采用不同的速度改進技術可以提高專用集成電路的性能。例如,考慮到處理器設計工作在500MHz的工作頻率,我們面臨著提高設計頻率的挑戰。在這種情況下,ASIC設計周期中可以使用各種策略,但可能很少使用:
在體系結構和微體系結構設計時,具有較好的順序邊界劃分。
在初始版圖中,相互依賴的塊可以彼此靠近地放置,以最小化面積,從而減少布線延遲,并提高速度。
在RTL設計階段,使用平衡寄存器和寄存器復制、優化命令來提高設計性能。但它們可能會影響邏輯面積。
在RTL設計過程中,使用寄存器的輸入和輸出,使設計具有更好的性能。
只要可行,就使用流水線的概念和體系結構。
如果需要在設計中使用FSM設計和控制器,則嘗試在控制和數據路徑綜合方面進行工作,以獲得干凈的時序和更好的性能。
盡量使用同步設計,因為它們比異步設計更快。
盡量避免內部時鐘發生器;相反,考慮時鐘樹并在CTS期間優化時鐘樹。
在布線階段,嘗試使用基于工具的改進技術,因為啟用工具指令可以在平衡時鐘偏斜方面發揮特別重要的作用。
08
功耗要求
對于任何類型的ASIC或SOC設計,重要的考慮是功率,設計團隊的目標是減少泄漏和動態功耗。在物理設計過程中考慮功率約束進行功率規劃。在ASIC設計流程的不同階段,應采用功率優化技術。
具有低功耗感知的ASIC架構。
在不同的設計級別使用UPF。
在RTL期間,為了最小化動態功率,使用專用的時鐘門控單元。
通過避免不必要的數據值分配和切換,還可以在RTL階段優化功率。
在物理設計過程中,對多個功率域有更好的功率規劃和功率排序。
在物理設計過程中有較好的斷電策略。
09
設計約束
設計約束基本上是設計規則約束和優化約束。我們可以將這些約束考慮為模塊級約束、頂層約束和芯片級約束。
設計規則約束(DRC):我們可以將這些約束視為芯片制造商的規則,并應予以滿足。在物理設計過程中,我們將進行芯片制造商的所有DRC檢查規則是否滿足。Layout is clean表示沒有DRC違規。這些約束主要是:
Transition
Fanout
Capacitance
優化約束:這些約束在設計和優化階段使用。這些約束主要是
Area
Speed
Power
主要使用Synopsys DC,我們將利用面積和速度約束,并將在各個優化階段嘗試優化設計。
物理設計工具,如Synopsys IC Compiler,利用面積、速度、功率的約束來滿足最終的約束,實現干凈的芯片布局。
審核編輯:劉清
評論
查看更多