數(shù)字 IC top-down 設(shè)計(jì)流程
拿到一個(gè)芯片設(shè)計(jì)項(xiàng)目,首要做的事就是確定好系統(tǒng)功能、性能、物理尺寸、
設(shè)計(jì)模式、制造
工藝、設(shè)計(jì)周期、設(shè)計(jì)費(fèi)用等等。芯片項(xiàng)目的總體規(guī)劃確定好之后,接著就要
從技術(shù)層面上設(shè)計(jì)芯
片,芯片流程一般分為前端設(shè)計(jì)和后端設(shè)計(jì)連個(gè)過程。
前端設(shè)計(jì):
1.設(shè)計(jì)輸入
確定芯片的具體邏輯功能,設(shè)計(jì)合理的算法(如有必要,可將芯片劃分子模
塊),使用 HDL 語言
(常用 VHDL 或 Verilog)描述芯片(模塊)功能,寫出可綜合級(jí)別的代碼。
HDL 語言可以直接用各種
文本編輯器編寫(要注意后綴),也可以用仿真器自帶的文本編輯器編寫。如
果邏輯結(jié)構(gòu)不是很復(fù)
雜,或者電路形式有特定的要求,不宜用 HDL 語言描述,這時(shí)可以考慮用原理
圖編輯器直接畫出原理
圖,或者直接編寫出電路網(wǎng)表。常用的輸入工具有 Cadence 的 Composer,
Synopsys 的 Viewdraw 等。
2.前端仿真( RTL 級(jí))
用仿真工具對(duì) HDL 代碼作前仿真,做理想狀況下的功能驗(yàn)證,觀察 HDL 仿真結(jié)
果是否滿足要求。
仿真工具主要有 Synopsys 公司的 V S S( VHDL)、 V C S( Verilog),
Cadence 公司的 NC-Verilog 和 Verilog-XL
( Verilog), Leapfrog( VHDL) ,Mentor Graphics 公司的 Modelsim
( Verilog&VHDL)。還有些 FPGA
公司的仿真軟件也不錯(cuò),比如 Altera 公司的 Quartus。
3.邏輯綜合
前仿真通過以后,就可以把代碼拿去綜合了,邏輯綜合是指把 HDL 語言描述轉(zhuǎn)
化成電路門級(jí)網(wǎng)表,
并進(jìn)行邏輯和時(shí)序電路的優(yōu)化。綜合需要設(shè)定約束條件,還需要基于特定的綜
合庫。不同的庫中,
門電路基本標(biāo)準(zhǔn)單元( standard cell)的面積,時(shí)序參數(shù)是不一樣的。所以,
選用的綜合庫不一樣,
綜合出來的電路在時(shí)序,面積上是有差異的。輸出文件也可以有多種格式,常
用的有 EDIF 格式
( Electronic Data Interchange Format 電子數(shù)據(jù)交換格式)。綜合工具
Synopsys 公司的比較強(qiáng),
如 DC( Design Compiler), BC( Behavior Compiler), Cadence 的有 Ambit,
PKS。有些 FPGA 用的第
三方綜合工具功能也很強(qiáng)大,如 Cadence 的 Synplify, Synopsys 的 FPGAExpress 和 FPGA-Compiler,
Mentor 的 Leonardo Spectrum。
4. 形式驗(yàn)證
是從功能上對(duì)綜合后的網(wǎng)表進(jìn)行驗(yàn)證。常用的就是等價(jià)性檢查方法,以 HDL 為
參考,對(duì)比綜合生
成的網(wǎng)表功能,驗(yàn)證他們是否在功能上存在等價(jià)性。這樣做是為了保證在邏輯
綜合過程中沒有改變
原先 HDL 描述的電路功能。形式驗(yàn)證工具有 Synopsys 的 Formality, Mentor 的
FormalPro。
這些都沒有問題了就可以進(jìn)入后端設(shè)計(jì)了。
后端設(shè)計(jì):
5.數(shù)據(jù)準(zhǔn)備
后端設(shè)計(jì)需要 foundry 提供的和前端設(shè)計(jì)產(chǎn)生的一些數(shù)據(jù)。
例如對(duì)于 Cadence 的 SE( Silicon Ensemble)而言所需的數(shù)據(jù)主要有 Foundry
廠提供的標(biāo)準(zhǔn)單元
(全定制設(shè)計(jì)也可由自己設(shè)計(jì)標(biāo)準(zhǔn)單元)、宏單元和 I/O Pad 的庫文件,它包括
物理庫、時(shí)序庫及網(wǎng)
表庫,分別以.lef、 .tlf 和.v 的形式給出。前端的芯片設(shè)計(jì)經(jīng)過綜合后生成的
門級(jí)網(wǎng)表,具有時(shí)序約
束和時(shí)鐘定義的腳本文件和由此產(chǎn)生的.gcf 約束文件以及定義電源 Pad 的 DEF
( Design Exchange
Format)文件。對(duì) synopsys 的 Astro 而言, 經(jīng)過綜合后生成的門級(jí)網(wǎng)表,
時(shí)序約束文件 SDC 是一樣
的,Pad 的定義文件--tdf, .tf 文件--technology file,Foundry 廠提供的標(biāo)
準(zhǔn)單元、宏單元和 I/O
Pad 的庫文件就與 FRAM, CELL view, LM view 形式給出(Milkway 參考庫 and
DB, LIB file)
標(biāo)準(zhǔn)單元版圖。標(biāo)準(zhǔn)單元分為單元庫和全定制兩種。單元庫一般是 foundry 給
定的,全定制的話,
版圖是由自己公司專門的版圖工程師畫的, Layout 工具有 Cadence Virtuoso
layout editor,另外
還有 Laker 等使用也很廣泛。版圖畫完后往往要做一下 DRC 驗(yàn)證( Design Rule
Checking 設(shè)計(jì)規(guī)則檢
查,檢查連線間距,連線寬度等幾何規(guī)則是否滿足工藝要求), LVS 驗(yàn)證
( Layout Vs Schematic 版圖
與邏輯綜合后的門級(jí)電路圖的參數(shù)對(duì)比驗(yàn)證),這要借助 Cadence 的 Diva,
Dracula 或者 Mentor 公司
的 Calibre 或者 Synopsys 公司的 Hercules, LVS 上 Hercules 功能尤顯強(qiáng)大。
6.自動(dòng)布局布線( Auto place & route,簡稱 APR)
利用前面做好的網(wǎng)表和單元版圖生成整塊芯片版圖??捎霉ぞ哂?Synopsys 公司
的 Astro( Avant!
的 Apollo), Cadence 的 design framework,Silicon Ensembler, Envisia
place &route DSM,Design
Planner,Gate Ensemble。
( 1)布局規(guī)劃,主要是標(biāo)準(zhǔn)單元、 I/O Pad 和宏單元(如 IP 模塊, RAM 等)的
布局。 I/O Pad 一般
是預(yù)先給定了位置的,而宏單元?jiǎng)t根據(jù)時(shí)序要求進(jìn)行擺放,標(biāo)準(zhǔn)單元?jiǎng)t是給出了
一定的區(qū)域由工具自
動(dòng)擺放。布局規(guī)劃后,芯片的大小,Core 的面積,Row 的形式、電源及地線的
Ring 和 Strip 就都確定下來
了。如果有必要,在自動(dòng)放置標(biāo)準(zhǔn)單元和宏單元之后, 可以先做一次
PNA(power network analysis)
--IR drop(電壓降) and EM(電遷移)。布局規(guī)劃能直接影響芯片最終的面
積。
( 2) Placement(標(biāo)準(zhǔn)單元放置)。布局規(guī)劃后,宏單元、 I/O Pad 的位置和放
置標(biāo)準(zhǔn)單元的區(qū)域
都已確定,這些信息由 SE( Silicon Ensemble)通過 DEF 文件傳遞給
PC(Physical Compiler 物理綜合
工具),PC 根據(jù)由邏輯綜合給出的.DB 文件獲得網(wǎng)表和時(shí)序約束信息進(jìn)行自動(dòng)放
置標(biāo)準(zhǔn)單元,同時(shí)進(jìn)行
時(shí)序檢查和單元放置優(yōu)化。如果是用 PC +Astro,則可用 write_milkway,
read_milkway 傳遞數(shù)據(jù)。
( 3) Routing(布線)是指在滿足工藝規(guī)則和布線層數(shù)限制、線寬、線間距限
制和各線網(wǎng)可靠絕
緣的電性能約束的條件下,根據(jù)電路的連接關(guān)系將各單元和 I/O Pad 用互連線連
接起來,這些是在時(shí)
序驅(qū)動(dòng)(Timing driven ) 的條件下進(jìn)行的,保證關(guān)鍵時(shí)序路徑上的連線長度能
夠最小?;玖鞒淌牵?/p>
Global route-- Track assign --Detail Dummy Metal 的增加(詳見第 10
步)。
( 4)布局布線中需要注意的是 CTS( Clock Tree Synthesis,時(shí)鐘樹綜合),
簡單點(diǎn)說就是時(shí)鐘
的布線。由于時(shí)鐘信號(hào)在數(shù)字芯片的全局指揮作用,它的分布應(yīng)該是對(duì)稱式的
連到各個(gè)時(shí)序單元,
使時(shí)鐘從同一個(gè)時(shí)鐘源到達(dá)各個(gè)時(shí)許單元的延遲差異最小。而且有的時(shí)序單元,
對(duì)時(shí)鐘源來說負(fù)載很
多,其負(fù)載延時(shí)很大也會(huì)造成不平衡,這是就需要插入緩沖器減小負(fù)載和平衡延
時(shí)。從而因此時(shí)鐘信
號(hào)一般需要單獨(dú)布線。這些時(shí)鐘網(wǎng)絡(luò)及其上的緩沖器構(gòu)成了時(shí)鐘樹。一般要反
復(fù)幾次才可以做出一
個(gè)比較理想的時(shí)鐘樹。 CTS 工具常用 Synopsys 的 Physical Compiler。
7.寄生參數(shù)提取及后仿真
( 1)由于芯片里面的導(dǎo)線等本身存在的電阻,相鄰導(dǎo)線之間還有互感,耦合電
容等,他們都會(huì)在
芯片內(nèi)部會(huì)產(chǎn)生信號(hào)噪聲,串?dāng)_和反射。這些效應(yīng)會(huì)產(chǎn)生信號(hào)完整性問題,導(dǎo)
致信號(hào)的電壓波動(dòng)和
變化,如果嚴(yán)重就會(huì)導(dǎo)致信號(hào)失真錯(cuò)誤。因此從 layout 進(jìn)行寄生參數(shù)提取
( extract),反標(biāo)到前面
的網(wǎng)表中,再次分析驗(yàn)證信號(hào)完整性問題是非常重要的。常用的參數(shù)提取工具
有 Synopsys 的 Star-RC
XT, Cadence 的 Nautilus DC,軟件生成的帶有完整的延時(shí)信息的設(shè)計(jì)文件格式
一般有: *.vho,*.sdf
文件。
( 2) STA( Static Timing Analysis 靜態(tài)時(shí)序分析)是采用窮盡分析方法來提
取出整個(gè)電路存在的
所有時(shí)序路徑,計(jì)算信號(hào)在這些路徑上的傳播延時(shí),檢查信號(hào)的建立時(shí)間
( setup time)和保持時(shí)
間( hold time)是否滿足時(shí)序要求,通過對(duì)最大路徑延時(shí)和最小路徑延時(shí)的分
析,找出違背時(shí)序約
束的錯(cuò)誤。因?yàn)闀r(shí)鐘樹插入后,每個(gè)單元的位置都確定下來了,工具可以提出
Global Route 形式的連
線寄生參數(shù),此時(shí)對(duì)延時(shí)參數(shù)的提取就比較準(zhǔn)確了。例如 SE 把.V 和.SDF 文件傳
遞給靜態(tài)時(shí)序驗(yàn)證工具
進(jìn)行分析。而對(duì) Astro 而言,在 detail routing 之后, 用 starRC XT 進(jìn)
行參數(shù)提取,生成的.V 和.SDF
文件傳遞給 PrimeTime 做靜態(tài)時(shí)序分析,那將會(huì)更準(zhǔn)確。時(shí)序驗(yàn)證工具有
Cadence 的 Pearl, Synopsys
的 Prime Time 等。這些流程都沒有問題后,就可以將.v 和.sdf 文件送去前端
人員那里進(jìn)行后仿真,
即 DTA(動(dòng)態(tài)時(shí)序分析),再次驗(yàn)證邏輯功能,后仿真應(yīng)做 SI(信號(hào)完整性)
分析。
8. ECO(Engineering Change Order)
針對(duì)靜態(tài)時(shí)序分析和后仿真中出現(xiàn)的問題,對(duì)電路和單元布局進(jìn)行小范圍的改動(dòng)。
后仿真和前面
的布局布線階段可能需要反復(fù)的循環(huán)進(jìn)行才能達(dá)到設(shè)計(jì)要求,這需要前端人員
和后端人員的良好配
合。
9.芯片功耗分析
實(shí)際的后端流程還包括電路功耗分析,功耗分析常用的工具有 Prime power,
Power Compiler 等。
10.Filler 的插入(pad filler, cell filler)和 Dummy 金屬的添加
Filler 指的是標(biāo)準(zhǔn)單元庫和 I/O Pad 庫中定義的與邏輯無關(guān)的填充物,用來填
充標(biāo)準(zhǔn)單元和標(biāo)準(zhǔn)單元
之間,I/O Pad 和 I/O Pad 之間的間隙,它主要是把擴(kuò)散層連接起來,滿足 DRC 規(guī)
則和設(shè)計(jì)需要。另外還
因?yàn)?Foundry 對(duì)金屬密度一般都有規(guī)定,使其金屬密度不要低于一定的值,以防
在芯片制造過程中的
刻蝕階段對(duì)連線的金屬層過度刻蝕從而降低電路的性能,加入 Dummy Metal 就
是為了增加金屬的密
度。
11.整體物理版圖驗(yàn)證
主要包括 LVS, DRC, ERC( Electrical Rule Checking 電氣規(guī)則檢查,檢查短
路,開路等電氣規(guī)
則違例)。工具前面已經(jīng)介紹,這一步的完成基本上就是是整個(gè)芯片設(shè)計(jì)階段
完成,下面的就是芯
片制造了。物理版圖以 GDSII 的格式交給掩膜版廠做掩膜,然后到芯片代工廠
( Foundry)流片( tape
out),在晶圓硅片上做出實(shí)際的電路。流片出來后要對(duì)樣片進(jìn)行各種測試,滿
足要求后就可以批量
生產(chǎn)了。
附:
DFT( Design For Test 可測性設(shè)計(jì))。 IC 設(shè)計(jì)時(shí)內(nèi)部往往都設(shè)計(jì)為自帶測試電
路的結(jié)構(gòu), DFT 的目
的就是在設(shè)計(jì)的時(shí)候就考慮將來的測試。 DFT 的常見方法就是,在設(shè)計(jì)中插入
掃描鏈,將非掃描單元
(如寄存器)變?yōu)閽呙鑶卧?DFT 工具 Synopsys 的 DFT Compiler, Mentor 的
FastScan 等,需前后端設(shè)
計(jì)員合作,并參與 tapeout 后測試。還有隨著制造工藝不斷進(jìn)步產(chǎn)生的 DFM
(可制造性設(shè)計(jì))問題等
等。
總結(jié):
Specification ->Architecture->RTL->SIM->DC->SIM->PT->DC->ASTRO->PT-
>DRC,LVS, ERC->TAPE OUT
數(shù)字 IC 設(shè)計(jì)中常見文件格式:
.alf: Advanced Library Format describing IC technology, cells and
blocks
.cif: Caltech Intermediate Format,純文本的中間文件,主要用于版圖的導(dǎo)
入輸出,不用于生產(chǎn)
.ctlf: Compiled Timing Library Format
.db: data base
.def:design exchange format
.dspf:寄生參數(shù)交互格式
.edif: Electronic Data Interchange Format
.gcf: General Constraint Format
.GDSII: Graphic Design System II, Foundry 最常用的最終版圖格式
.lef: Layout Exchange Format
.lib: DC 工具用的庫文件格式
.sdf:增量標(biāo)準(zhǔn)延時(shí)格式,用作靜態(tài)時(shí)序分析模塊 Prime Time 的輸入
.spef:標(biāo)準(zhǔn)寄生參數(shù)交換格式
.tdf:工藝庫對(duì) pad 的定義文件
.tf : Technology File format
.tlf: timing library format
.v: Verilog 源代碼
.vhd: VHDL 源代碼
.vho:帶延時(shí)的門級(jí)網(wǎng)表文件,用于 vhdl 代碼在第三方仿真 tools 下運(yùn)行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?----本人于網(wǎng)上找的資料,僅用于閱讀