芯片開發(fā)有多難?四個設計步驟
概述
近年來,芯片開發(fā)成為主要關注點,許多成熟公司都在推進內部芯片項目。這創(chuàng)造了許多角色。與硬件工程師相比,軟件開發(fā)人員的工作范圍更窄,但發(fā)揮著重要作用。軟件通常參與需求、架構和驗證。本文根據(jù)作者的經(jīng)驗概述了基本芯片設計流程,并重點介紹了幾個經(jīng)常提到的技術瓶頸。
本文重點關注需求和設計階段;制造和包裝則由其他團隊和供應商負責。
1. 市場需求
開發(fā)芯片必須有需求,即客戶的應用場景。在當前的科技時代,電子技術被廣泛應用;凡是印刷電路板的地方,都存在潛在的芯片需求,例如手機、電腦和智能電器。
在明確需求下,團隊會推導出所需的硬件模塊、性能目標以及支持的軟硬件技術。架構師設計系統(tǒng)架構并制作規(guī)范文檔。規(guī)范定義了所有功能和需求,并成為后續(xù)芯片設計的基礎。
1.1 EDA與仿真工具
在架構設計過程中,可以通過仿真如QEMU進行軟件驗證,以檢查應用程序是否運行。集成電路廠商通常提供IP集成工具,純粹用軟件建模SoC,例如VDK(虛擬化器開發(fā)套件)。VDK 是一種電子設計自動化(EDA)工具。EDA是一項復雜且關鍵的技術,涵蓋設計、驗證和制造。尤其是驗證,能夠降低錯誤成本并縮短開發(fā)周期。
QEMU支持有限的芯片模型集,擴展芯片需要更改源代碼。像VDK這樣的工具提供了圖形界面,方便添加IP模型。許多IP是廠商私有且支持不廣,因此IP廠商通常為客戶提供集成和驗證工具。
芯片開發(fā)周期很長。在需求階段的早期,一些軟件已經(jīng)可以在QEMU或VDK上開發(fā)。依賴SoC IP的應用可以在數(shù)據(jù)流層面進行,在硅片支持業(yè)務邏輯之前。早期的軟件工作減少了后續(xù)的集成任務,并允許對軟件方法的早期驗證。如果軟件方法不可行,SoC可以提前調整;后期硬件更換成本更高且風險更大,尤其是在磁帶輸出之后。
1.2 關于建筑師
數(shù)字集成電路設計是一個漫長的過程。例如,移動基帶工程師根據(jù)3G、4G和5G的大量協(xié)議文檔進行工作。架構和實現(xiàn)角色通常包括:
- 架構師決定哪些協(xié)議部分在軟件中實現(xiàn),哪些在硬件中實現(xiàn)。
- 算法工程師研究協(xié)議并選擇實現(xiàn)算法。
- 設計工程師將算法轉化為RTL。
- 驗證工程師創(chuàng)建測試向量并驗證RTL的功能和性能。
- 數(shù)字實現(xiàn)工程師根據(jù)PPA(功耗、性能、面積)目標將RTL轉換為GDS。
- 鑄造廠負責制造和包裝;大多數(shù)公司租用第三方測試設備進行生產(chǎn)測試。
架構師定義團隊其他成員使用的高層結構和需求。
2. 芯片設計概述
芯片設計分為前端(邏輯設計)和后端(物理設計)。
許多步驟看似復雜,但借助廠商提供的IP和工具,許多工作通過圖形界面完成。大多數(shù)商業(yè)EDA工具和流程來自非本地供應商,這影響了不同市場的工具可用性和成本。一些廠商提供閉源商業(yè)工具;本地供應商可能會更快地將供應商工具分發(fā)給附近客戶,有時能促使本地快速采用或重新實施。
3. 前端設計
- RTL 設計
- 驗證
- 靜態(tài)時序分析
- 覆蓋
- ASIC邏輯綜合
3.1 RTL 設計
首先選擇目標工藝節(jié)點。
RTL(寄存器傳輸級別)設計使用硬件描述語言,如VHDL、Verilog和SystemVerilog,來描述寄存器之間的數(shù)據(jù)傳輸。RTL 代碼實現(xiàn)了功能模塊,即 IP 塊。IP分為數(shù)字IP和模擬IP。
SoC集成工程師將IP模塊組合成完整的SoC。典型的SoC包含CPU、DSP、USB外設和內存等IP。RTL 設計還包括內置自檢(BIST)和為測試設計(DFT)的支持。

