晶圓廠foundry,
無晶圓設計公司fabless(只專注設計,沒有製造業務的公司或者未擁有晶元製造工廠的ic設計公司),
eda 軟體公司(自動化軟體生產廠商,為積體電路設計提供軟體支援),
設計服務軟體公司design service(主要提供晶元後端設計服務),
ip**商(ip研發成本高,可復用性強),
整合設計與製造idm。
foundry的公司代表有:tsmc、global foundry、umc、smic
fabless的公司代表有:博通、高通、英偉達
eda公司三巨頭:cadence、synopsys、mentor graphics
design service公司代表有:verisilicon、alchip等
ip**商公司代表有:risc的ip提供商arm
idm公司代表有:英特爾
就業崗位分布:演算法架構、前端設計、後端布局佈線、驗證等崗位
數字晶元前端設計流程:
演算法或硬體架構設計與分析。
目的:完成晶元中數字部分的高層次演算法或架構的分析與建模,為硬體提供乙個正確的軟體功能模型,更為重要的是,通過大量的高層次**和除錯,為rtl實現提供總體性的設計指導。數字部分越複雜,這一點越重要。
工具:matlab、c++、c、system c、system verilog 等。不同型別的晶元都不同的選擇, 如數字訊號處理類晶元,偏好 matlab。
特點:這部分工作至關重要,基本上奠定了整個晶元的效能和功耗的基礎。這部分工作主要 由具有通訊、訊號處理、計算機、軟體專業背景的工程師完成,也有很多微電子專業背景的 工程師參與。
rtl(暫存器轉換級電路)實現
目的:依據第一步的結果,完成由高層次描述到 verilog hdl 實現的過程。 工具:vim、emac(二者不分前後順序哦)
特點:這一步能明顯區別中訓練有素的工程師和初學者。前者在寫**的過程中,具有極強 的大局觀,能夠在書寫 verilog hdl、描述邏輯功能的同時,還能夠兼顧邏輯綜合、sta、
p&r、dfx、功耗分析等多方面因素,最終提供乙份另其他環節的工程師都賞心悅目的**。 初學者則處處留地雷,一不小心就引爆。
功能驗證
目的:在無延遲的理想情況在,通過大量的**,發現電路設計過程中的人為或者非人為引 起的 bug。主要指標是功能覆蓋率。
工具:modelsim、vcs、nc-verilog
語言:c++、c、system c、system verilog,基於 uvm 的方法學等。主要是 system verilog, 一般哪個方便用哪個。
特點:驗證工程師近年來已經成為 ic 設計中需求量最大的崗位。這個階段會占用大量的時 間,數以月計
邏輯綜合
目的:將 rtl **對映為與工藝庫相關的網表。
工具:designcompiler、rtl compiler。designcompiler 在市場中占有壟斷性地位,幾乎成為邏輯綜合的標準。
特點:從晶元生產的角度來看,在該步驟之前,所有的工作都可近似看做乙個虛擬性的,與現實無關。而從邏輯綜合起,後續所有的工作都將與工藝的物理特性、電特性等息息相關。 邏輯綜合工具的功能主要是將
veriloghdl 格式的文字對映為網**式的文字,因此,它的 功能等同於文字編譯器。那麼轉換的方式有很多種,工具如何選取呢?邏輯綜合過程中,整個文字格式的編譯過程是在給定的人為約束條件下進行的,通過這些約束和設定的目標來指導工具完成 compiler 的工作。所以,邏輯綜合過程可以看成乙個多目標(頻率、面積、功耗)多約束的工程優化問題。該步驟中,通常會插入 dft、clock gating 等。該步驟中通常 加入 memory、各種 ip 等。為了在各種工藝庫以及 fpga 原型驗證平台之間有乙個更方便的移植,注意適當處理這些 memory、ip 等的介面。該步驟中也可加入 i/o、pll 等。
靜態時序分析
目的:動態**的類窮舉式驗證方法而言,從靜態分析的角度,保證設計中所有的路徑,滿足內部時序單元對建立時間和保持時間的要求。即無論起點是什麼,訊號都可以被及時地傳遞到該路徑的終點,並且在電路正常工作所必需的時間段內保持恆定。
工具:primetime、tempus。primetime 在市場中占有壟斷性地位,幾乎成為 sta 的標準。 特點:從邏輯綜合開始,基本上每做一步大的調整,都會完成一次 sta 分析,以保證每步都能實現時序收斂。鑑於該特性非常重要,primetime 成為了 signoff 的重要工具。所用到的 sdc 同邏輯綜合;通常設計中會存在大量的違例路徑,sta 要修大量的 setup、hold 等,如 何修這些違例,可以體現工作經驗的重要性。此外,如果是前端修 timing 違例,一般會修的很快,但是會帶來乙個重大的問題,**被前端修改後是否存在新的 bug,還需重新**確認,**會消耗掉數以月計的時間,所以除非萬不得已,不會找前端修 timing。
一致性驗證
目的:rtl **和邏輯綜合後的網表都可以抽象為兩幅由節點和邊構成的圖,一致性驗證階段採用了類似於直接比較兩幅圖是否一致的方法,來確定邏輯綜合生成的網表是否正確。
工具:formality、conformal
輸入檔案:rtl **、netlist(邏輯綜合輸出)、約束
輸出檔案:match(兩張圖節點是否一致)和 verify(計算得出兩張圖功能是否一致)的報告。
數字晶元前端設計流程:
數字後端設計又稱為物理設計,將網標格式的文字轉化成乙個個有物理大小和位置的單元、連線。並且在實現過程中要滿足面積、功耗、效能等要求。
業界主流的後端工具來自 synopsys、cadence 兩家公司,雖然兩家公司工具不同但是基本流程相似。數字後端流程如圖。
floor plan:將 design 匯入後端工具後,檢查輸入檔案是否缺少或者有錯誤。確保 design 正常 initial 後就可以進行調整 floor plan。floor plan 主要目的是要確定 design 的形狀大小、出pin 的位置、所有 macro 的擺放。
placement 目的是將所有 std cell 放入 core area 中,並且滿足 congestion 和 timing 的要求。 最簡單的說可以分為兩步: global 和 detail place。global 不考慮 cell 放的位置是否 legal; detail place 的時候會將 cell 放到附近 legal 的位置。在 place 過程中為了得到更好 timing 結果會對關鍵路徑進行邏輯重組,刪除 buffer trees。 隨著工具的不斷發展,目前 place 的引擎已經十分強大。例如 c 家的 giga place,它採用新的演算法 slack-driven,通過計算真正 timing 而不是預估的 timing 來進行 place, 在 place 的同時進行優化。
prects 在 place 之後 cts 之前,我們會對進行一次 setup timing 優化。只優化 setup,原因是 clock tree 還沒做,所有 clock 都是 ideal 的。
cts:晶元中的時鐘網路要驅動電路中所有的時序單元,所以時鐘源端門單元帶載很多,其負載延時很大並且不平衡,需要插入緩衝器減小負載和平衡延時。時鐘網路及其上的緩衝器 構成了時鐘樹。
routing:cts 之後整個晶元的大體結構已定。要將訊號線通過金屬連線起來。繞線過程主要完成一下幾個目標。繞線過程中會考慮 drc 和 lvs,繞完後不會有 drc/lvs violations 繞線過程中不會導致 timing 變差,也不會引入新的 si 問題。考慮 dfm,例如 multi-cut via, 線寬和線間距。
ASIC晶元設計流程
1 marketing request 有市場需求 2 architecture spec 編寫架構文件 3 algorithm emulation 做演算法模型,評估下哪些可行,軟體c c matlab 4 design spec 得到設計文件 5 rtl coding 設計 6 ip level...
數字晶元設計流程之verilog設計
數字晶元設計流程 功能驗證之前與工藝庫沒多大聯絡,驗證晶元設計的功能是否正確,針對抽象的 進行功能驗證理想值。一致性驗證確保生成的網表和 設計功能一致 dft之後是數字後端。靜態時序分析,從邏輯綜合開始拿給後端,確保每乙個階段沒有問題。後 證明加入延遲後功能是否正確。一 verilog設計 可綜合語...
晶元製造流程
一枚小小的晶元從設計之初到誕生會涉及到晶元設計 晶元生產 晶元封裝和測試等多個產業鏈,可以說每乙個環節都是乙個國家綜合國力的體現。接下來我就以蓋房子對比晶元製造過程 蓋房子晶元製造 開發商拿地 晶元需求 規劃設計 晶元設計 施工建設 晶元生產 裝修晶元封裝 驗收測試驗收 首先我們來看蓋房子,並不是每...