【基础知识】~ 集成电路设计流程,以及各阶段所使用的EDA工具
本章目錄:
- 1. 確定項(xiàng)目需求
- 工具
- 2. 前端設(shè)計(jì)(架構(gòu)/算法設(shè)計(jì)分析)
- 目的
- 工具
- 特點(diǎn)
- 3. RTL 實(shí)現(xiàn)
- 目的
- 工具
- 特點(diǎn)
- Coding Style Check
- 4. 功能驗(yàn)證
- 目的
- 工具
- 語言
- 特點(diǎn)
- 5. 邏輯綜合+DFT
- 目的
- 工具
- 特點(diǎn)
- DFT(Design For Test)
- 6. 形式驗(yàn)證
- 目的
- 工具
- 輸入文件
- 輸出文件
- 7. 靜態(tài)時(shí)序分析
- 目的
- 工具
- 輸入
- 輸出
- 特點(diǎn)
- 8. 后端設(shè)計(jì)
- 聲明
1. 確定項(xiàng)目需求
首先做一款芯片需要有市場,一般公司會先做市場調(diào)研,比如最近市面上比較火的人工智能芯片,物聯(lián)網(wǎng)芯片,5G 芯片,需求量都比較大。有了市場的需求我們就可以設(shè)計(jì)芯片的 spec了。先由架構(gòu)工程師來設(shè)計(jì)架構(gòu),確定芯片的功能,然后用算法進(jìn)行模擬仿真,最后得出一個(gè)可行的芯片設(shè)計(jì)方案。有了芯片的 spec,下一步就可以做 RTL coding 了。
工具
Office
2. 前端設(shè)計(jì)(架構(gòu)/算法設(shè)計(jì)分析)
目的
完成芯片中數(shù)字部分的高層次算法或架構(gòu)的分析與建模,為硬件提供一個(gè)正確的軟件功能模型,更為重要的是,通過大量的高層次仿真和調(diào)試,為 RTL 實(shí)現(xiàn)提供總體性的設(shè)計(jì)指導(dǎo)。數(shù)字部分越復(fù)雜,這一點(diǎn)越重要。
工具
MATLAB、C++、C、System C、System Verilog 等。
不同類型的芯片都不同的選擇,如數(shù)字信號處理類芯片,偏好 MATLAB。
特點(diǎn)
這部分工作至關(guān)重要,基本上奠定了整個(gè)芯片的性能和功耗的基礎(chǔ)。這部分工作主要由具有通信、信號處理、計(jì)算機(jī)、軟件專業(yè)背景的工程師完成,也有很多微電子專業(yè)背景的工程師參與。
3. RTL 實(shí)現(xiàn)
目的
依據(jù)上一步的結(jié)果,完成由高層次描述到 Verilog HDL 實(shí)現(xiàn)的過程。
工具
GVim/Emac、Verilog/VHDL
特點(diǎn)
這一步能明顯區(qū)別中訓(xùn)練有素的工程師和初學(xué)者。前者在寫代碼的過程中,具有極強(qiáng)的大局觀,能夠在書寫 Verilog HDL、描述邏輯功能的同時(shí),還能夠兼顧邏輯綜合、STA、P&R、DFX、功耗分析等多方面因素,最終提供一份另其他環(huán)節(jié)的工程師都賞心悅目的代碼。初學(xué)者則處處留地雷,一不小心就引爆。
Coding Style Check
目的:排除 RTL 代碼中 CDC(Clock Domain Cross)、Lint 等問題。
CDC:跨時(shí)鐘域檢查
LInt:代碼潛在問題檢查(例如 A+B 的進(jìn)位溢出)
工具:Syglass、LEDA、0inCDC
特點(diǎn):目前大部分芯片中的數(shù)字部分基本上都采用局部同步和全局異步的設(shè)計(jì)策略,因此,在設(shè)計(jì)中需要小心注意跨時(shí)鐘域的數(shù)據(jù)同步問題。
輸入:RTL,SDC,lib/sglib
輸出:wave file,report
4. 功能驗(yàn)證
目的
在無延遲的理想情況在,通過大量的仿真,發(fā)現(xiàn)電路設(shè)計(jì)過程中的人為或者非人為引起的 bug。主要指標(biāo)是功能覆蓋率。
工具
Modelsim、VCS、NC-Verilog、(DVE/Verdi 波形查看器)
語言
C++、C、System C、System Verilog,基于 UVM 的方法學(xué)等。主要是 System Verilog,一般哪個(gè)方便用哪個(gè)。
特點(diǎn)
驗(yàn)證工程師近年來已經(jīng)成為 IC 設(shè)計(jì)中需求量最大的崗位。這個(gè)階段會占用大量的時(shí)間,數(shù)以月計(jì)。
5. 邏輯綜合+DFT
目的
將 RTL 代碼映射為與工藝庫相關(guān)的網(wǎng)表。
工具
DesignCompiler、RTL Compiler。
DesignCompiler 在市場中占有壟斷性地位,幾乎成為邏輯綜合的標(biāo)準(zhǔn)。
特點(diǎn)
DFT(Design For Test)
為了保證芯片內(nèi)部的制造缺陷盡量能夠被檢測到,通過在電路中插入掃描鏈(Scan Chain)的方式,測試 IC 在生產(chǎn)制造過程中是否出現(xiàn)問題。加入 DFT 會增加 20%~30%的面積。但為了保證良率,為了給客戶的片子是合格的需要將具有缺陷(工廠制
造缺陷)的片子篩除。
輸入文件:
a.RTL 代碼:由 ASIC design engineers 團(tuán)隊(duì)提供;交接前,必須保證在第 3 步的 check 中沒有任何問題;
b.工藝庫(.db):由晶圓廠提供;
c.約束(SDC):由邏輯綜合工程師和 ASIC design engineers 共同商定。
輸出文件:
a.網(wǎng)表:包含了 RTL 中的所有的邏輯信息,除此以外,可能還會有 DFT、clock gating、I/O等;網(wǎng)表主要用于 P&R 等流程;
b.標(biāo)準(zhǔn)延遲文件 SDF:主要包含了網(wǎng)表中所有器件的延遲信息,用于時(shí)序仿真;PT 會結(jié)合后端工具生成的一個(gè)更為精確的 sdf ,所以,通常會用 PT 的 sdf 文件做后仿真。Project 文件:.ddc;
c.各種報(bào)告:timing report、area report、constrain report、clock report、violation report 等等,以及工具的 log 文件。(此處最好能夠熟悉各種腳本語言,將各種 report 處理為友好易讀形式)
6. 形式驗(yàn)證
目的
RTL 代碼和邏輯綜合后的網(wǎng)表是否具有一致的功能。(尤其是在后端做 ECO 的時(shí)候)
工具
Formality、Conformal
輸入文件
RTL 代碼、netlist(邏輯綜合輸出)、約束
輸出文件
match 和 verify 報(bào)告。
7. 靜態(tài)時(shí)序分析
目的
分析設(shè)計(jì)中所有的路徑,確保滿足內(nèi)部時(shí)序單元對建立時(shí)間和保持時(shí)間的要求。
工具
PrimeTime、Tempus。
PrimeTime 在市場中占有壟斷性地位,幾乎成為 STA 的標(biāo)準(zhǔn)
輸入
spef 文件、PnR 網(wǎng)表,標(biāo)準(zhǔn)單元庫 db 文件,IP 的 dp 文件
輸出
SDF,timing ECO 文件
特點(diǎn)
注:靜態(tài)時(shí)序分析和形式驗(yàn)證這屬于驗(yàn)證范疇。
STA 主要是在時(shí)序上對電路進(jìn)行驗(yàn)證,檢查電路是否存在建立時(shí)間(setup time)和保持時(shí)間(hold time)的違例(violation)。而形式驗(yàn)證是從功能上對綜合后的網(wǎng)表進(jìn)行驗(yàn)證。常用的就是等價(jià)性檢查(LEC)方法,以功能驗(yàn)證后的 HDL 設(shè)計(jì)為參考,對比綜合后的網(wǎng)表功能,他們是否在功能上存在等價(jià)性。
靜態(tài)時(shí)序分析和形式驗(yàn)證出現(xiàn)在設(shè)計(jì)流程中前后端過程,有一些地方在前端中沒有提到,應(yīng)該是在后端當(dāng)中比較重要,作為驗(yàn)證設(shè)計(jì)工作的一部分,在前端中也加入靜態(tài)時(shí)序分析和形式驗(yàn)證可以提高設(shè)計(jì)的可靠性。
8. 后端設(shè)計(jì)
Place & Route 一般由后端工程師來做,Physical Design Engineer.
后端里 DRC 就是要檢查設(shè)計(jì)規(guī)則是否符合芯片制造商的要求,這樣才能正確的生產(chǎn)芯片。
后端完成工作后,最終會生成 GDSII 格式的文件,交由芯片制造商流片。
聲明
本人所有系列的文章,僅供學(xué)習(xí),不可商用,如有侵權(quán),請告知,立刪!!!
本人主要是記錄學(xué)習(xí)過程,以供自己回頭復(fù)習(xí),再就是提供給后人參考,不喜勿噴!!!
如果覺得對你有用的話,記得收藏+評論!!!
總結(jié)
以上是生活随笔為你收集整理的【基础知识】~ 集成电路设计流程,以及各阶段所使用的EDA工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锐捷客户端linux登录密码忘记,锐捷S
- 下一篇: 工作108:精准的v-for和if