2008年11月21日 星期五

基於Astro工具的ASIC時序分析


基於Astro工具的ASIC時序分析
2007.03.09 作者:重慶郵電大學3G研究院 黃榮志 陳曉冬 龍燦
摘要:在目前的ASIC設計中,時鍾信號的質量對同步數字電路的影響越來越 大。如何避免時序問題給電路造成的不利影響成為設計中的重要挑戰。本文主要介紹了邏輯設計中值得注意的重要時序問題,以及如何克服這些問題。最後介紹了利 用Astro工具進行時序分析的方法。關鍵詞:ASIC;同步數字電路;時序;Astro [b]引言 [/b] 隨著系統時鍾頻率的提高,時鍾偏斜和干擾開始成為IC工程師重點考慮的問題。增大時序電路的時鍾頻率,減小時序電路的容差能提升未來的系統性能。低偏斜時 鍾緩衝器和鎖相環時鍾驅動器將幫助設計人員設計出速度、偏斜和抗噪性能等指標滿足要求的電路系統,但必須將時鍾電路設計為一個時鍾系統,考慮時鍾分步網絡 的各個方面,包括驅動器、傳輸線路和信號布線等。 時鍾偏斜 時鍾偏斜定義為在時鍾分佈系統中到達各個時鍾末端(即器件內部觸發器的時鍾輸入端)的時鍾相位不一致的現象。如果時鍾偏斜超過所允許的最大值,電路的同步 可能會發生失效。 偏斜主要由兩個因素造成:一是時鍾源驅動器件的偏差,例如同一個PLL輸出的不同時鍾信號之間的偏斜;另一個是時鍾分配網絡的偏斜。由於時鍾信號驅動系統 中的大量元件為了達到同步必須同時接收到時鍾信號,因此它們之間的任何時間差異都將直接影響系統性能。小的偏斜可以忽略,但大到一定程度就會嚴重影響設計 的時序,因此需要在設計中儘量減小其影響。 輸出偏斜也叫做引腳到引腳的偏斜,它是指同一器件上同一躍遷的任何兩個輸出延時之間的差值。電子工程設計發展聯合協會(JEDEC)將輸出偏斜定義為單一 器件輸出之間的偏斜,該器件的所有驅動輸入應連接在一起,輸出部分在同一方向切換,並驅動相同的負載。目前,高性能時鍾緩衝器中的常見輸出偏斜約為 200 。器件到器件的偏斜也稱為封裝偏斜,被定義為在相同環境下工作的兩個或多個獨立器件的任何指定輸出之間的傳送延時之差。其中,相同的環境指的是相 同的輸入信號、電源電壓、環境溫度、封裝、負載等。目前的高性能緩衝器中典型的元件到元件偏斜約為500 。 時序分析 為了保證同步系統的正常運行,所有的時序單元必須在給定的時鍾週期內正常工作。如果時序單元的總和超出了可用時間限制,系統就會發生故障。進行時序分析能 夠確定可能會佔用時鍾週期的所有因素並評估這些因素所帶來的影響,令設計者瞭解其設計的電路能夠以多快的速度運行,以及當前系統還有多大的寬裕度等。 使用同步系統基本元件的簡化設計電路如圖1所示。寄存器FF1在時鍾的每個上升沿驅動,輸出Q1並將其作為組合邏輯電路C2的輸入信號。寄存器FF2使用 與FF1相同的時鍾進行控制。來自於組合邏輯電路C2的數據必須先於時鍾到達,即需要一定的建立時間;而且必須要持續足夠的時間以便使寄存器FF2能夠獲 得正確的輸出,即需要一定的保持時間。 圖1 簡單的同步系統 [b]解決時鍾偏斜的常用方法 [/b] 時鍾偏斜是不可避免的,關鍵問題是一個系統能夠容忍多大的時鍾偏斜。通常,可允許的時鍾偏斜是由系統要求和工藝參數(例如時鍾緩衝器與寄存器的延時)來決 定的。設計思路不同,得到的時鍾偏斜也不一樣。用標準單元方法設計的電路通常要比全定製電路的時鍾偏斜大一些。一般而言,一個系統中的流水線級越多,則由 於時鍾偏斜導致功能錯誤的可能性越大。 在ASIC設計中,解決時鍾偏斜的方法很多。比如:按與數據流相反的方向來分佈時鍾走線;控制時鍾的非交迭時間來消除時鍾偏斜;通過分析時鍾分佈網絡來保 證時鍾偏斜在合理的範圍內等。 上面3種方法中最好的是通過分析時鍾網絡來保證合理的時鍾偏斜。設計人員可以通過調整一些參數來控制時鍾分佈網絡,以達到較好的效果。可調整的參數包括時 鍾網絡的互連材料、時鍾分佈網絡的形狀、時鍾驅動和所用的緩衝配置、時鍾線上的負載(扇出)、時鍾的上升和下降時間等。總之,時鍾分佈網絡的目的就是使與 時鍾信號相連的功能子模塊的互連線大致等長。 [b]Astro工具的使用 [/b] Syno ys公司的Astro是在ASIC設計中流行的後端物理實現工具,是深亞微米芯片設計進行設計優化、佈局、布線、計算時延的設計環境。 Astro可以滿足5千萬門、GHz時鍾頻率、採用0.10um及以下工藝SoC設計的工程和技術需求,其基本流程如下: 1. 讀入網表,用晶圓廠提供的標準單元庫、Pad庫以及宏模塊庫進行映射; 2. 預佈局,規定芯片的大致面積、引腳位置以及宏單元位置等粗略的佈局信息; 3. 讀入時序約束文件,設置好時序建立的菜單,為後面進行時序驅動的佈局布線做準備; 4. 詳細佈局,力求使布線階段能順利滿足布線布通率100%的要求和時序要求; 5. 時鍾樹綜合,為了降低時鍾樹偏斜而產生由許多驅動單元組成的時鍾樹; 6. 布線,先對電源線和時鍾信號布線,然後對信號線布線,目標是最大程度地滿足時序; 7. 為滿足設計規則從而能成功製造出芯片而做的修補工作,如填充一些dummy單元等。 上面7個步驟是Astro設計的基本流程,下面針對設計中的時序偏斜對第5部分時鍾樹綜合進行重點分析。 時鍾樹綜合是時序優化處理中最重要的一步。時鍾樹綜合的目的是為了減小時鍾偏斜和傳輸延遲,通常是將最重要的時鍾放到最後來綜合,這是因為前面綜合的時鍾 可能會因後面插入的緩衝器而受到影響。這些緩衝器在芯片內部應均勻分佈,力求使時鍾偏斜和傳輸延遲保持在設計範圍之內。 時鍾樹綜合解決時鍾偏斜的一般方法是:通過分析時鍾線路延遲,在時鍾樹中插入不同尺寸不同驅動能力的緩衝器以改變時鍾信號到達觸發器的延時,使時鍾信號能 在同一時間到達各個觸發器,讓時鍾偏斜近似為零。用這種方法可以使電路儘可能不受時鍾偏斜的影響,而正確工作。時鍾樹綜合對話框和做完時鍾樹優化後常見的 時鍾樹結構模型如圖2所示。 圖2 CTS對話框和生成的時鍾樹模型 在進行完時鍾樹綜合與優化之後,可得到電路的時鍾樹偏斜報告,報告包括全局偏斜(global skew),局部偏斜(local skew)和有用偏斜(useful skew)。此時的時序應為正,否則還要進行繼續優化。 結語 對於複雜的同步系統而言,創建時序拓撲並進行時序分析是保證ASIC設計成功的基本因素。解決時鍾偏斜的方法很多,主要目的是將時鍾偏斜的影響降到最低。 其實時鍾偏斜並非總是給電路帶來負面影響,我們還可以利用它來改進電路的時序,使電路工作在最優性能。 參考文獻 1 Steve Furber. ARM SoC 體系結構[M] . 田澤譯. 北京:北京 航空航天大學出版社,2003. 2 Syno ys.Syno ys Astro user guide, Clock Tree Synthesis and Clock Tree 3 Optimizatio , V-2004.06 4 潘松,黃繼業. EDA 技術實用教程,北京,科學出版社,2002 5 D. Harris, M. Horowitz, and D. Liu, 「Timing analysis including clock skew,」 IEEE Tra . Comput.-Aided Design, vol. 18, no. 11, Nov. 1999. 6 E. G. Friedman, Clock Distribution Networks in VLSI Circuits and Systems.New York: IEEE, 1995
from:http:http:/blog.ednchina.com/jerryzhang8023/12965/category.aspx

