數(shù)字IC設(shè)計(jì)流程介紹
一顆芯片從無到有,從有需求到最終應(yīng)用,經(jīng)歷的是一個(gè)漫長(zhǎng)的過程,作為人類科技巔峰之一的芯片,凝聚了人們的智慧,而芯片產(chǎn)業(yè)鏈也是極其復(fù)雜的,在此,我大致把它歸為四個(gè)部分(市場(chǎng)需求--芯片設(shè)計(jì)--芯片制造--測(cè)試封裝)。
1
市場(chǎng)需求
這個(gè)無需多講,目前芯片應(yīng)用已經(jīng)滲透到我們生活的方方面面,早晨上班騎的共享單車,到公司刷的IC卡,工作時(shí)偷偷地打游戲,手機(jī)卡了還要換更快的手機(jī),可以說IC的市場(chǎng)需求一直都在。

2
芯片設(shè)計(jì)
芯片設(shè)計(jì)又可以分為兩部分,芯片前端設(shè)計(jì)和芯片后端設(shè)計(jì),整體流程如下圖:

芯片前端設(shè)計(jì)
前端設(shè)計(jì)也就是從輸入需求到輸出網(wǎng)表的過程:主要分為以下幾個(gè)步驟:
RTL設(shè)計(jì)
驗(yàn)證
靜態(tài)時(shí)序分析
覆蓋率
ASIC邏輯綜合
時(shí)序分析和驗(yàn)證時(shí)出現(xiàn)的錯(cuò)誤可能需要反復(fù)重做前面幾步才能解決,是一個(gè)多次迭代優(yōu)化的過程。
下面我來仔細(xì)介紹一下這六個(gè)步驟。
1、RTL設(shè)計(jì)
在設(shè)計(jì)之前我們先要確定芯片的工藝,比如是選擇TSMC還是SMIC,是7nm,還是5nm,而工藝的選擇也是受很多因素的制約(如下圖),而芯片工藝的選擇,就是對(duì)這些因素的權(quán)衡。

IC設(shè)計(jì)的第一步就是制定Spec,這個(gè)步驟就像是在設(shè)計(jì)建筑前,要先畫好圖紙一樣,在確定好所有的功能之后在進(jìn)行設(shè)計(jì),這樣才不用再花額外的時(shí)間進(jìn)行后續(xù)修改。IC 設(shè)計(jì)也需要經(jīng)過類似的步驟,才能確保設(shè)計(jì)出來的芯片不會(huì)有任何差錯(cuò)。

而用RTL實(shí)現(xiàn)的各種功能模塊,來組成一個(gè)實(shí)現(xiàn)具體功能的IP,SOC芯片最終由SOC integration工程師把各個(gè)IP集成到一起。
IP又分為模擬IP和數(shù)字IP,大概可以做如下的分類:

在芯片功能設(shè)計(jì)完備后,我們還要做可測(cè)性設(shè)計(jì)DFT(Design For Test)。

RTL設(shè)計(jì)最后要做的就是代碼的設(shè)計(jì)規(guī)則檢查。
通過lint, Spyglass等工具,針對(duì)電路進(jìn)行設(shè)計(jì)規(guī)則檢查,包括代碼編寫風(fēng)格,DFT,命名規(guī)則和電路綜合相關(guān)規(guī)則等。
2、驗(yàn)證
驗(yàn)證是保證芯片功能正確性和完整性最重要的一環(huán)。驗(yàn)證的工作量也是占整個(gè)芯片開發(fā)周期的50%-70%,相應(yīng)的,驗(yàn)證工程師與設(shè)計(jì)工程師的數(shù)量大概在2-3:1。
從驗(yàn)證的層次可以分位:模塊級(jí)驗(yàn)證,子系統(tǒng)級(jí)驗(yàn)證和系統(tǒng)級(jí)驗(yàn)證。
從驗(yàn)證的途徑可以分為:模擬(simulation),仿真和形式驗(yàn)證(formality check)。

3、靜態(tài)時(shí)序分析(STA)
靜態(tài)時(shí)序分析是套用特定的時(shí)序模型(timing model),針對(duì)特定電路,分析其是否違反designer給定的時(shí)序限制(timing constraint)。
目前主流的STA工具是synopsys的Prime Time。

靜態(tài)時(shí)序分析的作用:
1. 確定芯片最高工作頻率
通過時(shí)序分析可以控制工程的綜合、映射、布局布線等環(huán)節(jié),減少延遲,從而盡可能提高工作頻率。
2. 檢查時(shí)序約束是否滿足
可以通過時(shí)序分析來查看目標(biāo)模塊是否滿足約束,如不滿足,可以定位到不滿足約束的部分,并給出具體原因,進(jìn)一步修改程序直至滿足要求。
3. 分析時(shí)鐘質(zhì)量
時(shí)鐘存在抖動(dòng)、偏移、占空比失真等不可避免的缺陷。通過時(shí)序分析可以驗(yàn)證其對(duì)目標(biāo)模塊的影響。
4、覆蓋率
覆蓋率作為一種判斷驗(yàn)證充分性的手段,已成為驗(yàn)證工作的主導(dǎo)。從目標(biāo)上,可以把覆蓋率分為兩類:
代碼覆蓋率
作用:檢查代碼是否冗余,設(shè)計(jì)要點(diǎn)是否遍歷完全。
檢查對(duì)象:RTL代碼
功能覆蓋率
作用:檢查功能是否遍歷
檢查對(duì)象:自定義的container
在設(shè)計(jì)完成時(shí),要進(jìn)行代碼覆蓋率充分性的sign-off, 對(duì)于覆蓋率未達(dá)到100%的情況,要給出合理的解釋,保證不影響芯片的工能。
5、ASIC綜合
邏輯綜合的結(jié)果就是把設(shè)計(jì)實(shí)現(xiàn)的RTL代碼翻譯成門級(jí)網(wǎng)表(netlist)的過程。
在做綜合時(shí)要設(shè)定約束條件,如電路面積、時(shí)序要求等目標(biāo)參數(shù)。
工具:synopsys的Design compiler, 綜合后把網(wǎng)表交給后端。
至此,前端的設(shè)計(jì)工作就結(jié)束啦!

