LUCT低不確定性時(shí)鐘樹設(shè)計(jì)方法、算法和工具
前言 – LUCT是什么
第一層時(shí)鐘樹和第二層時(shí)鐘樹
時(shí)鐘樹設(shè)計(jì)及其設(shè)計(jì)方式是引起系統(tǒng)芯片性能差異的主要原因。
從歷史角度看,ASIC時(shí)鐘樹設(shè)計(jì)人員利用商用自動(dòng)化工具設(shè)計(jì)時(shí)鐘樹,以確保執(zhí)行時(shí)間等性能取得預(yù)期結(jié)果,但是,這種方法的時(shí)鐘偏差和插入延時(shí)等性能卻不盡人意,另外,高復(fù)雜性、頻率和尺寸設(shè)計(jì)使得傳統(tǒng)方法完全沒有可行性。
低不確定性時(shí)鐘樹[LUCT]設(shè)計(jì)及算法與在系統(tǒng)芯片上實(shí)現(xiàn)的第一層時(shí)鐘樹的物理定義有關(guān),能夠讓設(shè)計(jì)人員克服傳統(tǒng)設(shè)計(jì)方法的所有低效率問題。
從頂層的根時(shí)鐘網(wǎng)絡(luò)(通常是PLL輸出)到中層時(shí)鐘網(wǎng)絡(luò),LUCT是一個(gè)高質(zhì)量的負(fù)載均衡的時(shí)鐘樹,其目標(biāo)是將時(shí)鐘信號(hào)從中央鎖相環(huán)PLL送到芯片的大部分區(qū)域,詳情參見參考文獻(xiàn)[1]。該文獻(xiàn)詳細(xì)介紹了低不確定性時(shí)鐘樹[LUCT]方法和架構(gòu),概括了從規(guī)格定義到單元布局和時(shí)鐘合成的全部相關(guān)設(shè)計(jì)流程。
按照參考文獻(xiàn)[2]的定義,這種時(shí)鐘分配方法屬于結(jié)構(gòu)化時(shí)鐘樹。文獻(xiàn)[2]還概括了現(xiàn)有的不同的時(shí)鐘設(shè)計(jì)方式。從時(shí)鐘源到寄存器,整個(gè)時(shí)鐘樹由第一層時(shí)鐘樹和第二層(或本地)時(shí)鐘樹組成。商用EDA工具需要實(shí)現(xiàn)本地時(shí)鐘樹。
LuctGenKit是意法半導(dǎo)體數(shù)字ASIC產(chǎn)品部的設(shè)計(jì)方法小組研發(fā)的時(shí)鐘設(shè)計(jì)工具,可完成LUCT架構(gòu)的物理實(shí)現(xiàn)過程。
圖1:在ASIC設(shè)計(jì)中優(yōu)化時(shí)鐘分配
LUCT工具主要特性
LuCT時(shí)鐘合成工具提供LuCT方法中的所有重要特性:
o均衡的時(shí)鐘樹
-長度均等和主動(dòng)負(fù)載匹配
-障礙感知
-使用低電阻的高層金屬層傳輸信號(hào)
-屏蔽和寄生匹配
o增強(qiáng)型訂制單元庫,滿足各種信號(hào)強(qiáng)度需求
o支持多種制造工藝,例如,32/28bulk,28fdsoi等
o模塊布局,障礙布局與避障
o與布局布線環(huán)境完全集成
LuCT設(shè)計(jì)流程
圖2:LuCTgenKit設(shè)計(jì)流程
LuCTgenKit設(shè)計(jì)流程分為四個(gè)階段,本文下面章節(jié)將給予詳細(xì)討論。該工具可簡化復(fù)雜ASIC設(shè)計(jì),在有多個(gè)工程師參與整個(gè)項(xiàng)目的物理實(shí)現(xiàn)的設(shè)計(jì)環(huán)境中效果特別明顯。在一個(gè)典型設(shè)計(jì)組織內(nèi),物理實(shí)現(xiàn)的初始階段是數(shù)據(jù)庫準(zhǔn)備和規(guī)格定義,最后階段的工作主要是由專門的LuCT工程師來完成。一旦數(shù)據(jù)庫準(zhǔn)備和規(guī)格定義都完成后,僅一名LuCT設(shè)計(jì)工程師在一個(gè)工作日內(nèi)即可完成整個(gè)頂層時(shí)鐘樹(可能不只一個(gè)時(shí)鐘樹)的實(shí)現(xiàn)和定案工作。
LuCT tool
數(shù)據(jù)庫準(zhǔn)備
數(shù)據(jù)庫準(zhǔn)備包括必要的設(shè)計(jì)檢查、布局規(guī)劃合理性驗(yàn)證、讀取電源網(wǎng)格形狀屬性和布局布線工具。其中,布局布線工具用于連接特殊的增強(qiáng)型時(shí)鐘庫,并通過LuCT創(chuàng)建算法確保時(shí)鐘庫布局連貫。本階段還是使結(jié)構(gòu)化時(shí)鐘樹利用現(xiàn)有技術(shù)取得最高性能的關(guān)鍵步驟,特別是在降低電壓降和抗串?dāng)_方面。
LuCT tool
LuCT規(guī)格定義
每一個(gè)時(shí)鐘合成,都需要在該工具內(nèi)輸入下面信息:
o技術(shù)節(jié)點(diǎn)
o主要時(shí)鐘樹起點(diǎn)(PLL)
-X 和Y坐標(biāo)
o主要時(shí)鐘樹終點(diǎn)
-每個(gè)葉子上的X和Y坐標(biāo)
o頻率范圍
o工藝-電壓-溫度角
o時(shí)鐘單元參數(shù)選擇
設(shè)計(jì)人員可通過圖形用戶界面輸入所需的全部數(shù)據(jù)和設(shè)計(jì)方式。
LuCT tool
執(zhí)行: 創(chuàng)建LuCT
低不確定性時(shí)鐘樹合成自動(dòng)化工具捆綁下列對象:
-設(shè)計(jì)規(guī)格
-布局規(guī)劃信息(包括布局障礙和布線障礙)
-電源網(wǎng)格
-設(shè)計(jì)和布局規(guī)則
-網(wǎng)表
-布局
-圖形用戶界面
-報(bào)告
-定案
圖3:LuCT應(yīng)用軟件圖形用戶界面菜單
LuCT工具通過意法半導(dǎo)體獨(dú)有的算法生成時(shí)鐘樹拓?fù)?/strong>。該算法基于均衡的路徑長度和等長同質(zhì)布線。芯片布局規(guī)劃建模和初始化以及路徑計(jì)算需要Lemon C++圖形函數(shù)庫[4]。時(shí)鐘樹創(chuàng)建過程包含下列步驟:
o網(wǎng)格生成: 在從布局規(guī)劃讀取數(shù)據(jù)后,生成障礙模型和電源網(wǎng)格形狀模型。從這些模型開始計(jì)算一個(gè)代表LuCT算法定義的布局布線間距的點(diǎn)集合(網(wǎng)格)。
o構(gòu)建二進(jìn)制樹:使用意法半導(dǎo)體獨(dú)有算法將葉子分組,每組一對。通過計(jì)算長度均等的包含避障點(diǎn)的路徑和合并點(diǎn)(即該路徑中間的一點(diǎn))的方式將每對樹葉合并。通過這種方法按照遞歸方式合并新的葉子(合并點(diǎn)),直到只剩下一個(gè)點(diǎn)(樹根)為止,詳見圖4到圖6。
o插入時(shí)鐘驅(qū)動(dòng)器和布線:插入時(shí)鐘驅(qū)動(dòng)器和優(yōu)化布線是采用一個(gè)自下向上的方法,分別考慮障礙布局和障礙布線。
圖 4:終點(diǎn)集合
圖5:LuCT創(chuàng)建樹算法配對決策與合并
圖 6:上一級(jí)產(chǎn)生的合并點(diǎn)配對合并
圖7 :采用LuCT工具的設(shè)計(jì)流程
一旦生成時(shí)鐘樹結(jié)構(gòu),只要在布局布線CAD工具內(nèi)使用腳本程序即可實(shí)現(xiàn)布局。對于多個(gè)并行時(shí)鐘驅(qū)動(dòng)器的高性能布線/走線、通孔布局和電源噪聲感知布局,取得布局配置需要使用自定義規(guī)則。
通過修改幾個(gè)對二進(jìn)制樹架構(gòu)和創(chuàng)建有很大影響的參數(shù),可以優(yōu)調(diào)算法。
下面是一些參數(shù)示例:
o葉子對生成:可自動(dòng)或人工生成
o路徑距離計(jì)算:可以是純Manhattan方式或能夠感知障礙
o彎折最小化:為布線網(wǎng)絡(luò)選擇適合的吸引力
o通過在每個(gè)布線/合并階段全局重映射中心,吸引合并區(qū)向現(xiàn)階段的中心轉(zhuǎn)移
o時(shí)鐘樹性能指標(biāo):障礙強(qiáng)度、時(shí)鐘偏差/插入延時(shí)性能與障礙的均衡性、時(shí)鐘擁堵。
LuCT 工具
示例和結(jié)果
圖8所示是按照上面討論的方法使用LuCTgenKit設(shè)計(jì) 28FDSOI芯片的時(shí)鐘樹。1GHz時(shí)鐘信號(hào)從時(shí)鐘源分配到8個(gè)樹葉,避繞障礙,平衡時(shí)鐘偏差,查覺障礙。圖9所示當(dāng)連接高層葉子對時(shí)如何執(zhí)行等長計(jì)算。
圖 8
圖 9
這個(gè)示例的主要結(jié)論是,按照基延遲(base delay)計(jì)算,時(shí)鐘偏差是非常有限的,不過,出現(xiàn)大量的不常見路徑。
時(shí)鐘頻率 1GHz
終點(diǎn)數(shù)量8
路徑總長 22090 um
Common12360umUncommon9730um
PVTCmax Slow, 0.95V, 125c
最大延遲 597 ps
全局偏差(base delay)5 ps
最大轉(zhuǎn)換時(shí)間53 ps
創(chuàng)建樹運(yùn)行時(shí)< 10s
CPUXeon? E5-2600 v2 2.80GHz
表1:圖8和圖9的LuCT的數(shù)據(jù)和測試結(jié)果
參考文獻(xiàn)
[1] Optimizing clock tree distribution in SoCs with multiple clock sinks
Alberto Ferrara and Pierpaolo De Laurentiis, STMicroelectronics
embedded.com
http://embedded.com/design/mcus-processors-and-socs/4409637/Optimizing-clock-tree-distribution-in-SoCs-with-multiple-clock-sinks-
[2] Myth busters: Microprocessor clocking is from Mars, ASICs clocking is from Venus
Kozhaya, J.;Restle, P.;Haifeng Qian
Computer-Aided Design (ICCAD), 2011 IEEE/ACM International Conference on
Digital Object Identifier:10.1109/ICCAD.2011.6105340
Publication Year: 2011, Page(s): 271 –275
[3] Clocking Design Automation in Intel’s Core i7 and Future Designs
Ali M. El-Husseini and Matthew Morrise
Computer-Aided Design, International Conference on, pp. 276-278, 2011 IEEE/ACM International Conference on Computer-Aided Design, 2011
[4] LEMON Graph Library - Library for Efficient Modeling and Optimization in Networks
http://lemon.cs.elte.hu/trac/lemon
[5] The design and analysis of the clock distribution network for a 1.2 GHz Alpha microprocessor,
T. Xanthopoulos, D. Bailey, A. Gangwar, M. Gowan, A. Jain, and B. Prewitt,
Digest of Technical Papers IEEE International Solid-StateCircuits Conference (ISSCC 2001),
2001, pp. 402–403.
[6] Scalable sub-10ps skew global clock distribution for a 90nm multi-GHz IA microprocessor
N. Bindal, T. Kelly, N. Velastegui, and K. Wong,
Digestof Technical Papers IEEE International Solid-State Circuits Conference
(ISSCC 2003), 2003, pp. 346–347, 498.
[7] The clock distribution of the Power4 microprocessor
P. Restle, C. Carter, J. Eckhardt, B. Krauter, B. McCredie, K. Jenkins, A.Weger,and A. Mule,
Digest of Technical Papers IEEE International Solid-State Circuits Conference
(ISSCC 2002), vol. 1, 3–7 Feb. 2002, pp. 144–145
[8] Method of generating wiring routes with matching delay in the presence of process variation,
US Pat. 7865861
Habitz et al,
Filed 22 Apr 2008 - Issued 4 Jan 2011 - International Business Machines Corporation
[9] Method for the computer-aided ascertainment of a clock tree and Integrated Semiconductor Circuit, US Pat. 7707529
Heinz Endres, Thomas Zettler
Filed 13 Oct 2005 - Issued 27 Apr 2010 - Infineon Technologies AG
[10] Clocking Design and Analysis for a 600MHz Alpha Microprocessor
D.W.Bailey, B.J.Benscheider,
IEEE Journal of Solid-State Circuits, Vol. 33(11): pp.1627-1633, November 1998
[11] Automatic Synthesis of Clock Distribution Networks, US Pat. 8205182 B1
Zlatanovici et al,
Filed 22 Aug 2008 - Issued 19 Jun 2012 – Cadence Design Systems, Inc
評(píng)論