處理器流水線可以分為前端和后端,芯片設(shè)計也可以分為前端和后端。前端負責(zé)邏輯設(shè)計,輸出門級網(wǎng)表(netlist),后端進行物理設(shè)計,輸出版圖(layout),下一步就是芯片制造了,這個過程俗稱為流片(tapeout)。為什么叫tapeout,這里面也有故事,版圖文件很大,以前都是用磁帶(tape)存儲,送到工廠去生產(chǎn),所以叫tapeout,后來這個詞一直被沿用到現(xiàn)在。芯片設(shè)計流程圖如下:
如果有面試官問某某東西的設(shè)計流程,第一個步驟回答“系統(tǒng)設(shè)計”準(zhǔn)不會出錯,這簡直是一個萬能答案,因為任何設(shè)計都可以采用從上到下逐步細化的過程。系統(tǒng)設(shè)計完成設(shè)計的建模與仿真、模塊劃分等,確保設(shè)計思路正確,后面就是設(shè)計的具體實現(xiàn)過程。
8.2.3硬件描述語言——軟硬不分
1.電子設(shè)計自動化
計算機輔助設(shè)計(Computer-aided Design,CAD)已經(jīng)融入到各行各業(yè)中,制造一雙鞋、一輛賽車、一幅廣告等,都可以通過計算機來設(shè)計,而計算機本身的設(shè)計,無論是處理器、存儲器電路,還是計算機結(jié)構(gòu)、外觀等,也都是在計算機上進行的,于是就出現(xiàn)了用計算機來輔助設(shè)計計算機的有趣現(xiàn)象。
EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,是電路領(lǐng)域的計算機輔助設(shè)計。設(shè)計者能在EDA軟件平臺上完成集成電路的全套設(shè)計,直至將設(shè)計交給工廠流片。Cadence 和Synopsys公司提供芯片設(shè)計各個階段的EDA 工具,早期Synopsys的前端工具更有優(yōu)勢,Cadence的后端工具更有優(yōu)勢,現(xiàn)在它們的差距不大。
2.HDL基礎(chǔ)
設(shè)計一個電路,可以用畫電路圖的方式實現(xiàn),如下圖:
幾百、幾千個元件的電路圖可以手工畫,可是一個芯片能包含幾億甚至幾十億個晶體管,靠畫是不可能畫出來的,好在人們開發(fā)了硬件描述語言(Hardware Description Language,HDL),使用編程的方式來開發(fā)集成電路。
業(yè)界主要有兩種硬件描述語言:VHDL和Verilog,其中Verilog使用較多。硬件描述語言主要用于數(shù)字電路的建模,建模的層次可以從高到低,分成4個層級:
行為級描述電路的功能,RTL級描述電路的結(jié)構(gòu),門級描述門這一級電路的結(jié)構(gòu),電路級描述晶體管電路的結(jié)構(gòu)。
行為級描述不關(guān)心電路的具體結(jié)構(gòu),只關(guān)注算法,主要用于建模和仿真,不能直接綜合為具體電路。集成電路的設(shè)計,主要采用RTL級的建模。
前面已經(jīng)知道,邏輯電路的基本結(jié)構(gòu)如下圖:
這種電路可以理解為信號在寄存器間傳輸,因此也稱為寄存器傳輸級(Register TransferLevel,RTL)電路。這種電路可以使用Verilog 語言來實現(xiàn),綜合出具體的電路。
8.2.4邏輯綜合
在軟件開發(fā)中,C源代碼需要使用編譯器編譯成處理器能識別的二進制碼,在集成電
路開發(fā)中,Verilog源代碼也需要被編譯成具體的電路,只不過這里的編譯被稱為綜合
(synthesis),如下圖所示:
軟件開發(fā)系統(tǒng)提供了庫,硬件開發(fā)系統(tǒng)同樣也提供了庫,不需要設(shè)計人員什么都從零開始設(shè)計。
在軟件開發(fā)中,編譯器并不僅僅只做簡單的翻譯,它會對軟件進行優(yōu)化,在硬件開發(fā)中,綜合器也是如此,它會對電路進行優(yōu)化。編譯器有編譯選項讓程序員在存儲空間和速度上進行權(quán)衡,綜合器也有設(shè)計約束讓設(shè)計人員在電路面積和速度上進行權(quán)衡。
在軟件編譯中,函數(shù)內(nèi)聯(lián)將函數(shù)體復(fù)制到函數(shù)的調(diào)用處,增大了代碼空間,減少了執(zhí)行時間。在硬件綜合時,綜合器也會進行類似的操作。對于同一段電路,綜合出的電路面積小,通常速度慢,綜合出的電路面積大,通常速度快,如下圖所示:
HDL代碼綜合出來的文件被稱為門級網(wǎng)表(netlist),它描述了電路的門級結(jié)構(gòu),門級電路以與門、非門等為基礎(chǔ)。
8.2.5 硬件描述語言與軟件描述語言的差別
1.指令與電路
軟件描述語言描述的是處理器指令,硬件描述語言描述的是硬件電路。同樣是z=x y這條語句,在軟件描述語言中編譯出來是指令,在硬件描述語言中綜合出來是電路。
在軟件中,如果修改x的值,只要不調(diào)用這條語句,z的值是不會被修改的。而在硬件電路中,當(dāng)x被修改時,z也立即跟著改變,這就是軟件描述語言和硬件描述語言最典型的區(qū)別。
2.數(shù)據(jù)通道和控制通道處理器內(nèi)核可分為數(shù)據(jù)通道和控制通道,數(shù)據(jù)通道是指令的計算部分(ALU模塊),控制通道控制指令的計算(取指、譯碼等模塊)。
在軟件描述語言中,程序員只需要關(guān)心數(shù)據(jù)通道,即輸入是什么、進行什么運算、輸出是什么。在硬件描述語言中。設(shè)計后 &貓道。訴更關(guān)心控制通道,也即控制指令的執(zhí)行。
3.串行與并行
同樣是兩條語句:
假設(shè)處理器中只有一個加法器,如果是軟件描述語言,這兩條語句依次使用處理器的一個加法器執(zhí)行,而如果是硬件描述語言,則直接生成兩個加法器,并行處理。
4.時序
在軟件描述語言中,程序員只需要關(guān)心指令的先后順序,先完成什么、后完成什么,不需要關(guān)心處理器硬件電路的執(zhí)行細節(jié),而在硬件描述語言中,設(shè)計人員需要知道電路在每個時鐘的執(zhí)行狀態(tài)。
8.2.6物理設(shè)計
物理設(shè)計也即后端設(shè)計,它將前端設(shè)計產(chǎn)生的門級網(wǎng)表通過EDA工具進行布局布線和物理驗證,并最終產(chǎn)生供制造用的GDSIⅡ數(shù)據(jù)文件。網(wǎng)表(netist)描述了集成電路的邏輯結(jié)構(gòu),GDSIⅡ文件描述了集成電路的物理結(jié)構(gòu)。
物理設(shè)計可以分成3個大的步驟:Floorplanning(布圖規(guī)劃)、Placement(布局)、Routing(布線),其中Floorplanning和Placement通常沒有太嚴格的分開。設(shè)計房子,首先劃定一個長方形面積,然后規(guī)劃房子的布局,哪里是臥室、哪里是廚房、哪里是車庫等,而且各個房間的擺放位置是可以變化的,在總面積不變的條件下,會有多種布局方式。Floorplan字面意思是建筑計的平面圖,也就是從上面鳥瞰到的建筑結(jié)構(gòu)圖。集成電路物理設(shè)計是在一塊芯片上完成電路的布局,它和房子布局一樣,F(xiàn)loorplanning計算出最佳的布局方式,它和Placement一起完成電路模塊的布局,Routing就是布線,好比布置建筑物中的電線、網(wǎng)線等。
物理設(shè)計的輸出是版圖文件,以GDS ⅡⅡ(Graphical Design System)格式存儲。和國家的地理版圖一樣,半導(dǎo)體芯片版圖描述了電路的拓撲結(jié)構(gòu)和元件的特征,它是交給芯片制造廠作為指導(dǎo)生產(chǎn)電路的圖案。集成電路的基本元件和連線都是在硅片上一層一層的蝕刻出來,版圖描述了電路結(jié)構(gòu),也就描述了哪些地方該腐蝕,哪些地方該保留。
8.3芯片制造——點沙成金
8.3.1探索微觀世界
看到制造,人們就會想起蘋果和富士康,富士康代工蘋果的iphone,利潤都被蘋果拿走了,富士康只獲得非常少的一部分辛苦費。通常人們理解制造技術(shù)含量低,價值低。不過,精密制造卻是相當(dāng)有技術(shù)含量的,并且價值很高,美國、日本在這些方面都非常有實力,與其說中國是個制造大國,還不如說中國是個加工大國。
芯片制造的工藝相當(dāng)精密,已經(jīng)和分子相差不遠,相當(dāng)有技術(shù)含量,而且投資巨大,燒得起錢玩這個的公司并不多。不少傳統(tǒng)半導(dǎo)體公司也都逐步地轉(zhuǎn)向輕晶圓策略,尋求和代工廠合作,自己只設(shè)計芯片,芯片制造外包給代工廠,世界上最大的芯片制造代工廠是臺積電(臺灣積體電路制造股份有限公司,臺灣將集成電路稱為積體電路)。芯片制造的工藝到底有多么精細呢?下圖做出了一個比較:
芯片制造采用的主要原材料是硅,硅是繼氧之后地殼上第二豐富的化學(xué)物質(zhì)。硅和氧組成了地球上最不值錢的沙子(SiO2)。芯片所使用的硅就是從這些沙子中提煉出來的,所以說,半導(dǎo)體行業(yè)真可謂是點沙成金的行業(yè)。半導(dǎo)體制造公司,使用半導(dǎo)體材料和半導(dǎo)體生產(chǎn)設(shè)備,將芯片設(shè)計公司設(shè)計出來的電路轉(zhuǎn)換為芯片,如下圖所示:
在芯片設(shè)計領(lǐng)域,美國占據(jù)優(yōu)勢,Intel、IBM、TI、高通、蘋果、思科等公司,莫不精通于芯片設(shè)計。在芯片制造領(lǐng)域,Intel、三星、臺積電分別在處理器、存儲器、代工領(lǐng)域處于領(lǐng)先,IBM的芯片制造技術(shù)也比較先進,經(jīng)常將技術(shù)轉(zhuǎn)讓給其他的代工廠。
資源匱乏的日本非常注重半導(dǎo)體工業(yè),早在20世紀(jì)70年代日本就開始大規(guī)模布局半導(dǎo)體領(lǐng)域,雖說現(xiàn)在日本的芯片設(shè)計與制造有所衰退,不過日本還是占據(jù)了全球37%的半導(dǎo)體生產(chǎn)設(shè)備,以及66%的半導(dǎo)體材料供應(yīng)。
8.3.2芯片制造流程
芯片制造成本非常之高,每一步都需要相當(dāng)精密的工具,在相當(dāng)嚴苛的環(huán)境下施行,下面是芯片制造的基本流程。芯片制造過程可以被分為前端和后端,前端負責(zé)晶圓(wafer)的處理,包括晶圓的加工(wafer fabrication)與測試(wafer test),后端負責(zé)芯片的加工,包括晶圓切割成晶片(die)、芯片封裝與測試,Intel大連工廠負責(zé)前端,Intel成都工廠負責(zé)后端,它們生產(chǎn)65nm 工藝的芯片組。前端工廠也叫晶圓廠(fab),后端工廠也叫封裝測試廠(assembly and test)。
1.晶圓
廚師炒菜,總是一次炒多人份的,芯片制造也一樣,也是一次制造多塊芯片,晶圓是芯片電路的載體,一塊晶圓可以做出多片芯片。之所以稱它為晶圓,是因為它是一個硅晶體,并且是一個圓盤。
常見的晶圓直徑大小為300mm、200mm、150mm,現(xiàn)在也開始出現(xiàn)更大的晶圓,晶圓越大,一塊晶圓上能做出的芯片就越多。Intel大連晶圓廠所使用的晶圓為300mm,也就比一本書稍大一點,通常能夠生產(chǎn)出幾百片芯片。
晶圓來源于沙子,沙子的主要成分是二氧化硅(SiO2),晶圓所使用的單晶硅要求純度非常之高,通常要達到99.9999%。通過復(fù)雜的化學(xué)、物理方法,得到可用于半導(dǎo)體制造質(zhì)量的硅錠(silicon ingot),硅錠經(jīng)切割得到晶圓。
晶圓非常薄,至少比黃瓜面膜薄多了,300mm晶圓的厚度大概為0.775mm左右,不同尺寸的晶圓,厚度也不一樣。晶圓廠自身不生產(chǎn)晶圓,大部分晶圓材料來自于日本,2011年3月日本一個小地方的地震,就波及全球25%的晶圓供應(yīng)。
2.潔凈室——縱使無一物,還是有塵埃
禪宗大師慧能兄弟曾寫過一首名詩:“菩提本無樹,明鏡亦非臺,本來無一物,何處惹塵?!薄_@句話如果用來形容人的心境,意境是相當(dāng)?shù)母撸贿^大自然卻沒有這個覺悟??諝庵衅≈罅康膽腋∥?,如灰塵、雜質(zhì)等,雖然人們看不見,但是它們確實存在著。所以我們可以用這樣一句話來描述自己生活的空間:“縱使無一物,還是有塵?!?。在芯片制造過程中,空氣純度要求非常高,如果有粒子附在芯片上,就有可能導(dǎo)致芯片出現(xiàn)瑕疵,從而不能使用,芯片的制造過程需要在潔凈室(clean room)中進行。
潔凈室最早來源于醫(yī)院的手術(shù)室,為了防止病人傷口感染,因此對房間的空氣做了凈化。百分之百的潔凈是很難達到的,美國聯(lián)邦標(biāo)準(zhǔn)209B將潔凈室分成6個等級,CLASS1、CLASS 10、CLASS 100、CLASS 1000、CLASS 10K和CLASS 100K,CLASS 10是指每立方英尺內(nèi)大于等于0.5μ之微塵不超過10個,大于等于5μ之微塵數(shù)為0,半導(dǎo)體工廠的潔凈室,比醫(yī)院的手術(shù)室還要干凈1000倍(引自Intel宣傳片)。
3.晶圓加工(wafer fabrication)
Fabrication為裝配、制造之意,F(xiàn)ab是它的縮寫,通常也用Fab來代指晶圓廠,F(xiàn)abless表示沒有晶圓廠的半導(dǎo)體設(shè)計公司,如Xilinx、高通等。
人類文明是從“刻”開始的,在遠古時代,文字被刻在龜殼、石頭上,后人由此而得知遠古發(fā)生的事情,現(xiàn)在,人們將集成電路刻在硅片上,只是這個刻用手工是不可能完成的,用機械刻也達不到精度要求,只能用光刻。
集成電路版圖首先被印在掩膜上,經(jīng)過復(fù)雜的光刻、摻雜、腐蝕等步驟,在晶圓上形成晶體管,再注入銅粒子,形成導(dǎo)線,這樣集成電路就完成了。晶圓上的集成電路也是一層一層的,就像建筑物一樣,如下圖所示:
由手晶圓加工會用到很多具有腐蝕性的化學(xué)材料,因此污染控制也非常重要。
4.品圓測試(wafer testing)
一個晶圓會包含很多個方形的晶片,也叫晶粒(die),每個晶片包含獨立的集成電路,它將被封裝后成為獨立的芯片。晶圓加工后,可能會在某些地方出現(xiàn)取疵,導(dǎo)致晶片損壞,因此晶圓在出廠前要先經(jīng)過測試,檢測出好die和壞die。
在上圖的晶圓上,有38個晶片,其中由于一些間題,出現(xiàn)了一塊缺陷,有4塊晶片是無效的,晶片的成品率為34/38=89%。
5,晶片切割——我切,我切,我切切
加工后的晶圓會被送到后端的封裝測試廠進行后期處理,后端將晶圓進行切片,得到晶片。
6.封裝——好馬配好鞍
硅片非常小,且軟,也很容易壞,需要把它固定、封好,封裝可以防止芯片受到物理損壞,也能將芯片產(chǎn)生的熱量擴散到封裝更大的面積上以便冷卻。封裝的另一個作用就是引出管腳,芯片外圍的金屬I/O引腳非常小,將它引出到封裝上較大的引腳,以便于芯片間的連接,這樣就得到可以使用的芯片了。
早期很多多核處理器,就是將多個處理器晶片封裝在一個芯片內(nèi),后面的多核處理器,基本上都是一個處理器晶片包含多個處理器內(nèi)核。如下圖:
7. Logo
芯片制作的最后一步是打logo。打logo絕對是所有步驟中最重要的一步,如果把Intel的芯片打上了AMD的logo,那intel要氣死。這樣說可不是空穴來風(fēng),因為一個中國人就曾經(jīng)做過這樣的事,這就是大名鼎鼎的“漢芯”事件。出皮是Photoshop的專業(yè)技術(shù),用來光滑人臉。技術(shù)都是相通的,磨皮也能用在芯片外觀上,這個中國人買丁兒塊Freescale的DSP芯片,請人將芯片上的logo磨皮,然后打上自已的logo,這樣代表“世界先進水平”的國產(chǎn)DSP芯片就誕生了。