基于層次法實(shí)現(xiàn)EOS芯片的后端設(shè)計(jì)
1 引言
本文引用地址:http://m.butianyuan.cn/article/171655.htm集成電路(Integrated Circuit, IC)是指在一半導(dǎo)體基板上,利用氧化、蝕刻、擴(kuò)散等方法,將眾多電子電路組成各式二極管、晶體管等電子組件,做在一個(gè)微小面積上,以完成某一特定邏輯功能,達(dá)成預(yù)先設(shè)定好的電路功能要求的電路系統(tǒng)。
IC設(shè)計(jì)是將系統(tǒng)、邏輯與性能的設(shè)計(jì)要求轉(zhuǎn)化為具體的物理版圖的過(guò)程,也是一個(gè)把產(chǎn)品從抽象的過(guò)程一步步具體化、直至最終物理實(shí)現(xiàn)的過(guò)程。
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ì)過(guò)程中與產(chǎn)品研制和生產(chǎn)直接相關(guān)的設(shè)計(jì)過(guò)程,是集成電路設(shè)計(jì)的重要組成部分,后端設(shè)計(jì)的目的是將與工藝無(wú)關(guān)的通過(guò)硬件描述語(yǔ)言(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ì)過(guò)程,也是集成電路設(shè)計(jì)發(fā)展較快,自動(dòng)化水平較高的領(lǐng)域。在超深亞微米工藝條件下,由于設(shè)計(jì)復(fù)雜度上升和新工藝帶來(lái)的物理特性變化,后端設(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í)鐘樹(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è)模塊的門(mén)級(jí)網(wǎng)表(netlist),再將各個(gè)模塊的門(mén)級(jí)網(wǎng)表組合成整個(gè)芯片的門(mén)級(jí)網(wǎng)表,將整個(gè)芯片的門(mén)級(jí)網(wǎng)表根據(jù)物理關(guān)系分成若干個(gè)模塊,同時(shí)通過(guò)時(shí)序分塊(timing budget)得到每個(gè)模塊的時(shí)序要求,根據(jù)每個(gè)物理模塊的門(mén)級(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),單元庫(kù)(cell library),時(shí)序庫(kù)(tlf)等等。
(2) I/O PAD放置
根據(jù)芯片外管腳的定義和模塊數(shù)據(jù)流向手工放置I/O PAD的位置,也可以通過(guò)編寫(xiě)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ù)流和功能要求放置,如果沒(méi)有要求可以放置在靠近外圍,這樣不會(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)。
評(píng)論