在各方助力下,集成電路成了時(shí)代熱點(diǎn),有大量文章在寫芯片設(shè)計(jì)之復(fù)雜之困難,老驢打算從EDA 使用角度捋一遍芯片設(shè)計(jì)流程。在老驢畫出第一副圖之后,發(fā)現(xiàn)熟知的只有數(shù)字電路部分的一小段,對系統(tǒng)、軟件及上層應(yīng)用完全無知,只能歸類為Others。
于消費(fèi)者而言,一個(gè)可以使用的系統(tǒng),有數(shù)字集成電路部分、模擬集成電路部分、系統(tǒng)軟件及上層應(yīng)用部分。關(guān)于各個(gè)部分的功能,借用IC 咖啡胡總的精品圖可以一目了然。外部世界是一個(gè)模擬世界,故所有需要與外部世界接口的部分都需要模擬集成電路,模擬集成電路將采集到的外部信息轉(zhuǎn)化成0/1 交給數(shù)字集成電路運(yùn)算處理,再將數(shù)字集成電路運(yùn)算處理完的信號(hào)轉(zhuǎn)化成模擬信號(hào)輸出;而這一切的運(yùn)算過程都是在系統(tǒng)軟件的號(hào)令跟監(jiān)控下完成的,故曰:芯片是骨架,系統(tǒng)軟件是靈魂。
數(shù)字集成電路設(shè)計(jì)實(shí)現(xiàn)流程是個(gè)相當(dāng)漫長的過程,拿手機(jī)基帶芯片為例,對于3G, 4G, 5G, 工程師最初見到的是無數(shù)頁的協(xié)議文檔。架構(gòu)師要根據(jù)協(xié)議來確定:協(xié)議的哪些部分可以用軟件實(shí)現(xiàn),哪些部分需要用硬件實(shí)現(xiàn);算法工程師要深入研讀協(xié)議的每一部分,并選定實(shí)現(xiàn)所用算法;芯片設(shè)計(jì)工程師,需要將算法工程師選定的算法,描述成RTL; 芯片驗(yàn)證工程師,需要根據(jù)算法工程師選定的算法設(shè)計(jì)測試向量,對RTL 做功能、效能驗(yàn)證;數(shù)字實(shí)現(xiàn)工程師,需要根據(jù)算法工程師和設(shè)計(jì)工程師設(shè)定的目標(biāo)PPA 將RTL 揉搓成GDS; 芯片生產(chǎn)由于太過復(fù)雜,完全交由代工廠完成,封裝亦是;對于測試,大部分公司都是租借第三方測試基臺(tái)由自己的測試工程師完成,只有少部分土豪公司才會(huì)有自己的測試基臺(tái)。
一顆芯片,性能的60% 取決于架構(gòu)師,在國內(nèi)好的架構(gòu)師不超過三位數(shù),極好的架構(gòu)師不超過兩位數(shù),架構(gòu)師是芯片靈魂的締造者,是食物鏈的最頂端,是牛逼閃閃的存在,就驢淺顯認(rèn)知,除了office 似乎沒有EDA 工具用于架構(gòu)設(shè)計(jì);架構(gòu)敲定了之后,大量的算法工程師跟上,對于協(xié)議規(guī)定的每個(gè)點(diǎn),都要選擇適當(dāng)?shù)乃惴?,用C/C++ 做精確模擬仿真,要確保功能、精度、效率、吞吐量等指標(biāo),Matlab 跟GCC 應(yīng)該是他們使用最多的工具。
設(shè)計(jì)工程師根據(jù)算法工程師經(jīng)過反復(fù)模擬仿真選擇的算法,將抽象描述或定點(diǎn)C 轉(zhuǎn)換成RTL, 在設(shè)計(jì)過程中需要反復(fù)仿真、綜合,以確定設(shè)計(jì)功能的正確性,跟設(shè)計(jì)能達(dá)到的PPA. 除了RTL, 設(shè)計(jì)工程師還需要根據(jù)設(shè)計(jì)目標(biāo)編寫SDC 和power intent, 并做對應(yīng)的質(zhì)量檢查。設(shè)計(jì)工程師需要使用大量EDA 工具:
編輯器:VIM, emac;
Lint : RTL 質(zhì)量檢查,Spyglass, Jasper;
CDC: SDC 質(zhì)量檢查,Spyglass, Conformal, GCA;
CPF/1801: power intent 質(zhì)量檢查,CLP;
Power: RTL 級(jí)功耗分析,Joules, PA;
仿真器:C, S, M 三家都有各自的仿真工具;
綜合:Genus, DC;
老驢以為,從集成開始,由腦力勞作進(jìn)入體力勞作,對比蓋房子,就是從設(shè)計(jì)師到泥瓦工。集成工程師,要把芯片所用的所有模塊相互連接起來,指導(dǎo)思想是架構(gòu)工程師確定的,各個(gè)IP 如何連接是各IP 的owner 確定的,集成工程師只要保證不多連、不少連、不亂連即可,據(jù)說當(dāng)前也沒有什么有效的集成工具,常用到的是emac。 驗(yàn)證 接著捋,實(shí)際項(xiàng)目中驗(yàn)證跟綜合從RTL coding 開始就會(huì)交叉進(jìn)行,反復(fù)迭代。 驗(yàn)證在數(shù)字芯片設(shè)計(jì)中占很大比例,近些年在設(shè)計(jì)復(fù)雜度的推動(dòng)下驗(yàn)證方法學(xué)跟驗(yàn)證手段在不斷更新,從OVM 到UVM, 從Dynamic verification 到Static verification, 從FPGA 到Emulator, 所有革新目的可概括為:快速、完備、易調(diào)試。驗(yàn)證涉及到許多方面,驗(yàn)證工程師一方面要對相關(guān)協(xié)議算法有足夠了解,根據(jù)架構(gòu)、算法工程師設(shè)定的目標(biāo)設(shè)計(jì)仿真向量;另一方面要對設(shè)計(jì)本身足夠了解,以提高驗(yàn)證效率,縮短驗(yàn)證時(shí)間。驗(yàn)證工程師需要掌握許多技術(shù),需要使用許多工具。
語言:各種腳本語言之外,C/C++, SystemVerilog, Verilog;
協(xié)議:各種接口協(xié)議,各種通信協(xié)議,各種總線協(xié)議;
工具:動(dòng)態(tài)仿真工具,靜態(tài)仿真工具,F(xiàn)PGA, Emulator;
數(shù)字驗(yàn)證領(lǐng)域,依舊是C, S, M 三家?guī)缀跞?,老驢已不做驗(yàn)證多年,對S, M 兩家驗(yàn)證相關(guān)工具除了VCS, Verdi, Modelsim 其他幾乎無知,此處拿C 家驗(yàn)證全套為例。
Static Verification: Jasper Gold 是C 家新近推出的靜態(tài)驗(yàn)證工具,驢所理解的靜態(tài)驗(yàn)證是基于斷言的驗(yàn)證方法學(xué),所謂靜態(tài)即不需要輸入測試激勵(lì),驗(yàn)證過程是純數(shù)學(xué)行為。
Dynamic Verification: Xcelium 是C 家的動(dòng)態(tài)驗(yàn)證工具,驢所理解的動(dòng)態(tài)驗(yàn)證是基于UVM 的驗(yàn)證方法學(xué),通過輸入測試激勵(lì),監(jiān)控仿真結(jié)果,分析覆蓋率完成功能驗(yàn)證。
Emulator: 硬件仿真加速器,粗暴理解:有debug 功能的集成了豐富接口的巨型可編程陣列;特點(diǎn):超高速驗(yàn)證、支持系統(tǒng)軟件調(diào)試。帕拉丁是C 家在驗(yàn)證領(lǐng)域的明星產(chǎn)品,是行業(yè)翹楚,據(jù)說常有欽差蒞臨硅廠在帕拉丁前駐足良久,賞其外形之美,贊其功能之強(qiáng)。
Verification IP:驗(yàn)證需要各種驗(yàn)證模型,各種IP, 各種總線,各種高速接口。
FPGA 的一大應(yīng)用是驗(yàn)證,故提一嘴。在世上曾經(jīng)有兩家牛逼閃閃的FPGA 公司,一家是Altera 另一家是Xilinx, 后來Altera 像Mentor 一樣找了個(gè)大爺把自己賣了。FPGA 內(nèi)除了可編程邏輯之外,通常還會(huì)集成各種IP, 如CPU, DSP, DDR controller 等。每家FPGA 都有各種配置,根據(jù)集成的IP, 可編程邏輯的規(guī)模,可達(dá)到的速度,價(jià)格相差極大。相對于ASIC, FPGA 也有一套對應(yīng)的EDA 工具,用于綜合、布局布線、燒錄、調(diào)試。如:Synplify, Quartus。
國內(nèi)現(xiàn)狀:Static Verification, Dynamic Verification, Emulator 幾乎空白;國內(nèi)有一些FPGA 公司,在中低端領(lǐng)域已經(jīng)做得非常不錯(cuò),但是高端領(lǐng)域幾乎空白。任重而道遠(yuǎn),不矯飾,腳踏實(shí)地干! 實(shí)現(xiàn) 接著上面說的我們繼續(xù)捋數(shù)字芯片設(shè)計(jì)實(shí)現(xiàn)流程,今天進(jìn)入實(shí)現(xiàn)階段,對于這一段驢只熟悉其中的綜合、形式驗(yàn)證、低功耗驗(yàn)證、RTL 功耗分析、STA, 其他部分都是一知半解,故無深究,只捋流程。
整個(gè)實(shí)現(xiàn)階段,可以概括成玩EDA 工具及基于EDA 工具的方法學(xué),EDA 工具無疑是實(shí)現(xiàn)階段的主導(dǎo),一顆芯片做得好不好,在實(shí)現(xiàn)階段之前基本取決于工程師的能力強(qiáng)不強(qiáng),而在實(shí)現(xiàn)階段之后基本取決于EDA 工具玩得好不好。整個(gè)設(shè)計(jì)實(shí)現(xiàn)流程,涉及到許多工具,此處列出四家主要參與者,空白部分不代表沒有,只代表驢不知。
數(shù)字電路實(shí)現(xiàn)流程,從大方向上可以分成兩部分:優(yōu)化跟驗(yàn)證。優(yōu)化,會(huì)更改邏輯描述方式,會(huì)更改邏輯結(jié)構(gòu),會(huì)插入新邏輯,這所有的動(dòng)作都存在引入錯(cuò)誤的風(fēng)險(xiǎn),故需要驗(yàn)證工具予以監(jiān)控;驗(yàn)證,要確保邏輯優(yōu)化過程不改變邏輯功能,要確保時(shí)序滿足既定目標(biāo)需求,要確保無物理規(guī)則違規(guī),要確保信號(hào)完整性,這所有的驗(yàn)證都有一套對應(yīng)的通過規(guī)則,但凡有某一項(xiàng)不達(dá)標(biāo),就不能拿去生產(chǎn)制造。
高級(jí)綜合:所謂的高級(jí)綜合就是將C/ C++/ System C描述的設(shè)計(jì)意圖,“翻譯”成用Verilog/ System Verilog 描述的RTL, 多應(yīng)用于運(yùn)算邏輯主導(dǎo)的設(shè)計(jì),除了三巨頭,市面上有許多小公司在這一個(gè)點(diǎn)上也做得不錯(cuò)。 綜合:在實(shí)現(xiàn)流程中,就背后算法而言,綜合一定是最難最復(fù)雜的。綜合首先將Verilog/ System Verilog/ VHDL 描述的邏輯轉(zhuǎn)化成由Gtech 描述的邏輯,再對Gtech 邏輯做優(yōu)化,優(yōu)化后再將Gtech 描述映射到對應(yīng)工藝庫。其中優(yōu)化過程涉及到多個(gè)方面,近年來EDA 工具的發(fā)展方向基本可以概括為:容量,速度,相關(guān)性。容量:指可處理的設(shè)計(jì)規(guī)模;速度:指EDA 工具的優(yōu)化速度;相關(guān)性:指跟布局布線之間的相關(guān)性。主流工具:Genus, Design Compiler. 在這一點(diǎn)上,幾乎再難有后起之秀,除非有朝一日,整個(gè)數(shù)字電路的設(shè)計(jì)方法學(xué)發(fā)生顛覆性的革新。
DFT:插入壓縮解壓縮邏輯,插入scan chain, 插入Mbist, 插入Lbist, 插入Boundary Scan, 插入OCC, 插入Test Point, 生成ATPG pattern, 故障診斷,DFT 工程師像老中醫(yī)插入、觀察、診斷。當(dāng)今市面上DFT 工程師緊缺,貴!主流工具:Tessenst, Modus, TetraMax. ECO:但凡有新的東西引入,就可能引入bug, 早期發(fā)現(xiàn)bug 可以重新走一遍實(shí)現(xiàn)流程,如果在后期發(fā)現(xiàn)bug 重走一遍流程的代價(jià)太大,通常的做法就是ECO. 對于簡單的bug 修復(fù)手工ECO 就可以,但是對于復(fù)雜的bug 修復(fù),手工ECO 有心無力,故需要有EDA 工具來完成相應(yīng)的工作。當(dāng)前世面上最好用的自動(dòng)ECO 工具非Conformal ECO 莫屬。最近也有一些startup 做對應(yīng)的點(diǎn)工具,整個(gè)思路跟CECO 類似,但是沒有自己的綜合工具優(yōu)化ECO 后的補(bǔ)丁,就很難得到一個(gè)好的結(jié)果。 布局布線:在進(jìn)入納米時(shí)代之前,布局布線并沒那么復(fù)雜,從90nm 開始到如今的3nm,布局布線的復(fù)雜度呈指數(shù)增長,從floorplan 到placement 到CTS 到Routing 每一步涉及到的算法在近年都做了顛覆性的革新,以Innovus 的問世為起點(diǎn),布局布線進(jìn)入到了一個(gè)新紀(jì)元。在AI 的浪潮下C 跟S 都一頭扎了進(jìn)去,要做世上最智能的布局布線工具,也許有朝一日可以像跟小度對話一樣:
硅農(nóng):Innovus 請解析A 文件,按設(shè)定目標(biāo)做個(gè)功耗最優(yōu)的結(jié)果;
Innovus: 已讀取目標(biāo)文件,根據(jù)設(shè)計(jì)數(shù)據(jù)分析,本設(shè)計(jì)大概需要250G 內(nèi)存,在5小時(shí)內(nèi)完成,請選擇任務(wù)完成后是否自動(dòng)進(jìn)入后續(xù)程序......
RTL 功耗分析:這一步可以放在實(shí)現(xiàn)端做也可以放在實(shí)現(xiàn)之前做。分析過程相對簡單:讀入RTL, SDC, 仿真激勵(lì),通過計(jì)算分析平均功耗跟瞬時(shí)功耗,找出設(shè)計(jì)中的“功耗缺陷”,指導(dǎo)Designer 進(jìn)行功耗優(yōu)化。主流工具有:Joules, Spyglass, PowerArtist. 形式驗(yàn)證:在整個(gè)實(shí)現(xiàn)流程中,形式驗(yàn)證充當(dāng)邏輯功能等效性的監(jiān)察官,任何一步優(yōu)化結(jié)束后都需要過形式驗(yàn)證這一關(guān),以確保在優(yōu)化過程中,邏輯功能未被改變。主流工具:LEC, Formality. 隨著設(shè)計(jì)規(guī)模的暴增跟優(yōu)化技術(shù)的飛速發(fā)展,形式驗(yàn)證的難度逐漸增加,占用的時(shí)間逐漸增多,SmartLEC 是針對復(fù)雜設(shè)計(jì)的先行者。 低功耗驗(yàn)證:針對低功耗設(shè)計(jì),低功耗驗(yàn)證要驗(yàn)證CPF/ UPF/ 1801 的語法語義跟描述意圖,要驗(yàn)證低功耗單元未多插,未漏插,未亂插,要驗(yàn)證電源跟地的鏈接符合設(shè)計(jì)意圖,要驗(yàn)證電特性的完整性。主流工具:CLP。
STA:Timing signoff, STA 看似龐雜,其實(shí)并不復(fù)雜,相比于優(yōu)化過程要簡單得多,拋開Timing ECO, STA 所有的動(dòng)作都只是計(jì)算而不是求解,不恰當(dāng)?shù)谋确剑篠TA 就好比幼兒園的算術(shù)題,加數(shù)跟被加數(shù)都在那里,只要求個(gè)和即可;而優(yōu)化過程是求最優(yōu)解或近似最優(yōu)解的過程,要難得多。近年來STA EDA 工具主要在幾個(gè)方向著力:如何模擬制造過程的隨機(jī)工藝偏差,如何處理超大規(guī)模設(shè)計(jì),如何模擬新工藝結(jié)點(diǎn)電特性對時(shí)序的影響。 Power Signoff:驗(yàn)證設(shè)計(jì)的電源網(wǎng)絡(luò)是否足夠強(qiáng)悍,分析,發(fā)現(xiàn),修正:IR-drop 跟EM. 主流工具:Voltus, RedHawk. 物理驗(yàn)證:驗(yàn)證所有的管子、過孔、走線是否滿足Foundry 制定的規(guī)則,是個(gè)體力活,有點(diǎn)像蓋好房子之后的垃圾清理,主流工具:Calibre, PVS, ICV. 整個(gè)數(shù)字實(shí)現(xiàn)流程中涉及到諸多工具,三巨頭在領(lǐng)跑,后面基本沒有跟隨者,偶爾有某個(gè)點(diǎn)工具做得好的后起之秀,大多都會(huì)被三巨頭吃了,這也算是行業(yè)套路。就市值看,三巨頭加起來來也不及互聯(lián)網(wǎng)公司一條腿粗,然而在整個(gè)芯片設(shè)計(jì)實(shí)現(xiàn)過程中卻不可或缺,吾國要強(qiáng)大芯片產(chǎn)業(yè),必須要在EDA 這一塊加大投入,方能離脫離被掐著脖子走更進(jìn)一步。
審核編輯 :李倩
-
集成電路
+關(guān)注
關(guān)注
5377文章
11311瀏覽量
360386 -
算法
+關(guān)注
關(guān)注
23文章
4587瀏覽量
92501 -
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
993瀏覽量
54772
原文標(biāo)題:IC新人必看:芯片設(shè)計(jì)流程最全講解!
文章出處:【微信號(hào):芯司機(jī),微信公眾號(hào):芯司機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論