張 玲,王 澧
(中國電子科技集團公司第58研究所,江蘇 無錫 214035)
隨著集成電路的快速發(fā)展,人們對數(shù)字系統(tǒng)的要求越來越高,集成電路正朝著大規(guī)模、小體積的方向飛速發(fā)展,片上集成系統(tǒng)(SoC)也應運而生。這些高速度、低功耗、高性能的大規(guī)模集成電路對于時鐘樹的實現(xiàn)提出了更高的要求。時鐘樹綜合的主要目標就是使時鐘偏差、相位延遲最小化,以最大限度地為時序收斂服務,并盡可能減小時鐘網(wǎng)絡的功耗、噪聲和連線間耦合。一個好的時鐘樹設計可以對整個設計的時序、功耗、面積以及布線擁塞度和串擾影響起到至關重要的作用。
在現(xiàn)有基于標準單元設計的ASIC流程中,通常將扇出較大的時鐘網(wǎng)絡在綜合階段設置為理想時鐘,在物理設計階段進行時鐘樹綜合,因此,時鐘樹綜合是后端物理設計的關鍵步驟之一。
本文介紹采用Synopsys公司Astro后端工具對一款百萬門級、基于0.18 μm工藝的SoC芯片時鐘樹綜合過程中遇到的問題以及解決方法,詳細說明時鐘樹綜合的基本過程,特別是在多種工作模式下時鐘樹綜合遇到的問題及解決方案,介紹時鐘樹綜合的功耗優(yōu)化、復位信號的平衡和時序優(yōu)化。芯片是基于0.18 μm Salicide 1P6M CMOS工藝制造的SoC芯片,規(guī)模約為200萬門,工作頻率100 MHz,封裝引腳391個。
該芯片是一款為用戶定制的專用SoC芯片,采用0.18 μm 1P6M Salicide CMOS常規(guī)工藝。芯片內(nèi)部集成有ARM核、全定制設計的IP、多個SRAM等宏單元,是一顆典型的全數(shù)字SoC芯片。芯片采用雙電源供電方式工作,分別為3.3 V與1.8 V供電。電源、地引腳分為3組,其中2組為1.8 V供電,1組為芯片內(nèi)核及端口前級驅(qū)動供電,1組為芯片DPLL供電;另1組為3.3 V供電,為芯片上所有端口后級驅(qū)動供電。
在大規(guī)模電路中,每個寄存器之間的數(shù)據(jù)傳輸是通過時鐘信號的穩(wěn)定脈沖來進行同步控制的,而數(shù)據(jù)傳輸和數(shù)據(jù)接收的速度則是由時鐘頻率所決定的。時鐘樹設計的兩個最重要的目標就是時鐘偏差和相位延時的最小化,并且使時鐘網(wǎng)絡的功耗最優(yōu)化。
時鐘樹規(guī)劃第一步是查看邏輯綜合時對時鐘的定義。時鐘信號的特征參數(shù)很多,時鐘周期(頻率)、時鐘延遲以及時鐘信號的不確定性是時鐘定義三要素。該信息一般存于.sdc文件中。邏輯綜合時對時鐘的定義主要使用create_generated_clock和create_clock來完成。它們基本相同,不同的是create_generated_clock定義的是產(chǎn)生內(nèi)部的一個時鐘,時鐘屬性無法自由定義,只能繼承它的時鐘源的時鐘屬性;而create_clock則可以自由定義時鐘屬性。通過時鐘的定義可以了解芯片所采用的時鐘系統(tǒng)。
描述時鐘的幾個要素是[1]:(1)時鐘源(source):時鐘起點,一般為鎖相環(huán)或?qū)iT的時鐘處理模塊的輸出端;(2)時鐘周期(period):時鐘從低電平到高電平再回到低電平直至下一個高電平上升前的時間,即時鐘波形重復的最小時間間隔;(3)波形(waveform):簡單的波形有上升沿和下降沿,描述兩個邊沿就可以說明波形,即上升沿位置和下降沿位置。
時鐘偏差是指從時鐘源點(Source)到各時鐘匯點(Sink)的最大延時時間的差值。在芯片電路設計中,要保證系統(tǒng)功能正確,必須滿足式(1)所示的關系。
在式(1)中,dL是組合邏輯電路的最長路徑延時,tskew是時鐘偏差,tsu是沿觸發(fā)同步器件的建立(Setup)時間(時序元件正常工作時一般數(shù)據(jù)信號先于時鐘信號到達的時間),tcq是沿觸發(fā)器件的時鐘端到Q輸出端的延時。隨著集成技術的發(fā)展和器件尺寸的縮小,dL、tsu、tcq都明顯減少,因此,對于深亞微米工藝,時鐘偏差skew對電路速度的影響更為突出。Bakoglu指出skew對高性能系統(tǒng)的時鐘周期的貢獻超過了10%[2]。較大的時鐘偏差也可能會引起電路同步失效。所以,時鐘樹綜合成為后端設計中一個重要的步驟。關于時鐘偏差的示意圖見圖1。
圖1 時鐘偏差Skew的示意圖
(1)自定義時鐘:用create_clock可以自定義一個時鐘,在邏輯綜合工具進行門級網(wǎng)表綜合時,時鐘源點可以設定在層次化模塊的端口處或具體的標準單元的引腳上。
(2)衍生時鐘:create_generated_clock可以創(chuàng)建生成的時鐘,該芯片中不僅僅只有外部的晶振時鐘,還有內(nèi)部生成的分頻時鐘。新的時鐘頻率可以直接在原時鐘的頻率上進行一個整數(shù)倍的分頻。用create_generated_clock生成的時鐘稱為衍生時鐘,它在時鐘樹綜合時可以看作一個新的獨立的時鐘源來對它控制的模塊進行時鐘樹綜合,但是本質(zhì)上它依然是原始時鐘源的一個分支。平衡這個分支和原始時鐘源點間的時鐘偏差或時鐘延時可以通過調(diào)整衍生時鐘源點的位置或插入時鐘緩沖器來完成。
該芯片內(nèi)部時鐘由獨立的4個模塊和選擇器產(chǎn)生,4個獨立模塊分別是PLL模塊、DPLL模塊、CLK_SEL模塊和CLK_RAD模塊。芯片內(nèi)部的時鐘結構如圖2所示。
時鐘樹綜合的約束文件通常包括3類:工藝庫定義的約束DRC(design rule constraints),約束文件(SDC)定義的約束,時鐘樹綜合設置中自定義的約束。工藝庫定義的約束在技術文件中規(guī)定,是芯片制造廠制定的[3]。約束文件定義的約束是邏輯綜合或靜態(tài)時序分析根據(jù)時序給出的參考約束。規(guī)范說明書的約束是自定義約束的一種,一般最為嚴格。3類文件的約束中最嚴格的約束會被施加在時鐘樹上。此芯片的時鐘樹綜合中,需要確定做時鐘樹綜合的時鐘名、時鐘偏差skew的約束設置以及需用到的緩沖器類型。該芯片用到的緩沖器類型有CLKBUFX1、 CLKBUFX2、CLKBUFX3、CLKINVX1、CLKINVX2、CLKINVX3等。該芯片使用tcl腳本語言設置時鐘樹參數(shù)。創(chuàng)建時鐘樹的腳本信息如圖3所示,如需對時鐘樹的設置做一些改動,可以在該腳本上進行。
圖2 芯片內(nèi)部時鐘結構示意圖
圖3 腳本形式設置時鐘樹參數(shù)圖
時鐘樹綜合是時序優(yōu)化處理中最重要的一步,時鐘樹綜合的目的是減小時鐘偏斜和插入延時。在本芯片的時鐘樹綜合中主要考慮了以下幾點:第一,要評價芯片時鐘樹綜合的先后順序,結合本芯片存在8路不同頻率時鐘的特點,評價了各路時鐘進行時鐘樹綜合的優(yōu)先順序,最終選擇了把最重要的時鐘放在最后綜合的方案;第二,在Astro中要明確時序參數(shù)及模型的設置;第三,為時鐘網(wǎng)絡設置專門的布線規(guī)則。在此采用了2倍于正常設計規(guī)則的線寬規(guī)則作為時鐘線的間距規(guī)則,以減小時鐘減少毗鄰連線的耦合電容及由此帶來的信號間串擾;第四,選擇具有相同上升及下降時間的Buffer/Inverter作為時鐘樹的驅(qū)動單元,便于更好地控制ClockTree上的偏斜及插入延遲;第五,考慮RC參數(shù)的優(yōu)先布線原則并進行線長優(yōu)化等策略。
芯片中有多種工作模式,主要的兩種工作模式是DFT模式與Function模式,DFT模式的優(yōu)先級低于Function模式。時鐘樹綜合時采用先綜合低優(yōu)先級時鐘,再綜合高優(yōu)先級時鐘的策略,即先綜合DFT模式下的時鐘樹,再綜合Function模式下的時鐘樹。前端設計人員把SDC文件分成DFT模式下的SDC文件和Function模式下的SDC文件,這兩個文件分別導入兩種以上工作模式。時鐘樹綜合的流程示意圖如圖4所示。經(jīng)過這種時鐘樹綜合策略,綜合后的時鐘樹便能很好地滿足此SoC芯片嚴格的時序要求。
圖4 芯片時鐘樹綜合流程
在時鐘樹綜合階段,Astro為達到上述時鐘樹綜合的主要目標,一定程度上會通過移動其他單元的位置等途徑來優(yōu)化時鐘樹,從而影響了芯片的時序。事實上,通過反復的分析,我們已經(jīng)發(fā)現(xiàn)了這個必然,在完成CTS之后,芯片的時序一定會出現(xiàn)一定程度的惡化現(xiàn)象,所以必須在CTS之后再針對芯片時序完成進一步的時序優(yōu)化。在其他一些階段也會出現(xiàn)同樣的問題,所以在該芯片時序優(yōu)化過程中擬定了以下幾個關鍵階段,在完成這些階段任務后,必須進行時序的分析,如果出現(xiàn)不能滿足要求的情況,則進行針對性的時序優(yōu)化。在每一次進行和時序相關的操作步驟之前都要進行時序參數(shù)設置,時鐘樹插入前在時序檢查時使用的是理想時鐘,在時鐘樹插入后使用的是實際時鐘,因此時鐘樹綜合前的參數(shù)設置為選擇Ignore Propagated Clock和Enable Ideal Network Delay。結合該電路的特點,擬采用以下的時序優(yōu)化流程,具體流程如圖5所示。
集成電路研究資料顯示,當時鐘樹發(fā)生翻轉時,芯片約產(chǎn)生30%的功耗[4]。出于低功耗設計考慮,該芯片在前端綜合時加入了一千多個門控時鐘單元。門控時鐘單元的加入,可以控制不工作的D觸發(fā)器,從而可以大幅度減少整個芯片的功耗。但是無約束的時鐘門控信號將引入毛刺,導致時鐘被破壞,所以在后端設計時針對門控時鐘作了以下考慮。
(1)通過控制門控時鐘單元與時鐘樹連線的連線權重,使放置門控單元時可以將與門和鎖存器緊密地放在一起,在布局及時鐘樹綜合時工具將根據(jù)連線權重來使連線盡量短,達到控制目的;(2)將門控時鐘單元,即與門和鎖存器設計成一個標準單元(standed cell),放入標準單元庫中,在插入門控單元時整體插入;(3)設置門控時鐘信號的約束;(4)完成時鐘樹綜合后進行GATING_CLOCK_GROUP的時序檢查,確認門控時鐘信號已滿足時序要求。
圖5 時序優(yōu)化流程圖
在芯片后端設計中,復位信號也是一個關鍵的信號。因為它和時鐘信號一樣,直接連到了觸發(fā)器上。若復位信號的skew過大,也會造成電路不能正常工作。芯片內(nèi)部復位信號工作示意圖和復位信號波形圖分別如圖6和圖7所示。圖中rst1與rst2都是低電平有效,當rst1由低變高的下一個clk的上升沿時,Q1取data1的值,而這時rst2為0,Q2不能取到data2的值;當下一個clk的上升沿來時,這時rst2為1,Q2才能取到data2的值,但這時Q1的值可能已經(jīng)改變,這樣會使傳入下一級邏輯電路的信號錯誤,而使芯片工作異常。
圖6 復位信號示意圖
為了防止芯片工作中出現(xiàn)以上錯誤,在時鐘樹綜合之前要先解決復位信號skew過大的問題。復位信號的約束設置與時鐘樹約束設置類似。經(jīng)過平衡復位信號這一過程,可以使芯片的時序保證一致,從而保證整個芯片正常工作。
經(jīng)過了時鐘樹綜合、復位信號的平衡和時序優(yōu)化等過程后,該芯片的時鐘樹綜合工作已全部結束,時鐘樹的綜合結果如表1所示。該芯片綜合后的時鐘結果能滿足前端邏輯人員的設計要求。
圖7 復位信號波形圖
表1 時鐘樹綜合結果表
本文介紹了采用Synopsys公司Astro后端工具對一款百萬門級SoC芯片進行時鐘樹綜合的過程,是筆者后端設計實踐工作的一些經(jīng)驗總結。首先介紹了時鐘樹綜合的設置,闡述了時鐘樹綜合的基本策略,以及復位信號平衡和門控時鐘的使用等基本實現(xiàn)。然后鑒于建立時間的優(yōu)化考慮,引入了有效時鐘偏移的時鐘樹綜合方案,給出了有效時鐘偏移的應用和實踐結果分析。該芯片已成功流片,芯片的各項功能和時序都符合預期要求,證明了本文時鐘樹的綜合方法起到了積極的作用,為以后大規(guī)模SoC電路的時鐘樹綜合積累了經(jīng)驗。
[1] 陳春章,艾霞,王國雄,編著. 數(shù)字集成電路物理設計[M]. 北京:科學出版社,2005.
[2] Weste NHE, Harris D. CMOS VLSI Design:A Circuit and Systems Perspective(3rdEd. )[M]. 2005.
[3] Weste N H E, Harris D.CMOS VLSI Design:A Circuit and Systems Perspective.3rdEd[M]. Pearson, 2005.
[4] Synopsys User Manual [P]. Astro User Guide.