天天看點

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

作者:Altman03

處理器流水線可以分為前端和後端,晶片設計也可以分為前端和後端。前端負責邏輯設計,輸出門級網表(netlist),後端進行實體設計,輸出版圖(layout),下一步就是晶片制造了,這個過程俗稱為流片(tapeout)。為什麼叫tapeout,這裡面也有故事,版圖檔案很大,以前都是用錄音帶(tape)存儲,送到工廠去生産,是以叫tapeout,後來這個詞一直被沿用到現在。晶片設計流程圖如下:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

如果有面試官問某某東西的設計流程,第一個步驟回答“系統設計”準不會出錯,這簡直是一個萬能答案,因為任何設計都可以采用從上到下逐漸細化的過程。系統設計完成設計的模組化與仿真、子產品劃分等,確定設計思路正确,後面就是設計的具體實作過程。

8.2.3硬體描述語言——軟硬不分

1.電子設計自動化

計算機輔助設計(Computer-aided Design,CAD)已經融入到各行各業中,制造一雙鞋、一輛賽車、一幅廣告等,都可以通過計算機來設計,而計算機本身的設計,無論是處理器、存儲器電路,還是計算機結構、外觀等,也都是在計算機上進行的,于是就出現了用計算機來輔助設計計算機的有趣現象。

EDA是電子設計自動化(Electronic Design Automation)的縮寫,是電路領域的計算機輔助設計。設計者能在EDA軟體平台上完成內建電路的全套設計,直至将設計交給工廠流片。Cadence 和Synopsys公司提供晶片設計各個階段的EDA 工具,早期Synopsys的前端工具更有優勢,Cadence的後端工具更有優勢,現在它們的差距不大。

2.HDL基礎

設計一個電路,可以用畫電路圖的方式實作,如下圖:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

幾百、幾千個元件的電路圖可以手工畫,可是一個晶片能包含幾億甚至幾十億個半導體,靠畫是不可能畫出來的,好在人們開發了硬體描述語言(Hardware Description Language,HDL),使用程式設計的方式來開發內建電路。

業界主要有兩種硬體描述語言:VHDL和Verilog,其中Verilog使用較多。硬體描述語言主要用于數字電路的模組化,模組化的層次可以從高到低,分成4個層級:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

行為級描述電路的功能,RTL級描述電路的結構,門級描述門這一級電路的結構,電路級描述半導體電路的結構。

行為級描述不關心電路的具體結構,隻關注算法,主要用于模組化和仿真,不能直接綜合為具體電路。內建電路的設計,主要采用RTL級的模組化。

前面已經知道,邏輯電路的基本結構如下圖:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

這種電路可以了解為信号在寄存器間傳輸,是以也稱為寄存器傳輸級(Register TransferLevel,RTL)電路。這種電路可以使用Verilog 語言來實作,綜合出具體的電路。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

8.2.4邏輯綜合

在軟體開發中,C源代碼需要使用編譯器編譯成處理器能識别的二進制碼,在內建電

路開發中,Verilog源代碼也需要被編譯成具體的電路,隻不過這裡的編譯被稱為綜合

(synthesis),如下圖所示:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

軟體開發系統提供了庫,硬體開發系統同樣也提供了庫,不需要設計人員什麼都從零開始設計。

在軟體開發中,編譯器并不僅僅隻做簡單的翻譯,它會對軟體進行優化,在硬體開發中,綜合器也是如此,它會對電路進行優化。編譯器有編譯選項讓程式員在存儲空間和速度上進行權衡,綜合器也有設計限制讓設計人員在電路面積和速度上進行權衡。

在軟體編譯中,函數内聯将函數體複制到函數的調用處,增大了代碼空間,減少了執行時間。在硬體綜合時,綜合器也會進行類似的操作。對于同一段電路,綜合出的電路面積小,通常速度慢,綜合出的電路面積大,通常速度快,如下圖所示:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

HDL代碼綜合出來的檔案被稱為門級網表(netlist),它描述了電路的門級結構,門級電路以與門、非門等為基礎。

8.2.5 硬體描述語言與軟體描述語言的差别

1.指令與電路

軟體描述語言描述的是處理器指令,硬體描述語言描述的是硬體電路。同樣是z=x y這條語句,在軟體描述語言中編譯出來是指令,在硬體描述語言中綜合出來是電路。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

在軟體中,如果修改x的值,隻要不調用這條語句,z的值是不會被修改的。而在硬體電路中,當x被修改時,z也立即跟着改變,這就是軟體描述語言和硬體描述語言最典型的差別。

2.資料通道和控制通道處理器核心可分為資料通道和控制通道,資料通道是指令的計算部分(ALU子產品),控制通道控制指令的計算(取指、譯碼等子產品)。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

在軟體描述語言中,程式員隻需要關心資料通道,即輸入是什麼、進行什麼運算、輸出是什麼。在硬體描述語言中。設計後 &貓道。訴更關心控制通道,也即控制指令的執行。

3.串行與并行

同樣是兩條語句:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

假設處理器中隻有一個加法器,如果是軟體描述語言,這兩條語句依次使用處理器的一個加法器執行,而如果是硬體描述語言,則直接生成兩個加法器,并行處理。

4.時序

在軟體描述語言中,程式員隻需要關心指令的先後順序,先完成什麼、後完成什麼,不需要關心處理器硬體電路的執行細節,而在硬體描述語言中,設計人員需要知道電路在每個時鐘的執行狀态。

8.2.6實體設計

實體設計也即後端設計,它将前端設計産生的門級網表通過EDA工具進行布局布線和實體驗證,并最終産生供制造用的GDSIⅡ資料檔案。網表(netist)描述了內建電路的邏輯結構,GDSIⅡ檔案描述了內建電路的實體結構。

實體設計可以分成3個大的步驟:Floorplanning(布圖規劃)、Placement(布局)、Routing(布線),其中Floorplanning和Placement通常沒有太嚴格的分開。設計房子,首先劃定一個長方形面積,然後規劃房子的布局,哪裡是卧室、哪裡是廚房、哪裡是車庫等,而且各個房間的擺放位置是可以變化的,在總面積不變的條件下,會有多種布局方式。Floorplan字面意思是建築計的平面圖,也就是從上面鳥瞰到的建築結構圖。內建電路實體設計是在一塊晶片上完成電路的布局,它和房子布局一樣,Floorplanning計算出最佳的布局方式,它和Placement一起完成電路子產品的布局,Routing就是布線,好比布置建築物中的電線、網線等。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

實體設計的輸出是版圖檔案,以GDS ⅡⅡ(Graphical Design System)格式存儲。和國家的地理版圖一樣,半導體晶片版圖描述了電路的拓撲結構和元件的特征,它是交給晶片制造廠作為指導生産電路的圖案。內建電路的基本元件和連線都是在矽片上一層一層的蝕刻出來,版圖描述了電路結構,也就描述了哪些地方該腐蝕,哪些地方該保留。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

8.3晶片制造——點沙成金

8.3.1探索微觀世界

看到制造,人們就會想起蘋果和富士康,富士康代工蘋果的iphone,利潤都被蘋果拿走了,富士康隻獲得非常少的一部分辛苦費。通常人們了解制造技術含量低,價值低。不過,精密制造卻是相當有技術含量的,并且價值很高,美國、日本在這些方面都非常有實力,與其說中國是個制造大國,還不如說中國是個加工大國。

晶片制造的工藝相當精密,已經和分子相差不遠,相當有技術含量,而且投資巨大,燒得起錢玩這個的公司并不多。不少傳統半導體公司也都逐漸地轉向輕晶圓政策,尋求和代工廠合作,自己隻設計晶片,晶片制造外包給代工廠,世界上最大的晶片制造代工廠是台積電(台灣積體電路制造股份有限公司,台灣将內建電路稱為積體電路)。晶片制造的工藝到底有多麼精細呢?下圖做出了一個比較:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

晶片制造采用的主要原材料是矽,矽是繼氧之後地殼上第二豐富的化學物質。矽和氧組成了地球上最不值錢的沙子(SiO2)。晶片所使用的矽就是從這些沙子中提煉出來的,是以說,半導體行業真可謂是點沙成金的行業。半導體制造公司,使用半導體材料和半導體生産裝置,将晶片設計公司設計出來的電路轉換為晶片,如下圖所示:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

在晶片設計領域,美國占據優勢,Intel、IBM、TI、高通、蘋果、思科等公司,莫不精通于晶片設計。在晶片制造領域,Intel、三星、台積電分别在處理器、存儲器、代工領域處于領先,IBM的晶片制造技術也比較先進,經常将技術轉讓給其他的代工廠。

資源匮乏的日本非常注重半導體工業,早在20世紀70年代日本就開始大規模布局半導體領域,雖說現在日本的晶片設計與制造有所衰退,不過日本還是占據了全球37%的半導體生産裝置,以及66%的半導體材料供應。

8.3.2晶片制造流程

晶片制造成本非常之高,每一步都需要相當精密的工具,在相當嚴苛的環境下施行,下面是晶片制造的基本流程。晶片制造過程可以被分為前端和後端,前端負責晶圓(wafer)的處理,包括晶圓的加工(wafer fabrication)與測試(wafer test),後端負責晶片的加工,包括晶圓切割成晶片(die)、晶片封裝與測試,Intel大連工廠負責前端,Intel成都工廠負責後端,它們生産65nm 工藝的晶片組。前端工廠也叫晶圓廠(fab),後端工廠也叫封裝測試廠(assembly and test)。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

1.晶圓

廚師炒菜,總是一次炒多人份的,晶片制造也一樣,也是一次制造多塊晶片,晶圓是晶片電路的載體,一塊晶圓可以做出多片晶片。之是以稱它為晶圓,是因為它是一個矽晶體,并且是一個圓盤。

常見的晶圓直徑大小為300mm、200mm、150mm,現在也開始出現更大的晶圓,晶圓越大,一塊晶圓上能做出的晶片就越多。Intel大連晶圓廠所使用的晶圓為300mm,也就比一本書稍大一點,通常能夠生産出幾百片晶片。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

晶圓來源于沙子,沙子的主要成分是二氧化矽(SiO2),晶圓所使用的單晶矽要求純度非常之高,通常要達到99.9999%。通過複雜的化學、實體方法,得到可用于半導體制造品質的矽錠(silicon ingot),矽錠經切割得到晶圓。

晶圓非常薄,至少比黃瓜面膜薄多了,300mm晶圓的厚度大概為0.775mm左右,不同尺寸的晶圓,厚度也不一樣。晶圓廠自身不生産晶圓,大部分晶圓材料來自于日本,2011年3月日本一個小地方的地震,就波及全球25%的晶圓供應。

2.潔淨室——縱使無一物,還是有塵埃

禅宗大師慧能兄弟曾寫過一首名詩:“菩提本無樹,明鏡亦非台,本來無一物,何處惹塵埃”。這句話如果用來形容人的心境,意境是相當的高,不過大自然卻沒有這個覺悟。空氣中漂浮着大量的懸浮物,如灰塵、雜質等,雖然人們看不見,但是它們确實存在着。是以我們可以用這樣一句話來描述自己生活的空間:“縱使無一物,還是有塵埃”。在晶片制造過程中,空氣純度要求非常高,如果有粒子附在晶片上,就有可能導緻晶片出現瑕疵,進而不能使用,晶片的制造過程需要在潔淨室(clean room)中進行。

潔淨室最早來源于醫院的手術室,為了防止病人傷口感染,是以對房間的空氣做了淨化。百分之百的潔淨是很難達到的,美國聯邦标準209B将潔淨室分成6個等級,CLASS1、CLASS 10、CLASS 100、CLASS 1000、CLASS 10K和CLASS 100K,CLASS 10是指每立方英尺内大于等于0.5μ之微塵不超過10個,大于等于5μ之微塵數為0,半導體工廠的潔淨室,比醫院的手術室還要幹淨1000倍(引自Intel宣傳片)。

3.晶圓加工(wafer fabrication)

Fabrication為裝配、制造之意,Fab是它的縮寫,通常也用Fab來代指晶圓廠,Fabless表示沒有晶圓廠的半導體設計公司,如Xilinx、高通等。

人類文明是從“刻”開始的,在遠古時代,文字被刻在龜殼、石頭上,後人由此而得知遠古發生的事情,現在,人們将內建電路刻在矽片上,隻是這個刻用手工是不可能完成的,用機械刻也達不到精度要求,隻能用光刻。

內建電路版圖首先被印在掩膜上,經過複雜的光刻、摻雜、腐蝕等步驟,在晶圓上形成半導體,再注入銅粒子,形成導線,這樣內建電路就完成了。晶圓上的內建電路也是一層一層的,就像建築物一樣,如下圖所示:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

由手晶圓加工會用到很多具有腐蝕性的化學材料,是以污染控制也非常重要。

4.品圓測試(wafer testing)

一個晶圓會包含很多個方形的晶片,也叫晶粒(die),每個晶片包含獨立的內建電路,它将被封裝後成為獨立的晶片。晶圓加工後,可能會在某些地方出現取疵,導緻晶片損壞,是以晶圓在出廠前要先經過測試,檢測出好die和壞die。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

在上圖的晶圓上,有38個晶片,其中由于一些間題,出現了一塊缺陷,有4塊晶片是無效的,晶片的成品率為34/38=89%。

5,晶片切割——我切,我切,我切切

加工後的晶圓會被送到後端的封裝測試廠進行後期處理,後端将晶圓進行切片,得到晶片。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

6.封裝——好馬配好鞍

矽片非常小,且軟,也很容易壞,需要把它固定、封好,封裝可以防止晶片受到實體損壞,也能将晶片産生的熱量擴散到封裝更大的面積上以便冷卻。封裝的另一個作用就是引出管腳,晶片外圍的金屬I/O引腳非常小,将它引出到封裝上較大的引腳,以便于晶片間的連接配接,這樣就得到可以使用的晶片了。

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

早期很多多核處理器,就是将多個處理器晶片封裝在一個晶片内,後面的多核處理器,基本上都是一個處理器晶片包含多個處理器核心。如下圖:

晶片設計流程(摘自《大話處理器:處理器基礎知識讀本》)

7. Logo

晶片制作的最後一步是打logo。打logo絕對是所有步驟中最重要的一步,如果把Intel的晶片打上了AMD的logo,那intel要氣死。這樣說可不是空穴來風,因為一個中國人就曾經做過這樣的事,這就是大名鼎鼎的“漢芯”事件。出皮是Photoshop的專業技術,用來光滑人臉。技術都是相通的,磨皮也能用在晶片外觀上,這個中國人買丁兒塊Freescale的DSP晶片,請人将晶片上的logo磨皮,然後打上自已的logo,這樣代表“世界先進水準”的國産DSP晶片就誕生了。

本文摘自《大話處理器:處理器基礎知識讀本》,有興趣的小夥伴可以區閱讀原書。

繼續閱讀