一個比指甲蓋還小的封裝起來的黑色小硅片,卻是一切電子設備的核心,包括高鐵、飛機、電視機、手機的核心。
今天的硅谷占領了芯片設計金字塔的頂尖
上世紀八十年代的硅谷,擁有很多半導體生產線。硅谷也以此從一個葡萄園為主的干旱山谷轉變為以“硅”工業為核心的高科技基地。到了九十年代,這些生產線逐漸移到了美國偏遠地區、亞太地區,***、韓國、新加坡就是在這個時期建立了很多生產線,集成電路開始發展起來。
但是今天的硅谷,已經基本上沒有生產線,而是以設計公司和軟件公司為主流。例如,全球GPU領軍企業(英偉達)、全球最大的可編程器件公司XILINX(賽靈思)、通信芯片公司Broadcom(博通),都是沒有生產線、純粹靠智慧設計在領導全球某個產業方向。
芯片設計難在哪里
有專家打過一個比喻:把芯片拿到一般的顯微鏡下看,就像是一張上海市地圖;拿到更高級的電子顯微鏡下看,就能看到每家每戶的窗戶、陽臺,一扇扇門,一條條馬路;大家平常說的28納米、15納米,就是這個城市建筑的最小尺寸。集成電路設計,就好像設計一座“新上海城”,馬路是7層甚至8、9層立交的;建筑物有幾百萬座;擁有幾千萬人口,幾億扇門窗不斷開關;所有建筑物的門窗一秒鐘要開關上億次,而且不能夠有一扇門窗的開關不準確。
“在這張超級地圖上,每個房間都要供電、供水,一兩個房間水壓不夠就可能造成電路計算不準確,你的飛機就可能掉下來,這就是失敗的芯片。”集成電路芯片在設計環節出現任何一個小缺陷,就必須重來。重新設計又需要至少1年時間,幾千萬元的投入。“所以集成電路設計需要從軟件到硬件的高超的設計、指揮、風險控制能力。”
目前,國內的集成電路產業設計、制造、封裝三業并舉,制造可以去代工,封裝測試與美國的差距也不是很大。差距最大的地方在于設計,現在國內芯片設計主要還是依賴國外。
芯片設計主要方法
芯片設計方法從大的方面可以分為兩大類:正向設計和逆向設計(逆向工程)。
正向設計
正向設計即根據產品確定的指標和要求,從電路原理或系統原理出發,通過查閱相關規定和標準,利用已有知識和能力來設計模塊和電路,最后得到集成電路物理實現所需要的幾何圖形。一般認為正向設計具體包含了以下三種基本的設計方法:自下而上(bottom up)即結構設計方法,自上而下(top-down)設計方法和并行設計方法。
自下而上設計方法
自下而上的設計方法是集成電路系統的基本設計方法,其基本思想是將復雜的系統逐層進行功能塊劃分和描述功能塊的拓撲連接,直到用底層模塊或部件來描述,當完成底層模塊或部件的描述后,自下而上進行層次擴展和層次功能的仿真驗證,從而完成整個系統的功能設計和驗證。最后根據底層模塊或部件的幾何圖形和拓撲關系完成布圖設計和驗證。
雖然采用自下而上設計的系統結構清晰明了,但作為傳統的系統硬件設計方法,在系統設計的早期就將系統人為地分為硬件和軟件兩部分,軟件的開發受到硬件的嚴格限制,軟件的設計和調試常常要在硬件設計完成之后。這種設計方法的一些缺點也是很明顯,如要求設計者具有豐富的設計經驗,設計過程反復較多,開發效率低,可移植性差,可繼承性差,開發時間長,不易修改等等。
自上而下設計方法
自上而下設計方法的思想是按從抽象到具體,從概念到實現的思路和次序進行設計的,從系統總體要求出發,自上而下地逐步將設計內容細化,最后完成系統硬件的整體設計。具體實施時,首先從系統設計入手,在頂層進行功能方框圖劃分和結構設計,在方框圖一級進行仿真和糾錯,用硬件設計語言對高層次的系統行為級進行描述并在系統級進行驗證,這時的設計與工藝無關。然后用邏輯綜合化工具生成具體的門級邏輯電路的網表,具體過程如圖所示。然后再通過布局、布線、版圖設計等,得到最終生產所用的描述文件。
采用自上而下的設計方法時,主要的仿真和調試過程是在高層次完成的,這有利于早期發現在結構設計上的錯誤,避免設計反復,同時也減少了邏輯仿真的工作量。
并行設計方法
隨著工藝技術的發展,深亞微米(DSM)已經投入使用,系統級芯片的規模更大、更復雜,物理連線延遲、信號串擾和噪音等互連效應及功耗都成為影響超大規模集成電路(VLSI)產品性能的重要因素。在這種情況下,由于采用自上而下的設計方法與工藝無關的高層次行為功能設計時并不考慮物理上的互連效應和功耗等的影響,與實際情況差異較大,因而常常產生設計錯誤,并行設計方法正是面對這一挑戰而提出來的。并行設計方法一開始就考慮產品在整個生命周期中從概念形成到產品報廢處理的所有因素。并行設計方法要求在進行層次功能設計的同時,進行層次物理設計規劃或虛擬物理設計,充分利用各層次設計中的信息反饋,形成合理的約束集,并依此優化設計。
逆向設計(逆向工程)
芯片反向設計(工程)是一種從人們設計的優秀芯片中提取技巧和知識的過程,是獲取芯片工藝、版圖、電路、設計思想等信息的一種手段。
簡單而言,芯片反向設計就是通過對芯片內部電路的提取與分析、整理,實現對芯片技術原理、設計思路、工藝制造、結構機制等方面的深入洞悉,可用來驗證設計框架或者分析信息流在技術題,也可以助力新的芯片設計或者產品設計方案。
通過這種逆向分析手段,我們可以幫助客戶了解其他產品的設計,用于項目可行性研究、打開思路、尋找問題、成本核算等,比如:在進入新領域之前,評估、驗證自己技術方案和設計思路的可行性;通過對市場上成熟產品的研究,協助解決關鍵性的技術問題;利用已有產品的市場資源等。
芯谷芯片反向設計服務包括網表/電路圖反向提取、電路層次化整理、邏輯功能分析、版圖提取與設計、設計規則檢查調整、邏輯版圖驗證、單元庫替換以及工藝尺寸的縮放等方面。網表/電路圖反向提取。
在芯片反向設計中,網表/電路圖的提取是個很大的課題,網表提取的質量和速度直接影響后續整理、仿真、LVS等方方面面的工作。我們在總結眾多成功案例的基礎上,依托自主研發的軟件應用,可準確、快速、高質量地進行網表/電路圖的提取。
芯片設計主要內容
一顆芯片的誕生,可以分為設計與制造兩個環節。芯片制造的過程就如同用樂高蓋房子一樣,先有晶圓作為地基,再層層往上疊的芯片制造流程后,就可產出想要的芯片,然而,沒有設計圖,擁有再強大的制造能力也無濟于事。
在芯片生產流程中,芯片多由專業芯片設計公司進行規劃、設計,像是聯發科、高通、Intel 等知名大廠,都自行設計各自的芯片,提供不同規格、效能的芯片給下游廠商選擇。所以,芯片設計是整個芯片成型最重要的一環。
芯片制造的過程就如同用樂高蓋房子一樣,先有晶圓作為地基,再層層往上疊的芯片制造流程后,就可產出必要的芯片(這些會在后面介紹)。然而,沒有設計圖,擁有再強制造能力都沒有用,因此,建筑師的角色相當重要。
研發方案和硬件語言
與任何一個靠生產產品謀求發展的企業一樣,設計推出一款新的芯片的第一步理所當然的是市場的調研和產品的開發規劃。在這段時間內,未來產品的相關定位,主要占領的市場范圍等話題都被提到桌面上討論,這些問題討論的結果最終將決定產品最終的研發方案的大體內容:研發成本,研發周期以及開發過程中需要的資源等等。
接下來就要在研發方案確定的大方向的技術上研究從生產工藝,芯片代工等具體的細節問題進行商議。在成本的限制范圍內決定諸如集成晶體管數量等物理參數;緊接著就要在符合生產工藝的芯片代工廠中做出選擇了,決定這個的因素很多,當然第一點是能提供生產芯片要求的工藝水平,其次是代工廠的產品質量和價格因素。當然很多時候芯片在設計的時候就計劃使用比較超前的工藝,保證選擇的代工廠在芯片設計完成開始投片的時候完成相關工藝改造是十分重要的,如果你在這一點上面做出錯誤的判斷,那對公司造成的損失是巨大的,因為芯片行業是一個最求速度的產業,在生產工藝已經決定的情況下,如果要在回過頭來修訂工藝指標,那進行的工作又會持續幾個月,其中的工作量不比重新一塊芯片要少多少!
當這一切前期環節確定以后,就開始芯片構架的設計。現在,芯片構架的設計一般是通過專門的硬件設計語言Hardware Description Languages (HDL)來完成,所謂硬件設計語言( HDL)顧名思義,是一種用來描述硬件工作過程的語言。這些語言寫成的代碼能夠用專門的合成器生成邏輯門電路的連線表和布局圖,這些都是將來發給芯片代工廠的主要生產依據。
在芯片的設計階段基本上都是通過工程師們通過Verilog語言編制HDL代碼來設計芯片中的所有工作單元,也決定該芯片所能支持的所有技術特征。這個階段一般要持續3到4個月(這取決于芯片工程的規模),是整個設計過程的基礎。
在上述的工作完成后,就進入了產品設計的驗證階段,一般也有一兩個月的時間。這個階段的任務就是保證在芯片最后交付代工廠的設計方案沒有缺陷的,就是我們平時所說的產品的“bug”。這一個階段對于任何芯片設計公司來說都是舉足輕重的一步,因為如果芯片設計在投片生產出來以后驗證出并不能像設計的那樣正常工作,那就不僅意味著繼續投入更多的金錢修改設計,重新投片。整個驗證工作分為好幾個過程,基本功能測試驗證芯片內的所有的門電路能正常工作,工作量模擬測試用來證實門電路組合能達到的性能。當然,這時候還沒有真正物理意義上真正的芯片存在,這些所有的測試依舊是通過HDL 編成的程序模擬出來的。
接下來的驗證工作開始進行分支的并行運作,一個團隊負責芯片電路的靜態時序分析,保證成品芯片能夠達到設計的主頻;另外一個主要由模擬電路工程師組成的團隊進行關于儲存電路,供電電路的分析修改。和數字電路的修正工作相比,模擬工程師們的工作要辛苦的多,他們要進行大量的復數,微分方程計算和信號分析,即便是借助計算機和專門的軟件也是一件很頭疼的事情。同樣,這時候的多有測試和驗證工作都是在模擬的狀態下進行的,最終,當上述所有的工作完成后,一份由綜合軟件生成的用來投片生產門電路級別的連線表和電路圖就完成了。
但是,芯片設計者不會立即把這個方案交付廠家,因為它還要接受最后一個考驗,那就是我們通常所說的FPGA (Field Programmable Gate Array)現場可編程門陣列來對設計進行的最終功能進行驗證。 對于一個集成一億多個晶體管超級復雜芯片,在整個使用硬件設計語言( HDL)設計和模擬測試的過程中,要反復運行描述整個芯片的數十億條的指令和進行真正“海量”的數據儲存,因此對執行相關任務的的硬件有著近乎變態的考驗。
可編程門陣列FPGA模擬驗證
現場可編程門陣列FPGA可以能完成任何數字器件的功能,上至高性能CPU下至簡單的74電路,都可以用它來實現。FPGA其實是一個包含有大量門電路的邏輯元件,但是它的每一個門的定義可以有使用者來定義,如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言自由的設計一個數字系統。通過軟件仿真,我們可以事先驗證設計的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時修改設計而不必改動硬件電路。所以說使用FPGA來開發數字電路,可以大大縮短設計時間,更為重要的是大大減少了再出現成品芯片以后反復修改,投片資金和時間的消耗,一塊幾千美元的FPGA(這里指目前最大容量的FPGA)和花費數百萬美元得到一塊成品芯片相比,消耗是微不足道的.
投片生產樣片和修正
經過前面一系列的驗證工作,這道工序就可以告一段落了,幾經修訂的設計方案被送到了芯片代工廠開始投片生產.代工廠從拿到設計方案到第一批產品下線一般需要四周的時間,不過在這段時間里,設計人員仍舊馬不停蹄,繼續進行芯片的模擬測試和上市產品PCB(Printed Circuit Boards印刷電路板) 的設計,這就產生了一般官方欽定的“公板”.四周以后,第一批產品下線了,這就是我們一般稱為的”A0”版本。(就是常說的“工程樣片”)
一般情況下, A0版本的產量不會很多,它們的主要用途還是用來進行測試和修改,一些被送到開發小組繼續測試和查錯,另一部分被送到相關的卡板廠商處進行相關的測試和設計。由于現在是有了真正的芯片到手了,查錯的手段當然也要和前面的模擬手段不同。
當“所有”的缺陷都得到了修正之后,最終的設計被交付到代工廠進行投片生產,這時的產量就不會像A0版本那么少了,但也不是最終的量產版本,在前面驗證基本功無誤的情況下,這次生產的芯片要進行各種各樣的和正式上市產品相關的測試:產品兼容性,工作溫度,外圍供電電路的穩定性,信號完整性等等,直到產品能達到作為產品上市的程度,這時芯片生產方就可以投入量產了。
芯片設計主要流程
芯片的設計過程可分為兩個部分,分別為:前端設計(也稱邏輯設計)和后端設計(也稱物理設計),這兩個部分并沒有統一嚴格的界限,凡涉及到與工藝有關的設計可稱為后端設計。
前端設計的主要流程
1、規格制定
芯片規格,也就像功能列表一樣,是客戶向芯片設計公司(稱為Fabless,無晶圓設計公司)提出的設計要求,包括芯片需要達到的具體功能和性能方面的要求。
2、詳細設計
Fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模塊功能。
3、HDL編碼
使用硬件描述語言(VHDL,Verilog HDL,業界公司一般都是使用后者)將模塊功能以代碼來描述實現,也就是將實際的硬件電路功能通過HDL語言描述出來,形成RTL(寄存器傳輸級)代碼。
4、仿真驗證
仿真驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格。看設計是否精確地滿足了規格中的所有要求。規格是設計正確與否的黃金標準,一切違反,不符合規格要求的,就需要重新修改設計和編碼。設計和仿真驗證是反復迭代的過程,直到驗證結果顯示完全符合規格標準。仿真驗證工具Mentor公司的Modelsim, Synopsys的VCS,還有Cadence的NC-Verilog均可以對RTL級的代碼進行設計驗證,該部分個人一般使用第一個-Modelsim。該部分稱為前仿真,接下來邏輯部分綜合之后再一次進行的仿真可稱為后仿真。
5、邏輯綜合――Design Compiler
仿真驗證通過,進行邏輯綜合。邏輯綜合的結果就是把設計實現的HDL代碼翻譯成門級網表netlist。綜合需要設定約束條件,就是你希望綜合出來的電路在面積,時序等目標參數上達到的標準。邏輯綜合需要基于特定的綜合庫,不同的庫中,門電路基本標準單元(standard cell)的面積,時序參數是不一樣的。所以,選用的綜合庫不一樣,綜合出來的電路在時序,面積上是有差異的。
6、STA
Static TimingAnalysis(STA),靜態時序分析,這也屬于驗證范疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(setup time)和保持時間(hold time)的違例(violation)。這個是數字電路基礎知識,一個寄存器出現這兩個時序違例時,是沒有辦法正確采樣數據和輸出數據的,所以以寄存器為基礎的數字芯片功能肯定會出現問題。STA工具有Synopsys的Prime Time。
7、形式驗證
這也是驗證范疇,它是從功能上(STA是時序上)對綜合后的網表進行驗證。常用的就是等價性檢查方法,以功能驗證后的HDL設計為參考,對比綜合后的網表功能,他們是否在功能上存在等價性。這樣做是為了保證在邏輯綜合過程中沒有改變原先HDL描述的電路功能。形式驗證工具有Synopsys的Formality。前端設計的流程暫時寫到這里。從設計程度上來講,前端設計的結果就是得到了芯片的門級網表電路。
后端設計流程
1、DFT
Design ForTest,可測性設計。芯片內部往往都自帶測試電路,DFT的目的就是在設計的時候就考慮將來的測試。DFT的常見方法就是,在設計中插入掃描鏈,將非掃描單元(如寄存器)變為掃描單元。關于DFT,有些書上有詳細介紹,對照圖片就好理解一點。
2、布局規劃(FloorPlan)
布局規劃就是放置芯片的宏單元模塊,在總體上確定各種功能電路的擺放位置,如IP模塊,RAM,I/O引腳等等。布局規劃能直接影響芯片最終的面積。
3、CTS
Clock TreeSynthesis,時鐘樹綜合,簡單點說就是時鐘的布線。由于時鐘信號在數字芯片的全局指揮作用,它的分布應該是對稱式的連到各個寄存器單元,從而使時鐘從同一個時鐘源到達各個寄存器時,時鐘延遲差異最小。這也是為什么時鐘信號需要單獨布線的原因。
4、布線(Place & Route)
這里的布線就是普通信號布線了,包括各種標準單元(基本邏輯門電路)之間的走線。比如我們平常聽到的0.13um工藝,或者說90nm工藝,實際上就是這里金屬布線可以達到的最小寬度,從微觀上看就是MOS管的溝道長度。
5、寄生參數提取
由于導線本身存在的電阻,相鄰導線之間的互感,耦合電容在芯片內部會產生信號噪聲,串擾和反射。這些效應會產生信號完整性問題,導致信號電壓波動和變化,如果嚴重就會導致信號失真錯誤。提取寄生參數進行再次的分析驗證,分析信號完整性問題是非常重要的。
6、版圖物理驗證
對完成布線的物理版圖進行功能和時序上的驗證,驗證項目很多,如LVS(Layout Vs Schematic)驗證,簡單說,就是版圖與邏輯綜合后的門級電路圖的對比驗證;DRC(Design Rule Checking):設計規則檢查,檢查連線間距,連線寬度等是否滿足工藝要求,ERC(Electrical Rule Checking):電氣規則檢查,檢查短路和開路等電氣 規則違例;等等。
實際的后端流程還包括電路功耗分析,以及隨著制造工藝不斷進步產生的DFM(可制造性設計)問題,在此不說了。物理版圖驗證完成也就是整個芯片設計階段完成,下面的就是芯片制造了。物理版圖以GDSII的文件格式交給芯片代工廠(稱為Foundry)在晶圓硅片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的芯片。
-
芯片
+關注
關注
456文章
51072瀏覽量
425846 -
電路
+關注
關注
172文章
5956瀏覽量
172656 -
芯片制造
+關注
關注
10文章
627瀏覽量
28855
原文標題:芯片制造這么難?為何領先世界的是沒有生產線的硅谷——詳解芯片設計流程
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論