芯片后端設(shè)計(jì)
后端設(shè)計(jì)也就是從輸入網(wǎng)表到輸出GDSII文件的過程:主要分為以下六個(gè)步驟:
1. 邏輯綜合
2. 形式驗(yàn)證
3. 物理實(shí)現(xiàn)
4. 時(shí)鐘樹綜合-CTS
5. 寄生參數(shù)提取
6. 版圖物理驗(yàn)證
1.邏輯綜合
在前端最后一步已經(jīng)講過了,在此不做贅述。
2. 形式驗(yàn)證
1)驗(yàn)證芯片功能的一致性
2)不驗(yàn)證電路本身的正確性
3)每次電路改變后都需驗(yàn)證
形式驗(yàn)證的意義在于保障芯片設(shè)計(jì)的一致性,一般在邏輯綜合,布局布線完成后必須做。
工具:synopsys Formality
3. 物理實(shí)現(xiàn)
物理實(shí)現(xiàn)可以分為三個(gè)部分:
布局規(guī)劃 floor plan
布局 place
布線 route
1、布圖規(guī)劃floor plan
布圖規(guī)劃是整個(gè)后端流程中作重要的一步,但也是彈性最大的一步。因?yàn)闆]有標(biāo)準(zhǔn)的最佳方案,但又有很多細(xì)節(jié)需要考量。
布局布線的目標(biāo):優(yōu)化芯片的面積,時(shí)序收斂,穩(wěn)定,方便走線。
工具:IC compiler,Encounter
布圖規(guī)劃完成效果圖:

2、布局
布局即擺放標(biāo)準(zhǔn)單元,I/O pad,宏單元來實(shí)現(xiàn)個(gè)電路邏輯。
布局目標(biāo):利用率越高越好,總線長(zhǎng)越短越好,時(shí)序越快越好。
但利用率越高,布線就越困難;總線長(zhǎng)越長(zhǎng),時(shí)序就越慢。因此要做到以上三個(gè)參數(shù)的最佳平衡。
布局完成效果圖:

3、布線
布線是指在滿足工藝規(guī)則和布線層數(shù)限制、線寬、線間距限制和各線網(wǎng)可靠絕緣的電性能約束條件下,根據(jù)電路的連接關(guān)系,將各單元和I/O pad用互連線連接起來。

4.時(shí)鐘樹綜合——CTS
Clock Tree Synthesis,時(shí)鐘樹綜合,簡(jiǎn)單點(diǎn)說就是時(shí)鐘的布線。
由于時(shí)鐘信號(hào)在數(shù)字芯片的全局指揮作用,它的分布應(yīng)該是對(duì)稱式的連到各個(gè)寄存器單元,從而使時(shí)鐘從同一個(gè)時(shí)鐘源到達(dá)各個(gè)寄存器時(shí),時(shí)鐘延遲差異最小。這也是為什么時(shí)鐘信號(hào)需要單獨(dú)布線的原因。

5. 寄生參數(shù)提取
由于導(dǎo)線本身存在的電阻,相鄰導(dǎo)線之間的互感,耦合電容在芯片內(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ò)誤。提取寄生參數(shù)進(jìn)行再次的分析驗(yàn)證,分析信號(hào)完整性問題是非常重要的。
工具Synopsys的Star-RCXT
6. 版圖物理驗(yàn)證
這一環(huán)節(jié)是對(duì)完成布線的物理版圖進(jìn)行功能和時(shí)序上的驗(yàn)證,大概包含以下方面:
LVS(Layout Vs Schematic)驗(yàn)證:簡(jiǎn)單說,就是版圖與邏輯綜合后的門級(jí)電路圖的對(duì)比驗(yàn)證;
DRC(Design Rule Checking):設(shè)計(jì)規(guī)則檢查,檢查連線間距,連線寬度等是否滿足工藝要求;
ERC(Electrical Rule Checking):電氣規(guī)則檢查,檢查短路和開路等電氣規(guī)則違例;
實(shí)際的后端流程還包括電路功耗分析,以及隨著制造工藝不斷進(jìn)步產(chǎn)生的DFM(可制造性設(shè)計(jì))問題等。
物理版圖以GDSII的文件格式交給芯片代工廠(稱為Foundry)在晶圓硅片上做出實(shí)際的電路。

最后進(jìn)行封裝和測(cè)試,就得到了我們實(shí)際看見的芯片。

芯片設(shè)計(jì)的流程是紛繁復(fù)雜的,從設(shè)計(jì)到流片耗時(shí)長(zhǎng)(一年甚至更久),流片成本高,一旦發(fā)現(xiàn)問題還要迭代之前的某些過程。