基于層次法實(shí)現(xiàn)EOS芯片的后端設(shè)計(jì)
1 引言
集成電路(Integrated Circuit, IC)是指在一半導(dǎo)體基板上,利用氧化、蝕刻、擴(kuò)散等方法,將眾多電子電路組成各式二極管、晶體管等電子組件,做在一個(gè)微小面積上,以完成某一特定邏輯功能,達(dá)成預(yù)先設(shè)定好的電路功能要求的電路系統(tǒng)。
IC設(shè)計(jì)是將系統(tǒng)、邏輯與性能的設(shè)計(jì)要求轉(zhuǎn)化為具體的物理版圖的過程,也是一個(gè)把產(chǎn)品從抽象的過程一步步具體化、直至最終物理實(shí)現(xiàn)的過程。
IC設(shè)計(jì)主要包括兩個(gè)方面:(A)前端設(shè)計(jì) (B)后端設(shè)計(jì)。前段設(shè)計(jì)是指設(shè)計(jì)人員根據(jù)系統(tǒng)所要求的功能與時(shí)序產(chǎn)生相應(yīng)的邏輯網(wǎng)表,后端設(shè)計(jì)是指根據(jù)網(wǎng)表產(chǎn)生相應(yīng)的版圖。
后端設(shè)計(jì)是整個(gè)集成電路(IC)設(shè)計(jì)過程中與產(chǎn)品研制和生產(chǎn)直接相關(guān)的設(shè)計(jì)過程,是集成電路設(shè)計(jì)的重要組成部分,后端設(shè)計(jì)的目的是將與工藝無關(guān)的通過硬件描述語言(HDL)表示的設(shè)計(jì)實(shí)現(xiàn)成與特定工藝相關(guān)的版圖。后端設(shè)計(jì)直接關(guān)系到芯片的設(shè)計(jì)周期、生產(chǎn)成本和產(chǎn)品質(zhì)量。后端設(shè)計(jì)以往通常是人工設(shè)計(jì)中耗時(shí)最多,差錯(cuò)率最高的設(shè)計(jì)過程,也是集成電路設(shè)計(jì)發(fā)展較快,自動(dòng)化水平較高的領(lǐng)域。在超深亞微米工藝條件下,由于設(shè)計(jì)復(fù)雜度上升和新工藝帶來的物理特性變化,后端設(shè)計(jì)在很多方面需要進(jìn)行改進(jìn)以適應(yīng)新的設(shè)計(jì)環(huán)境。
2 傳統(tǒng)的展平的后端設(shè)計(jì)方法
后端設(shè)計(jì)的主要流程包括布圖規(guī)劃(floor plan)、電源規(guī)劃(power plan)、布局(placement)、時(shí)鐘樹綜合(clock tree)、布線(routing)、驗(yàn)證仿真到流片[1]。
傳統(tǒng)的展平法流程中,首先需要將前端生成的邏輯網(wǎng)表展平,并將設(shè)計(jì)中的標(biāo)準(zhǔn)單元作為葉節(jié)點(diǎn),不同功能的模塊所包含的標(biāo)準(zhǔn)單元都在同一個(gè)層次上。在平面設(shè)計(jì)流程中,各個(gè)IP模塊是打散(smash)排列的,不需考慮各個(gè)模塊的功能與位置關(guān)系,并利用工具進(jìn)行自動(dòng)的布局布線[2]。展平法是將設(shè)計(jì)一次性的進(jìn)行綜合、布局布線。展平法的優(yōu)點(diǎn)是流程簡(jiǎn)單,同時(shí)時(shí)序性能好,這是因?yàn)樗軐?duì)整個(gè)設(shè)計(jì)進(jìn)行比較全面的優(yōu)化。展平法的缺點(diǎn)是設(shè)計(jì)大小受限于綜合和布局布線工具的能力,如果設(shè)計(jì)規(guī)模太大,綜合和布局布線可能得不到結(jié)果或者結(jié)果很差,主要體現(xiàn)在布線布不通或者時(shí)序非常難收斂,而且迭代的時(shí)間非常長(zhǎng)。
3 層次式后端設(shè)計(jì)方法
層次法是將設(shè)計(jì)分成若干個(gè)模塊,對(duì)這些模塊分別進(jìn)行物理實(shí)現(xiàn),然后把這些模塊組合成一個(gè)完整的設(shè)計(jì)[3]。圖 1顯示了層次法設(shè)計(jì)法的流程。首先,根據(jù)邏輯關(guān)系將設(shè)計(jì)分成各個(gè)模塊,然后將各個(gè)模塊進(jìn)行綜合,得到各個(gè)模塊的門級(jí)網(wǎng)表(netlist),再將各個(gè)模塊的門級(jí)網(wǎng)表組合成整個(gè)芯片的門級(jí)網(wǎng)表,將整個(gè)芯片的門級(jí)網(wǎng)表根據(jù)物理關(guān)系分成若干個(gè)模塊,同時(shí)通過時(shí)序分塊(timing budget)得到每個(gè)模塊的時(shí)序要求,根據(jù)每個(gè)物理模塊的門級(jí)網(wǎng)表和時(shí)序要求,實(shí)現(xiàn)每個(gè)模塊,最后將這些實(shí)現(xiàn)的模塊集成為一個(gè)完整的設(shè)計(jì)。
圖1 層次法后端設(shè)計(jì)流程
層次法設(shè)計(jì)包含以下基本步驟:
(1) 數(shù)據(jù)準(zhǔn)備(Data Preparation)
準(zhǔn)備好后端設(shè)計(jì)所需要的數(shù)據(jù):網(wǎng)表(netlist),時(shí)序約束文件(sdc),單元庫(cell library),時(shí)序庫(tlf)等等。
(2) I/O PAD放置
根據(jù)芯片外管腳的定義和模塊數(shù)據(jù)流向手工放置I/O PAD的位置,也可以通過編寫TDF(top design format)文件,把PAD 位置進(jìn)行限制,用自動(dòng)布局布線工具讀入這個(gè)文件即可。
(3) 布局規(guī)劃(Floorplan)
根據(jù)設(shè)計(jì)的數(shù)據(jù)流向和功能模塊的考慮,以及經(jīng)驗(yàn)值,給出“core utilization”等參數(shù)的值的設(shè)置,如果之后的布線出現(xiàn)擁塞,可以適當(dāng)調(diào)整這些參數(shù)的設(shè)置。
(4) 宏單元放置(Marco cell placement)
對(duì)模擬模塊或者RAM,ROM等宏單元提前放置,一般根據(jù)數(shù)據(jù)流和功能要求放置,如果沒有要求可以放置在靠近外圍,這樣不會(huì)影響到標(biāo)準(zhǔn)單元的布線。
(5) 電源(Power)
在PAD連上電源環(huán)給I/O供電,芯片內(nèi)部還要在水平和垂直方向給出多組電源組,這些電源組都會(huì)連上溝道(row)的電源,以達(dá)到IR DROP的要求。
(6) 標(biāo)準(zhǔn)單元放置(Standard cell placement)
標(biāo)準(zhǔn)單元被放置在預(yù)先設(shè)置好的溝道(row)里面,這種放置可以時(shí)時(shí)序驅(qū)動(dòng)的(timing driven),也可以是功耗驅(qū)動(dòng)的(power driven)。
(7) 時(shí)鐘樹生成(Clock tree synthesis)
由于時(shí)鐘端的驅(qū)動(dòng)能力有限,而且時(shí)序的好壞也是一個(gè)芯片的成敗的關(guān)鍵,在所有的時(shí)鐘驅(qū)動(dòng)端加入一些緩沖器(Buffer)。
(8) 布線(Routing)
芯片的布線有總體(Global routing)布線和詳細(xì)布線(Detail routing)兩步,如果布線有很大的擁塞(congestion),需要重新布局。
(9) 寄生參數(shù)提取(RC extraction)
利用寄生參數(shù)提取軟件提取線網(wǎng)的寄生電阻和電容,并轉(zhuǎn)換為延時(shí)值存到SDF(stand delay format)文件中。
(10) 靜態(tài)時(shí)序分析STA(static timing analysis)
靜態(tài)時(shí)序分析是運(yùn)用軟件計(jì)算芯片的時(shí)序是否符合設(shè)計(jì)所要求的時(shí)序,如果違反可以進(jìn)行工程變更(ECO)來修正。
(11) 工程變更ECO(engineering change order)
工程變更是對(duì)版圖的局部修改,并完成從布局到STA的步驟的統(tǒng)稱,一般是加入一些單元,或者替換一些單元來達(dá)到對(duì)時(shí)序的修改。
(12) 設(shè)計(jì)規(guī)則檢查DRC(design rule check)和版圖與電路圖比較LVS(layout versus schematic) [4] 。
層次法設(shè)計(jì)具有許多優(yōu)點(diǎn),主要是它可以對(duì)模塊施加靈活而嚴(yán)格的約束,可以允許多個(gè)物理設(shè)計(jì)人員并行工作,提高物理設(shè)計(jì)的并行性,能夠減少一些重復(fù)的迭代工作,由于增加了許多對(duì)功能模塊的操作,還可以節(jié)約系統(tǒng)資源。層次法設(shè)計(jì)也有其局限性,主要是設(shè)計(jì)過程復(fù)雜,對(duì)含有多個(gè)IP模塊的設(shè)計(jì)需要對(duì)每個(gè)模塊進(jìn)行優(yōu)化工作,層次法設(shè)計(jì)對(duì)于規(guī)模不大的設(shè)計(jì)優(yōu)化功能并不明顯。
4 芯片實(shí)現(xiàn)
隨著波分復(fù)用技術(shù)和高速以太網(wǎng)技術(shù)的發(fā)展,骨干網(wǎng)的帶寬呈幾何級(jí)數(shù)增長(zhǎng),已達(dá)到了吉比特甚至更高的水平。而連接骨干網(wǎng)和用戶網(wǎng)的接入網(wǎng)的速率卻沒有太大的提高,已成為網(wǎng)絡(luò)發(fā)展的瓶頸。要想實(shí)現(xiàn)高速、可靠的接入,使終端用戶充分利用骨干網(wǎng)的巨大容量,必須采用新的高速接入技術(shù)。SDH技術(shù)已非常成熟,其安全性好,可靠性高;用SDH傳輸網(wǎng)絡(luò)承載以太網(wǎng)IP包以實(shí)現(xiàn)網(wǎng)絡(luò)用戶的遠(yuǎn)程接入或異地局域網(wǎng)互連,我們稱之為EOS(Ethernet over SDH), 是一種非常方便的實(shí)現(xiàn)方案。
EOS芯片用于實(shí)現(xiàn)EOS方案的主要ASIC芯片,它的規(guī)模是6百萬門(不含RAM),它采用0.18um的CMOS工藝。它的規(guī)模已經(jīng)接近展平法的極限,經(jīng)過對(duì)比試驗(yàn),展平法實(shí)現(xiàn)一次布局布線到寄生參數(shù)的提取需要40-50個(gè)小時(shí)完成。而采用層次法,迭代時(shí)間將會(huì)減小到20個(gè)小時(shí)以下。
EOS芯片的設(shè)計(jì)平臺(tái)采用的是cadence公司集成后端設(shè)計(jì)工具Encounter,其中中心部分為設(shè)計(jì)輸入,encounter菜單按照流程設(shè)計(jì),使用很方便。該工具集成了幾乎完整的芯片后端設(shè)計(jì)流程工具,其中包括優(yōu)化綜合工具(RTL Compiler)、布局工具(Amoeba Placement)、布線工具(trial route,Nano route)、時(shí)序驗(yàn)證工具(vstorm PE)、串?dāng)_分析工具(CelticIC)、寄生參數(shù)抽取3D工具(Fire&Ice),同時(shí)對(duì)于如納米布線器、串?dāng)_分析工具、電源分析工具也可以單獨(dú)使用,可以適合不同用戶層面的需求,所以使用非常方便[5]。
層次法設(shè)計(jì)的時(shí)候模塊劃分要考慮芯片之間的連接關(guān)系,還要考慮模塊門數(shù)的大小,太大和太小的模塊都不適合劃分為模塊來單獨(dú)布局布線。以下是一些劃分模塊的基本要點(diǎn):
(1)模塊不宜太大或者太小,一般以30萬門到80萬門之間最合適,最大不要超過200萬門。
(2)模塊被重復(fù)的次數(shù)多,有利于實(shí)現(xiàn)模塊化的優(yōu)勢(shì)。
(3)模塊對(duì)外的pin腳不宜過多,如果過多,頂層的布線和規(guī)劃會(huì)十分困難。
圖3 頂層布局布線圖
根據(jù)以上幾個(gè)要點(diǎn),我們可以把芯片分成以下幾個(gè)模塊:STM,LCAS,VC4,Channel,GB。這里要提到的一點(diǎn)是,對(duì)于層次法設(shè)計(jì),在頂層布線的時(shí)候,底層模塊是作為一個(gè)黑盒子來使用的,但是它還是包含時(shí)序的信息。如圖3就是頂層最后的布線圖。
在頂層和底層模塊完成布線之后就要進(jìn)行模塊的組裝,把布好線的模塊調(diào)用到頂層視圖里面來,把模塊里面的布線全部顯示出來,圖4就是模塊組裝后最終的布線版圖。
圖4 最終全芯片版圖
5 結(jié)論
采取層次法的后端設(shè)計(jì)方法可以有效的提高設(shè)計(jì)效率,尤其是對(duì)應(yīng)超大規(guī)模的設(shè)計(jì),它的優(yōu)點(diǎn)是顯而易見的。隨著集成電路的規(guī)模不斷的增加,設(shè)計(jì)復(fù)雜度也不斷的提升,層次法的后端設(shè)計(jì)方法會(huì)越來越多的廣泛應(yīng)用并且得到不斷改進(jìn)和優(yōu)化。
參考文獻(xiàn):
[1](加)馬丁(Martin k.)著.數(shù)字集成電路設(shè)計(jì).北京:電子工業(yè)出版社,2002.9
[2]EncounterTM User Guide. Version 4.1.Cadence Reference Book, 2004.
[3]First Encounter Ultra Lab Manual. Version 4.1.Cadence Reference Book, 2004.
[4] (美)John P.Uyemura著. 周潤(rùn)德 譯. 超大規(guī)模集成電路與系統(tǒng)導(dǎo)論. 北京:電子工業(yè)出版社,2004.1
[5] EncounterTM Menu Reference. Version 4.l.Cadence Reference Book.2004
[6]夏宏美,李成詩,韓芳,賴宗聲. 深亞微米超大規(guī)模集成電路的靜態(tài)時(shí)序分析[J]. 微計(jì)算機(jī)信息. 2006.8