現在手機SoC芯片的晶體管數量動輒百億個,“愚公移山”拼體力壹秒畫壹個,根本不可能。現在的高端芯片設計,已經和體力活說拜拜,設計流程分工極細,設計過程自動化程度極高,這樣才能避免芯片上市,“黃花菜”都涼了的尷尬。
下面以數字芯片為例,為大家簡單捋壹捋芯片設計的過程。
兩大流程,SoC芯片設計流程可以分為前端和後端,前端負責邏輯設計、輸出門級網表(netlist),後端進行物理設計,輸出版圖(layout),然後將版圖傳給芯片廠制造(tapeout)。
順帶說壹句為什麽傳版圖給芯片廠叫tapeout。在早期,芯片設計公司都是用磁帶(tape)存儲芯片版圖文件,需要制造時將磁帶送到芯片廠,所以叫“tapeout”。這個詞壹直沿用到現在,即使現在傳送版圖文件的方式多樣化了。
說白了,這是芯片文化的反映,和計算機的“bug”叫法壹樣,最早就是電子管大型機時代,工程師清掃追尋電子管亮光而被烤死的飛蟲,排除飛蟲導致的電路故障。後來,“bug"不再指真實世界中的蟲子,而是指軟件漏洞。
說回芯片設計流程。
芯片設計兩大流程前面說的芯片前端設計,又可細分為行為級、RTL級、門級,行為級描述電路功能,RTL級描述電路結構,門級描述門這壹級電路的結構。
芯片後端設計是將前端設計產生的門級網表通過EDA工具進行布局布線,以及物理驗證,最終產生供芯片廠制造使用的版圖文件。
芯片設計版圖詳細描述了電路結構,即哪些地方該保留,哪些地方該腐蝕,哪些地方是連線。芯片制造廠將版圖制作成光學掩膜,即可用光刻機制造芯片。
上述過程理解比較費力,可以用熟悉的雜誌出版打個簡單的比方:
前端設計相當於編輯根據選題計劃,挑選投稿,編輯處理,並確定哪些稿件排在重要位置(封面文章),哪些稿件僅是填補版面的醬油角色。後端設計的任務,則是將選好的稿件,排成版面,做成版面圖文件,交給印刷廠付印。
簡單說,芯片前端設計相當於編輯選稿、處理稿件,後端設計相當於版面編輯排版。
芯片設計之所以要分前端和後端,主要是因為芯片特別是高端SoC芯片結構太復雜了。實際上,專業分工是否精細是衡量壹個行業復雜度的兩大重要指標之壹,另壹個指標就是自動化程度是否高。
芯片設計就是壹個高度自動化的行業,從前端到後端,都離不開EDA軟件(Electronic Design Automation,即電子設計自動化)。芯片設計公司在DEA軟件平臺上完成芯片的前後端設計,不需要手工畫電路圖。
EDA主要由美國的Cadence和Synopsys公司提供,兩家公司都能提供前端和後端設計軟件。目前國內的芯片設計公司包括華為海思、中興、展訊等企業,都離不開Cadence和Synopsys公司的EDA軟件平臺。為什麽非得用Cadence和Synopsys的?因為這兩家公司在行業發展幾十年,EDA軟件功能完備、生態完整,好用。
那麽,如何用EDA軟件設計芯片呢?
芯片設計七大步,有兩步看不到電路第壹步,用Verilog編寫電路,這個過程是看不到電路圖的,就是壹堆描述性語言,以代碼形式呈現。
第二步,跑數字仿真,用到的工具有VCS或MMSIM等工具。仿真的目的是看寫出來的設計能不能正常工作,這個過程也看不到電路,還是壹堆源代碼。
第三步,跑完仿真後,將源代碼轉換成標準單元電路(Standard Cell)。
第四步,用IC-Compiler等工具進行布線,就是把標準單元電路找到對應的位置,用軟件進行自動連線,這個過程需要和芯片的制造工藝進行輔助配合。
第五步,再將標準單元電路填入圖形,按設計需求連線,形成版圖圖形。
第六步,完成版圖後,還不能馬上交付芯片廠生產,誰知道那些單元的連線沒連好,造成噪音幹擾,導致功耗升高、性能降低。為了消滅潛在bug,需要分別進行設計規則驗證、和布局與原理圖驗證。
第七步,兩大驗證通過後,就可以把版圖制成GDSII電子文件,交給芯片廠流片(小批量試制)。
第八步,流片後對芯片檢測,如果芯片功能正常,符合設計要求,OK,讓芯片廠大規模生產。
可以看出,芯片整個設計過程***有7個大步驟,全程都通過EDA軟件在電腦上完成,不存在工程師手工壹個壹個畫電路圖的情形,甚至在前端設計的部分階段,設計者根本不用考慮晶體管長什麽樣、有多大,在後端,設計者也不會去數該芯片含有多少晶體管,而由軟件自動統計。
正是有了EDA軟件的幫助,即使芯片內部有多達百億級的晶體管,設計起來也輕輕松松,這就是高 科技 的力量和魅力。
工程師不需要壹個壹個晶體管的去設計芯片。很多現成的電路,比如數模轉換電路、微積分電路、傅裏葉變換電路等等都是前人設計好了的,後人只需要前壹代芯片基礎上進行架構的優化和精度提升就行了。
1+1+1。。。55億個1相加,就算壹秒鐘算壹次要好久啊。到了二三年級就不壹樣了
首先芯片設計,不是壹只只的晶體管設計,而是將成熟或以實驗過的單元電路,選擇所需要的功能電路,將它們用數據線串聯或並聯在壹起,壹塊完整芯片就設計完成了。在通過配套的系統控制系統,壹個完整的芯片組合系統才算完成,至於芯片所需要的生產技術工藝級別,那就是芯片制造的事了,與芯片設計無關系了。
起初工程師是準備晶體管,把它們集中收好,然後趁處理器不註意的時候壹起塞進去。
舉個例子吧;
妳要蓋壹棟大樓,需要需要先設計圖紙,妳這個大樓有10000個房間,但其中有5000個是壹樣的,還有3000個壹樣的,還有2個1000個壹樣的,那麽妳直接用5個設計方案就夠了,把這4個不同的房間設計好,再用壹種排列連接方式合在壹起就行了,
這樣妳就不需要去設計10000個,只需要設計4個房間和壹個組合方式就好了。
這樣用多少材料就壹目了然了。
芯片設計也壹樣,盡管有的芯片裏面的元器件有幾十億上百億個,妳只需要設計出怎麽排列就行了,裏面的型號也就幾千個,幾萬個,只是排列方式不同,把那些壹樣功能的作為壹個整體組合進去就行了。
這些組合方式也不是人工去做的,只需要人的思路就行了,就好比妳想把100噸混凝土放在哪壹個大樓的位置,不用妳幾百人上千人親自去手挖肩扛,直接壹輛卡車拉過來就行了。卡車就是那個設計芯片的工具,妳來開車,妳就是芯片設計人。當然還有塔吊,也是工具。
所以設計芯片就是這麽壹車壹車的累積起來的,而不是壹鐵鍁壹鐵鍁的鏟起來的,太慢了。
所以芯片設計需要好幾個軟件,也就是卡車、塔吊。卷揚機,打樁機等等。
工具很重要,沒有工具,妳就無法把大樓搞得特別大,比如100萬個房間,1千萬個房間等等,壹個房間就是壹個晶體管,多了妳就要設計通道,組合等等,用人畫是絕對不可能的,只能用軟件,畫1萬個的時間,軟件只需要幾秒就完成了,人工要多少天呢,上百億個,要多少年呢,用軟件只需要幾個月就夠了。
盡管這個例子舉的不太恰當,能理解個大概就好了,反正我們只是使用者,不關心怎麽來的,只關心怎麽好用就是了。
ctrl+c,
ctrl+v。
模塊化設計方法。
設計房子,蓋房子,生產磚頭水泥鋼筋。建築設計師並不是壹粒沙子壹勺水泥壹根鋼筋自己造房子。
比如有個2000萬晶體管弄好的部件,這次要用到,就直接拿過來用了。那個部件也是由很多更小的部件組成。
最初的小規模集成電路也就幾十個晶體管。
設計大規模超大規模芯片有輔助設計軟件,逐次叠代滾動發展,晶體管數越來越多。
看著評論區那麽多自以為牛逼的人評論說芯片很好造,和蓋樓壹樣,我就放心了,國家果然還是房地產要發展, 科技 先放壹放吧,沒什麽希望了。還以為會有些看的清的,還是跟隨洪流吧。
激光打印機了解下,妳個幼兒園的小朋友壹筆壹劃要寫多少年啊,光刻機比打印機快萬倍