2008年11月16日 星期日

netWeight

netWeight

The netWeight function sets the net priorities (or weights) for placing cells. During placement, the Milkyway-based tool attempts to place cells connected to high-priority nets closer together.

The primary goal of your Synopsys application, regardless of the specified net weights, is to achieve the minimum total net length for the design. Therefore, the Synopsys application weighs any reduction in the length of a high-priority net against the effect on the overall net length.

Nets with no priority set have the lowest priority (net weight of 1).

You can set net weights while running a Synopsys application by using Constraints > Set Net Weight.

Syntax

netWeight netName netWtHorizontal netWtVertical

where the arguments are as follows:

netName
Name of the net to be prioritized.

Valid values: Name of any net in the design
netWtHorizontal
Weight to be given to horizontal wires on the net. The higher the value, the greater priority the Synopsys application gives the net.

Valid values: Any positive integer
netWtVertical
Weight to be given to vertical wires on the net. The higher the value, the greater priority the Synopsys application gives the net.

Valid values: Any positive integer

Example

netWeight "CTL2" 10 8
netWeight "CTL3" 4 2
netWeight "CTL4" 6 6

Using these net priority directives, the Synopsys application gives the highest priority to horizontal wires on the CTL2 net and the lowest priority to vertical wires on the CTL3 net (except for nets not specified, which receive the lowest priority). For nets CTL2 and CTL3, horizontal
wires are given higher priority than vertical wires. For net CTL4, horizontal and vertical wires are given equal priority.

From:http://www.donny.co.kr/tt/12

標籤:

不同相位之間的始終如何加約束?

隨便贊一下邏輯綜合板塊的版主chentao,看了他給別人的回答基本都是一種學習

不同相位之間的始終如何加約束?

top module上有兩個時鐘pin,一個clk,一個notclk,兩個是反相的,都是從外部同一pad上過來。
現在我準備分別在加pad(相當於這時候topmodule只有一個clock pin)和不加pad(相當於這時候topmodule有兩個clock pin)的情況下進行綜合,那我兩次綜合分別需要對時鐘如何進行約束?

-----------------------------------------------------

不加PAD時:
create_clock -name clk period 10 waveform {0,5} [get_ports clk]
create_clock -name notclk period 10 waveform {5,10} [get_ports notclk]


加PAD時:
create_clock -name clk period 10 waveform {0,5} [get_ports clk]
create_generated_clock -name notclk -invert [get_pins top/notclk] -source [get_ports clk]

From:http://www.edacn.net/html/65/47165-2005.html

標籤: