您好,登錄后才能下訂單哦!
文章結構
導讀
一顆芯片是怎么誕生的?
一款CPU是如何設計出來的?
設計一款CPU到底難在哪里?
導讀
這幾天,刷遍朋友圈的新聞就是:中興被“一劍封喉”,被美國停止一切芯片進口和系統軟件服務。這對于芯片依賴美國的中興來說,基本上一下子就處于休克狀態,上下游的生產線面臨停產,8萬員工前途未卜。中興事件給IT/IC屆帶來的沖擊,甚至給普通百姓帶來的沖擊相當大,以至于各個自媒體、公眾號、新聞APP這幾天的新聞全是跟芯片、半導體、集成電路相關的話題:芯片是啥?中美芯片差距到底有多大?各種段子也隨之誕生:同樣一堆沙子,有人拿它做出了芯片,有人拿它做成了磚,把房價炒上了天......,新聞多了,很多消息也越來越扯淡,很多看了實在無語,自卑和自大往往都來源于無知。今天就綜合一下行業知識、參考網上的新聞,給大家掃盲一下集成電路相關的知識,對于嵌入式開發者來說,學習一下集成電路領域的知識,對自己的知識體系和對嵌入式行業的理解也有很大的幫助。
一顆芯片是怎么誕生的?
上面的段子說得沒錯,芯片的原材料就是沙子,今天就先跟大家科普一下:一堆沙子是怎么變成我們手機里的一顆芯片的。
芯片屬于半導體,半導體是介于導體和絕緣體之間的一類物質。元素周期表中的硅、鍺、硒的單質都屬于半導體。除了這些單質,通過摻雜生成的一些化合物,也屬于半導體的范疇。這些化合物在常溫下可激發載流子的能力大大增強,同時彌補了單質的一些缺點,因此在半導體行業中也廣泛應用,如砷化鎵、磷化銦、碳化硅、氮化鎵等。這幾天集成電路概念股大漲,看到有人又炒作石墨烯,估計想趁機炒作一把。石墨烯其實不能算作半導體,雖然它可能通過摻雜實現半導體,但目前主要還是當導體使用,比如在充電電池中的應用。在這些半導體材料中,目前只有硅在集成電路中大規模應用,充當著集成電路的原材料。在自然界中,硅是第二大豐富的元素,比如沙子,就含有大量的二氧化硅。所以說制造芯片的原材料是極大豐富,取之不盡的。
如何從沙子中提取單質硅呢,這就牽涉到一系列化學反應,具體不表。提取的硅純度越高,質量越高。提取出的單晶硅根據不同的需求和工藝,做成不同的尺寸,常見的如6寸、8寸、12寸等。
接下來,把這些硅棒像切黃瓜一樣,切成一片一片的。每一片我們稱為:晶圓(wafer)或者翻譯為晶元。晶元是設計集成電路的載體,我們設計的電路,最后就要在晶元上實現。每一個晶元上,可以實現上百上千個芯片電路,如下圖,每一個小格子都可以看作是一個芯片電路的實現。接下來還要將這些芯片電路切割、封裝、引出管腳,才能焊接到我們的開發板上,做成整機產品。
那在晶元上是如何實現電路的呢?將晶元拿到顯微鏡下觀察,你會發現,里面全是密密麻麻的3D電路,猶如一座巨大的迷宮:
要想弄明白在晶元上是如何實現我們設計的電路,就需要一點電子電路的基礎知識了。電路都是由大量的三極管、二極管、CMOS管、電容等元器件組成的,我們搞懂了一個CMOS管是如何在硅片上實現的,也就搞懂了整個電路在晶元硅片上的實現原理。這些元器件的實現原理,其實就是PN結的實現原理。而PN節的工作原理也是半導體的基本工作原理。PN結是構成二極管、二極管等半導體器件的基礎。想要了解PN節的導電原理,還需要稍微了解一下金屬的導電原理。
我們知道,一個原子由質子、中子和核外電子組成:中子不帶電,質子帶正電,原子帶負電,整個原子顯中性。根據電子的能級分布,一個原子的最外層電子數為8時最穩定。對于鈉原子,核外電子層分布為2-8-1,最外層1個電子,能量最大、受原子核的約束力小,所以最不穩定,受到激發容易發生躍遷,脫離鈉原子,成為自由移動的電子。這些自由移動的電子在電場的作用下,就會發生自由移動,形成電流,這就是導體導電的原理。很多金屬元素最外層的電子數小于4個,容易丟失電子,所以容易導電,是導體。而對于氯原子,最外層7個電子,傾向于捕獲一個電子,形成最外層8個電子的穩定結構,氯原子不能產生自由移動的電子,所以不能導電,是絕緣體。
半導體元素,一般最外層4個電子,比較特殊:這些原子之間往往通過“共享電子”的模式存在,多個原子之間分別共享其最外層的電子,通過共價鍵形成穩定的結構。
但是穩定也不是絕對的,當這些電子收到能量激發時,也會發生躍遷,成為自由移動的電子,同時在共價鍵中留下相同數量的空穴。這些自由移動的電子非常少,在電場的作用下,也會發生移動,形成電流;同時,臨近空穴的的電子也很容易跳過去填補這個空穴,造成空穴的移動,空穴帶正電荷,空穴的移動也會形成電流。
因此,半導體導電有兩種載流子:自由電子和空穴。但是因為硅元素的特性,只能生成極少數的自由電子和空穴,這就決定了半導體無法像金屬那樣導電,但也不像絕緣體那樣一點也不導電。然而正是這種特性,才促成了半導體的飛速發展。
既然半導體內自由電子和空穴濃度很小,導電能力弱,那我們能不能想辦法增加兩種載流子的濃度呢?濃度上去了,導電能力不就增強了嗎?辦法是有的,那就是摻雜。我們可以在一塊半導體兩邊摻入兩種不同的元素:一邊摻入三價元素,如硼、鋁等。硼的電子分布為2-3,最外層3個電子,在和硅的最外層的4個電子生成共價鍵時,缺少一個電子,于是從臨近的硅原子中奪取一個電子,因此產生一個空穴位。這種摻雜的半導體稱為空穴型半導體,簡稱P型半導體。
我們在半導體的另一邊摻雜一些五價元素,比如磷元素。磷原子最外層有5個電子,在和硅原子的最外層4個電子生成共價鍵時,多出來一個電子,成為自由移動的電子,這種半導體稱為電子型半導體,簡稱N型半導體。
我們在一塊導體的兩邊摻入不同的元素,使之成為不同的半導體,一邊為P型,一邊為N型。
在兩者的交匯處,就會形成一個特殊的界面,稱為PN結。理解了PN結,你也就理解了半導體的核心原理,接下來我們看看PN結里到底有什么名堂。
首先,由于一塊半導體兩邊空穴和自由電子濃度不同,因此在邊界處會發生相互擴散。分別越過邊界,擴散到對方區域的空穴和自由電子在邊界處互相中和掉,P區邊界處的空穴被擴散過來的自由電子中和掉后,剩下的都是不能自由移動的負離子;同樣,在N區邊界處留下的都是正離子,這些正負離子由于不能移動,形成了空間電荷區和耗盡層。同時會在這個區域內形成一個內建電場。這個內建電場阻止P區的空穴繼續向N區擴散,同時阻止N區的自由電子向P區擴散,多子的擴散和和少子的漂移從而達到一個平衡。這個區域就是我們所說的PN結。載流子的移動此時已達到平衡,因此流過PN結的電流也為0。
這個PN節看起來也沒啥,但它有一個特性:單向導電性。正是這個特性,樹立了它的牛X地位,也構成了整個半導體大廈的基礎。我們先看看這個特性是怎么實現的:當我們在PN結兩端加正電壓時,P區接正極,這時候就會削弱PN結的內建電場,平衡破壞,空穴和自由電子向兩邊擴散,形成電流,呈導電特性。當我們加反向電壓時,內建電場增強,阻止了載流子的擴散,不會形成電流,所以呈現高阻特性,不導電。
無論二極管、三極管還是MOSFET場效應管,其內部都是基于PN結原理實現的,我們搞懂了PN結的原理,接下來我們就看看如何在一個晶元上實現PN結:
這就涉及到集成電路工藝的方方面面了,包括光刻、刻蝕、離子注入、薄膜沉淀等步驟。為了簡化流程,方便理解,我們就講講核心的兩個步驟,光刻和離子注入。離子注入就是摻雜,根據前面的理解,就是在硅中摻入三價元素硼和五價元素磷,生成PN結構成的各種元器件和電路。光刻就是在晶元上給后續的離子注入操作開鑿各種摻雜窗口。
原理很簡單,但如果我們在一個硅襯底上,要實現千萬門級的電路,上億個晶體管,難度就比較大了。尤其是納米級的電路,比如28nm、14nm,要將千萬門級晶體管都刻在一個小小的晶元上,這就要求每個元器件尺寸要非常小,這時候光刻機登場了,光刻機主要用來將你設計的千萬門級電路映射到晶元上。這對光刻機的要求非常高,要非常精密。因此光刻機非常貴,最牛逼的就是最近網上熱炒的荷蘭光刻巨頭ASML,一臺光刻機1億歐元,很多代工巨頭比如臺積電、三星、Intel都是其客戶。
光刻機的作用就是根據掩模,開鑿各種摻雜窗口,然后通過離子注入,生成PN節,構建千千萬萬個元器件。電路中的元器件都是通過這種復雜的工藝、生成不計其數的PN結構成的。同時,離子注入也是一門大學問,網上PO一張關于離子注入的公式,感受一下它的魅力:
這些工藝完成后,在一個晶元上就會有成百上千個芯片的原型:芯片電路,用專業術語就叫Die。
然后還要經過切割、封裝,引出管腳、測試,才會變成市面上我們看到的芯片的樣子
一款CPU是如何設計出來的?
前面一段,我們了解了芯片的制造過程,也就是如何從沙子中提取硅、把硅切成片,在片上通過離子注入實現PN結、實現各種二極管、三極管、CMOS管、從而實現千萬門級大規模集成電路的大致流程。接下來,我們繼續了解一下,一款CPU是如何設計出來的。集成電路設計一般分為模擬IC設計、數字IC設計以及數模混合等。而數字IC設計,比如設計一款ARM Soc CPU芯片的基本流程如下:
1)設計芯片規格:根據需求,設計出基本的框架、功能、模塊劃分。有些復雜的芯片可能還需要建模、使用MATLAB等工具進行仿真。
2)HDL代碼實現:使用VHDL或Verilog語言將要實現的硬件功能描述出來、通過EDA工具不斷仿真、修改,驗證直至邏輯功能完全正確。這種仿真我們一般稱為前仿,只驗證邏輯功能是否正確,不考慮延時。這個階段也是最重要的階段,一般會花費大量的時間、驗證工程師不斷驗證芯片功能的正確性。有時候為提高效率,也會使用硬件仿真,通過FPGA平臺進行驗證。當然,這也是數字IC驗證工程師干得活。
3)邏輯綜合:仿真驗證通過后,再使用專門的EDA工具將HDL代碼轉換成邏輯門電路。專業術語叫做將HDL代碼翻譯成門級網表(netlist)。在綜合過程中,需要設定一些約束條件,讓綜合出來的電路在面積、時序等參數上滿足要求。這個階段的仿真一般稱為后仿,要考慮延時等因素,跟實際芯片已經很接近了。
網表文件用來描述電路中元器件之間的連接關系。有數字電路基礎的同學可能都會知道,任何一個邏輯關系或運算都可以轉化為相應的門級電路來實現。而網表就是用來描述這些門級實現電路的連接信息。
還需要注意的一個地方是:門級電路是由不同的晶圓廠,也就是芯片代工廠以工藝庫的形式提供的,比如中芯國際、臺積電等。如果你設計的芯片要臺積電代工制造,工藝要求是28nm,那么你在設計芯片時,臺積電會提供給你28nm級的工藝庫,你綜合后生成的電路參數跟臺積電生產芯片使用的工藝參數是一致的。
4)仿真驗證:對生成的門級電路進行各種靜態時序分析、驗證。通過后,整個前端設計就結束了:從RTL代碼到生成門級網表電路。
5)后端設計
通過前端設計,我們已經生成了門級網表電路,但這跟實際的芯片電路還有一段距離,我們還需要對其不斷完善和優化,進一步設計成物理版圖,也就是代工廠做掩膜需要的版圖。后端設計包括很多步驟,一般包括:
DFT:designed for test,可測性設計。芯片內部往往會自帶測試電路,在設計中插入掃描鏈。
布局規劃:各個IP模塊電路的擺放位置、時鐘線綜合、普通信號線的布線
版圖物理驗證:設計規則檢查、連線寬度、間距是否符合工藝要求、電氣規則簡則等等。
物理版圖驗證ok后,會將這個物理版圖以GDSII文件格式交給芯片代工廠(foundry),至此,整個芯片設計仿真驗證流程結束,我們稱為tap-out。
物理版圖是由我們設計的電路轉化而成的一系列幾何圖形,如上圖,跟PCB版圖類似,也分為好多層。物理版圖包含集成電路尺寸大小、各層的拓撲關系等。代工廠會根據這些信息來制造掩模、然后使用光刻機,通過這些掩模在晶元的硅片襯底上開鑿出摻雜窗口,接著就對硅片進行離子注入,摻雜不同的三價元素和五價元素,生成PN,進而構成各種元器件、電路。再通過刻蝕等工藝,可以在晶圓硅片上生成多層立體的3D電路結構。
好了,到了這里,我們已經把整個芯片設計、制造的大致流程給大家講解完了,看起來很簡單,其實集成電路設計制造的每個環節,都有極高的技術含量,集成電路行業是一個高度專業分工的行業,每個環節都有不同的行業巨頭把守,從芯片設計、制造、各種EDA工具、IP核、光刻機、刻蝕機,每個環節都有非常專業的制造商、服務商、EDA工具商,精確嚴謹地配合,同時也分享著IC設計產業鏈上的超額利潤。
設計一款CPU到底有多難?
網上很多媒體甚至用表格列舉了中國芯片的依賴率及自給率,除了消費電子領域的應用處理器AP外,其它很多領域的自給率都是0%。這也從一個角度說明:我們集成電路發展的空間無比巨大、可以想象的空間很廣闊。
差距比較大的地方,主要在模擬、射頻、AD轉換等領域,這些基本上被歐美一些巨頭壟斷,更悲催的是,很多核心領域現在已經禁止華人從事這方面的工作,可見美國政府對這些高精尖的領域技術保護非常重視。而在一些消費電子領域,由于ARM的IP授權模式,大大降低了SOC的設計門檻,再加上半導體產業成熟嚴格的分工體系:設計、代工、封裝測試一條龍,所以中國最近幾年在消費電子領域SOC設計方面發展迅速,涌現出了很多芯片和公司,比如海思、展訊、聯芯、全志、瑞芯微等。從手機基帶、RF到AP都慢慢縮小了與國際半導體巨頭的差距。比如海思的麒麟系列,對標高通的驍龍系列,性能其實已經不相上下。
在ARM構建的生態和商業模式下,SOC芯片設計企業可以跟這些芯片巨頭有同臺競爭的機會,至少能參與進來:你牛X,可以拿到ARM的指令集授權,做自己的微架構,我沒這個實力,搞個低端領域的,搭個積木還是綽綽有余的。嵌入式市場,不像PC X86一統天下,它是分散的、多需求的、難以壟斷的。所以這也就給很多做ARM AP芯片的公司很多機會,你做手機、我做平板、智能電視、網絡盒子、游戲機、挖礦機,只要找準一個方向,用低成本優勢,就可以活下來,再圖技術慢慢積累和發展。所以在ARM AP這一塊,你會看到有很多公司,以后還會出現很多公司,這方面應該最快能滿足芯片的自給,當然,這也給嵌入式開發者提供大量的工作崗位。
在PC和服務器領域,可能就沒這么容易突破了。我們知道,在X86領域,是Intel和AMD的天下。設計一款X86架構的芯片,到底難不難呢?其實不算難,國內能找出不少公司可以設計出來。那難的是什么呢?是生態和專利授權。Intel在X86領域可以說是一家獨大,在它的專利保護下,基本上就封死了你想自己設計X86架構CPU的道路,錢再多也不讓你做,不給你專利授權。AMD公司還是美國為了防止壟斷,才促使Intel跟其專利交叉授權,達到一個平衡,不過AMD現在貌似也過得不輕松,在CPU這塊被Intel壓得也是步履維艱。除此之外,還有一家公司,臺灣的威盛電子:VIA,就是電腦一開機顯示VIA標志的,VIA也有一些X86專利,也獲得Intel專利授權,但是做CPU貌似也很艱難,在芯片方面的盈利還不如旗下的酒店業務賺得錢多。其實這也沒辦法,贏者通吃,后面的可能連湯都喝不到。看網上的新聞好像跟上海國資合股成立兆芯,研究X86 CPU和顯卡,國家砸了不少錢,不知道能不能趟出一條路來。
跟兆芯對標的國內芯片公司,有一家比較有名:龍芯。龍芯走的是MIPS路線。MIPS跟ARM、X86一樣,也是一種指令集,也是當前世界上還在存活狀態的指令集,跟ARM、X86可以說是三足鼎力吧。據說,龍芯當年500萬拿到MIPS指令集的永久授權,然后自己不斷添加、完善指令集,形成了自己的指令集。龍芯的優勢是MIPS有了一定的生態市場,可以不必從零開始搭建自己的生態,有利于自己CPU的推廣。最新研發的微架構GS464E根據網上的相關資料,已經超越Intel的i3架構,跟i5稍有差距,但同時已經超越了同時期的Intel Atom、VIA Nano、ARM Cortex-A57等低功耗架構。
這里得給大家普及一下什么是指令集和微架構。指令集,大家學過匯編語言的可能都知道一些匯編指令,這些匯編指令其實就是指令集的助記符,我們設計一個CPU架構,肯定要設計一系列指令,這些指令集可以看做是一個標準,我們在設計CPU硬件電路時就是根據這些指令集,去設計一些指令譯碼、執行電路,執行我們的指令集。那這個根據指令集設計的CPU硬件電路就是微架構。不同的CPU架構,指令集是不一樣的,這就導致了,不同的CPU架構,需要的編譯環境、開發環境是不一樣的。比如ARM架構,我們需要開發一個編譯器,將我們的C語言程序翻譯成ARM的指令集,然后才能在ARM架構的CPU上運行。而對于X86平臺,我們需要開發另外一個編譯器,將C語言程序翻譯成X86指令,然后才能在X86平臺上運行。為什么在X86平臺上不能運行ARM指令呢?很簡單,因為CPU硬件電路在設計時是根據X86指令集設計的,只支持X86指令的運行,不支持ARM指令,無法運行。
向AI問一下細節
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。