前言#
本文前情提要:
- 只專注於數位 IC 設計流程中的主要 / 關鍵步驟。
- 儘量避免晦澀術語。
什麼是 IC 設計流程#
集成電路設計流程是一種系統化的方法,包括一系列步驟,直至集成電路藍圖準備就緒,可以轉移到半導體工廠進行製造。
IC 設計流程中的關鍵步驟#
典型的 IC 設計週期包括幾個步驟:
以下流程引用自 wiki:
- 系統規範
- 可行性研究和晶片尺寸估算
- 功能分析
- 架構或系統級設計
- 邏輯設計
- 類比設計、模擬和佈局
- 數位設計和模擬
- 系統模擬、仿真和驗證
- 電路設計
- 物理設計
- 平面規劃
- 放置和路由
- 寄生提取
- 物理驗證和簽署
- 靜態時序
- 協同模擬和時序
- 掩模數據準備(佈局後處理)
- 晶片完成與tape out
- 掩模佈局
- 佈局到掩模準備
- 掩模製造
- 光掩模製造
- 晶圓製造
- 封裝
- 晶片測試
- 後矽驗證和整合
- 裝置特性化
- 調整(如有必要)
- 晶片部署
再進一步總結為如下幾個關鍵步驟
規範和架構設計#
在這個階段,設計工程師應能回答這些問題:
- IC 是為了什麼而製作的?
- IC 必須提供哪些功能?
- 所需的速度和功耗是多少?
- 目標成本是多少?
通俗來說此階段即為高層次的頂層架構設計。
設計輸入 – 邏輯 / 電路設計#
完成架構設計並確定要實現哪些功能後,工程師使用 RTL 實現邏輯功能,並通過邏輯綜合完成 RTL 到閘級網表的轉換。一般稱邏輯設計為 IC 前端,物理設計為 IC 後端,邏輯綜合為橋樑,提供物理設計所需的技術依賴網表。
物理設計#
物理設計階段的重點是將電路的邏輯表示轉化為適合製造的物理佈局。這涉及到平面規劃、放置、路由等步驟,需要遵守嚴格的設計約束條件,如面積、功率和時序等要求,以滿足 PPA。
物理驗證#
物理驗證階段是一個反覆進行的過程,對確保設計的正確性和穩健性至關重要。採用包括模擬、形式驗證和仿真在內的各種技術來模擬集成電路的物理效應(電阻、串擾等),檢測設計缺陷,確保符合特定要求。
換句話說,這一階段可以幫助設計人員想像電路將如何鋪設在矽片上,並測量電路在壓力下的功能。
簽署(DFM – DFT 和製造)#
簽署指的是在設計流程的不同階段對晶片進行確認和批准。通常,簽署涉及到多個階段和多個方面的確認,以確保設計在滿足規格要求的情況下能夠正常工作,並且符合預期的性能指標。
- 前仿真(功能仿真)
在設計的電路進入佈局布線前應檢查其功能是否符合設計要求,這一仿真驗證稱之為第一次簽署。
- 後仿真(時序仿真)
設計經過佈局布線之後,使用 EDA 工具進行寄生參數提取,形成精確的後佈局電路網表,對此網表做時序仿真,來檢查時序行為是否符合要求,這一過程稱之為第二次簽署。之後就可以進入 foundry 流片生產了。
簽署分析做的是否完整和完備對 IC 產品的質量是至關重要的,若在這個階段查找到問題並加以修正要比在生產階段的花費要低廉很多,所以各個 IC 公司都非常重視這個過程,EDA 廠商也都有自己完整的用來做簽署的工具集。
比較合適的方式是將簽署分析集成到 IC 設計的流程中,與主體的設計工作形成一個迭代,以保證設計的質量。簽署階段需要檢查的 check-list 包含:時序、信號完整性、功耗、IR 降、電遷移、寄生參數提取、DRC(設計規則檢查)、LVS(版圖與電路圖一致性檢查)、噪聲、片上熱量分析等。這些項目的檢查分析,可以在一個集成的環境中完成,如 Virtusos 或 Customer Designer。有些人把它稱為 in-house 簽署。
總的來說:
晶片 tapeout 前會利用工具做各種檢查。只有這些檢查通過了,我們的晶片才有可能順利流片,然後再將設計送交 fab 製造。所有會影響晶片性能或可製造性的關鍵參數都要根據 "golden signoff" 質量工具(包括 DFM 和 DFT)的結果進行驗證。
- DFM: 設計為製造
- DFT: 設計為測試
驗證完成後,最終設計數據將被送到半導體代工廠進行製造。設計文件以及代工廠特定的指導方針和要求將被發送到半導體工廠。一旦設計完成,半導體製造流程就開始了,包括晶圓加工、光刻、蝕刻和封裝,將矽晶圓轉化為集成電路。
總結#
粗略地說,數位集成電路設計可分為三個部分。
- 電子系統級設計:這一步創建用戶功能規範。用戶可以使用多種語言和工具來創建這一描述。示例包括C/C++模型、VHDL、SystemC、SystemVerilog、交易級模型、Simulink和MATLAB。
- RTL 設計:這一步將用戶規範(用戶希望晶片做什麼)轉換為寄存器轉移級(RTL)描述。RTL 描述了晶片上數位電路的確切行為,以及與輸入和輸出的互連。
- 物理電路設計:這一步將 RTL 和可用邏輯閘的庫(標準單元庫)結合,創建晶片設計。這一步涉及使用IC 佈局編輯器、佈局和平面規劃,確定使用哪些閘,定義它們的位置,並將它們連接起來(時鐘時序綜合、路由)。⭐
注意:RTL 負責讓晶片做正確的事情。而 PD 完全不影響功能(如果設計正確的話),但決定了晶片的運行速度和成本。