靜態(tài)代碼檢查通過lint和Spyglass等工具執(zhí)行,以強制執(zhí)行設計規(guī)則、編碼風格、DFT實踐、命名規(guī)范以及與合成相關的檢查。
3.2 驗證
核實是確保正確性和完整性的最重要階段。驗證通常占開發(fā)進度的50%至70%;驗證工程師的數(shù)量通常是設計工程師的2到3倍。驗證級別包括模塊、子系統(tǒng)和系統(tǒng)。驗證方法包括仿真和形式性檢查。
軟件開發(fā)人員再次參與其中。在QEMU和VDK上運行的代碼可以在RTL模擬中運行,從而更接近硬件??缙脚_驗證雖然重復,但非常有價值??珧炞C平臺的代碼重用非常重要:大型平臺差異可在編譯時處理,運行時標志或配置文件的細微差異則可處理。實用建議:偏好配置文件,如XML、DTS或純配置文件;避免使用過多的條件宏;使用可適配多種驗證平臺的調試構建,并使用構建腳本自動編譯時選擇。
3.3 靜態(tài)時序分析(STA)
靜態(tài)時序分析將時序模型應用于設計,以驗證是否滿足時序約束。主流的STA工具是Synopsys PrimeTime。
STA目的:
- 確定芯片的最大工作頻率。
- 指導合成、映射、布線和布線,以減少延遲并提升頻率。
- 檢查是否滿足時間約束。
- 找出時間違規(guī)并提供具體糾正理由。
- 分析時鐘質量,包括抖動、偏移和占空比失真,及其對目標模塊的影響。
3.4 覆蓋范圍
覆蓋范圍是驗證完整性的主要衡量標準。覆蓋目標通常分為代碼覆蓋和功能覆蓋:
- 代碼覆蓋率檢查未測試或冗余的RTL代碼。
- 功能覆蓋檢查是否已通過自定義覆蓋容器實現(xiàn)指定的特征和場景。
簽字時,團隊必須為覆蓋不足作出合理解釋,以確保硅片不存在功能性風險。
3.5 ASIC合成
邏輯綜合將RTL轉換為門級網(wǎng)表。合成需要像面積和時序目標等約束條件。一個常用的工具是Synopsys設計編譯器。所得的網(wǎng)表會傳遞給后端團隊。
合成完成后,前端工作基本完成。
4. 后端設計
- 邏輯綜合
- 形式驗證
- 物理實現(xiàn)
- 時鐘樹合成(CTS)
- 寄生蟲提取
- 布局物理驗證
4.1 邏輯綜合
關于前端合成過程,請參見第3.5節(jié)。
4.2 形式驗證
- 驗證各階段的功能一致性。
- 不要驗證模擬電路的正確性。
- 任何設計變動后就跑。
形式驗證確保RTL與合成網(wǎng)表之間的一致性。通常在合成和布置布線后進行。一個常用的工具是Synopsys Formality。
4.3 物理實現(xiàn)
物理實施包括:
- 平面規(guī)劃
- 放置
- 路由
平面規(guī)劃是一個靈活但關鍵的步驟,需要權衡許多權衡。布置和布線的目標是優(yōu)化芯片面積、實現(xiàn)時序閉合以及保持路由可行性。典型工具包括 IC 編譯器和 Encounter。平面圖可視化對于評估權衡非常重要。

配置配置標準單元、輸入輸出焊盤和宏以實現(xiàn)電路邏輯。投放目標是高利用率、短互連和有利時機;這些目標常常相互沖突,需要妥協(xié)。

布線在設計規(guī)則和電氣約束下連接單元和I/O焊盤,如層限制、線寬和間距要求。
4.4 時鐘樹合成(CTS)
CTS是時鐘信號的路由和緩沖。由于時鐘是全局控制信號,其分布應平衡,使寄存器時鐘到達時間偏移最小。這就是為什么時鐘通常采用專用路由和特殊處理。
4.5 寄生提取
導線表現(xiàn)出電阻,相鄰的導線通過電容耦合。這些寄生效應會導致噪聲、串擾和反射,從而降低信號完整性。提取寄生參數(shù)并重新分析設計對于識別和修復信號完整性問題非常重要。一個常見的工具是Synopsys Star-RCXT。
4.6 布局物理驗證
物理驗證在功能和時間方面驗證已完成的布局,通常包括:
- LVS(布局與原理圖):確認布局與合成網(wǎng)表一致。
- DRC(設計規(guī)則檢查):驗證間距、寬度及其他工藝規(guī)則。
- ERC(電氣規(guī)則檢查):檢測短路、開路及其他電氣違規(guī)。
后端流程還包括功率分析和可制造性設計(DFM)檢查。最終的物理布局以GDSII格式交付晶圓廠進行晶圓制造。

制造、包裝和最終測試后,生產(chǎn)交付給客戶的實體芯片。


微信小程序
浙公網(wǎng)安備 33010502006866號