計變革)
EDA這個詞圈外人聽起來像是某個冷門學術(shù)縮寫但只要你碰過芯片設(shè)計就會知道它是整個電子產(chǎn)業(yè)的命門之一。Electronic Design Automation電子設(shè)計自動化從原理圖繪制、仿真驗證到布局布線、物理簽核所有芯片在設(shè)計階段要走的每一步背后都靠這套工具鏈在撐。這幾年我身邊越來越多的同行開始聊同一個話題EDA接下來到底往哪走AI進來之后驗證工程師和物理設(shè)計工程師會不會被替代云上跑EDA靠不靠譜Chiplet把設(shè)計流程攪了個底朝天傳統(tǒng)工具鏈還跟得上嗎這篇文章不是行業(yè)報告也不是廠商軟文。我就以一個常年泡在設(shè)計工具鏈里的工程師視角把這些年看到的、親身踩過的、以及圈子里討論最激烈的一些變化整理出來。內(nèi)容主要圍繞AI輔助設(shè)計、云原生流片、Chiplet帶來的流程重構(gòu)、還有開源工具鏈這幾個方向。適合正在做數(shù)字IC前端/后端、對工藝和工具選型有困惑的工程師也適合想入行但不知道從哪里開始準備的在校學生。1. 為什么所有做芯片的人都在盯著EDA這個老行當1.1 一個被嚴重低估的行業(yè)底座很多人對EDA的印象還停留在畫版圖的軟件上實際上它早就不是單純的CAD工具了。一顆先進工藝芯片的設(shè)計流程里從前端的RTL仿真、邏輯綜合到后端的布局布線、時鐘樹綜合、時序收斂、物理驗證、可制造性分析再到最終tapeout之前的簽核每一步都需要EDA工具深度參與。沒有可靠的EDA三四百億晶體管的SoC根本不可能手工完成——這就像沒有CAD軟件就造不出摩天大樓一樣道理是通的。但EDA的價值不止于替代手工。它還是工藝和設(shè)計之間的一座橋梁。每一代新工藝節(jié)點推出時Foundry會提供PDK而EDA工具要把PDK里的規(guī)則、模型、參數(shù)完整消化變成設(shè)計人員能直接調(diào)用的約束和檢查項。換句話說工藝能往前走多遠很大程度上取決于EDA工具能不能第一時間吃透這套新規(guī)則。這也是為什么新工藝節(jié)點真正量產(chǎn)比工藝研發(fā)晚很多年因為工具鏈、IP和設(shè)計流程都得跟著重新磨合一遍。1.2 摩爾定律放緩EDA反而成了突圍的關(guān)鍵過去幾十年芯片性能的增長很大程度靠工藝縮微來拉動。到了5nm、3nm這個區(qū)間單純靠晶體管尺寸縮小來換PPA功耗、性能、面積已經(jīng)越來越吃力。漏電、發(fā)熱、邊緣效應、工藝偏差全都在惡化。于是行業(yè)里出現(xiàn)了一個很明顯的轉(zhuǎn)向靠聰明的設(shè)計來彌補工藝的不足。而聰明的設(shè)計要落地靠的就是更聰明的EDA算法和更高效的設(shè)計方法論。舉一個具體的例子。先進工藝節(jié)點下標準單元庫里的單元數(shù)量動輒上千布局布線要滿足的約束有幾百條設(shè)計空間是天文數(shù)字。人工嘗試每一種方案組合根本不可能。以前的做法是靠工程師經(jīng)驗定策略再讓工具去跑。現(xiàn)在越來越多的做法是讓EDA在早期階段用機器學習模型快速預測不同策略的PPA結(jié)果篩掉明顯不可行的方案再對少數(shù)候選做精細化實現(xiàn)。這樣一來真正決定芯片競爭力的事情有一半發(fā)生了EDA工具內(nèi)部而不只是工藝廠手里。EDA自然就成了整個半導體產(chǎn)業(yè)往前突圍的關(guān)鍵卡點。1.3 為什么說未來這個命題現(xiàn)在談才正當其時EDA這個行業(yè)有幾十年歷史了但它的底層邏輯——以圖形界面、規(guī)則腳本、單機運行為中心的交互模式——十幾年來其實沒有特別大的變化。真正讓我覺得風向變了的是最近三五年里幾股力量幾乎同時爆發(fā)AI/ML的工程化落地速度越來越快云計算的彈性算力讓大規(guī)模分布式任務不再是大公司的專利Chiplet模式把設(shè)計流程從單芯片擴展到了多芯粒系統(tǒng)級開源工具鏈也悄悄補齊了很多以前沒法用的短板。這四股力量疊加在一起足以重寫EDA工具的開發(fā)方式、交付方式和工程師的使用方式。所以這篇文章談論的未來不是某個廠商PPT里的概念而是每一個設(shè)計團隊在未來兩三年里就會碰到的現(xiàn)實。工具鏈怎么選、流程怎么搭、團隊需要什么新技能都是馬上要面對的問題。2. AI入場EDA正在從規(guī)則驅(qū)動走向數(shù)據(jù)驅(qū)動2.1 AI到底在EDA里干了什么活現(xiàn)在只要聊EDAAI是繞不開的話題。但跟很多媒體的想象不同AI在EDA里的落地并不是給個需求AI自動生成芯片這種全自動魔法它更多是滲透到具體環(huán)節(jié)里的某項任務替代或者輔助原來靠專家經(jīng)驗或暴力計算完成的步驟。我梳理了一下目前技術(shù)成熟度比較高、已經(jīng)在實際流程里能看到的落地場景任務階段AI介入方式效果宏單元布局用強化學習探索宏擺放位置替代隨機搜索和人工試錯收斂更快布線擁塞更少時序預測在綜合后/布局后用ML模型快速預測某條路徑能否滿足時序不必等完整布線減少迭代輪次節(jié)省數(shù)小時到數(shù)天DRC熱點檢測用圖像識別-like的模型掃描版圖提前標記可能產(chǎn)生DRC違例的區(qū)域減少后端ECO循環(huán)功耗優(yōu)化用ML預測不同門控策略對功耗的影響更快找到低功耗方案驗證回歸對回歸測試結(jié)果做失敗分組和根因聚類調(diào)試效率成倍提升表格里這些不是學術(shù)論文里的概念而是過去兩三年里幾大EDA廠商陸續(xù)release到正式版本里的功能還有不少開源項目也在做類似的事情。比如宏單元布局這一塊強化學習的思路就是讓agent不斷嘗試擺放宏環(huán)境反饋Congestion、時序、面積作為獎勵信號訓練一輪之后agent能學會避開常見坑比純退火算法高效得多。2.2 一個我能直接說上話的小例子ML預測時序收斂我自己的團隊之前遇到過一個很典型的case。某個模塊有幾十萬級的標準單元布局完成之后跑一次完整布線要十幾個小時每次改動floorplan都要重跑迭代一兩次還能接受來回折騰七八次就真的肉疼了。后來我們接入了一個ML-based的擁塞和時序預估流程在布局完成后用歷史布線數(shù)據(jù)訓練出來的模型先預測出哪些區(qū)域大概率會有長線、哪些路徑大概率違例。然后把有限的資源集中在這些熱點上做微調(diào)比如調(diào)整宏擺放、加約束、改驅(qū)動強度。第一次用的時候我心里其實沒底怕模型不準導致判斷錯誤。但跑了一版對比后發(fā)現(xiàn)ML給出的熱點區(qū)域和實際布線后的violation分布重合度能到八成以上。原本需要四五輪布線迭代的模塊現(xiàn)在兩輪就能收斂。這個例子給我的感覺是AI在EDA里的價值不是取代工程師判斷而是把工程師從大量重復的等待和試探里解放出來讓大家有更多精力去處理真正需要人腦的架構(gòu)決策和約束設(shè)計。2.3 但AI不能碰的底線可控性和物理約束AI這么香是不是以后物理設(shè)計工程師要全員轉(zhuǎn)行做調(diào)參俠了我的判斷是短期還看不到這種可能性。原因在于芯片設(shè)計對結(jié)果的可控性和可解釋性要求極其嚴格。一顆芯片只要一個功能模塊出錯可能就是幾百萬美金的流片費用打水漂。AI模型再有概率優(yōu)勢也無法保證每次預測都對而設(shè)計簽核階段需要的恰恰是確定性。所以現(xiàn)在的主流做法是把AI放在預篩和引導的位置而不是判決的位置。也就是AI給出推薦和風險提示最終的決定還是要走傳統(tǒng)工具里可追溯、可解釋的簽核流程。這個邊界是工程倫理也是現(xiàn)實約束。誰要是把命運完全交給某個黑盒模型而不做物理驗證那遲早要付出代價。3. Chiplet與異構(gòu)集成EDA工具鏈要打散重來3.1 從單片SoC到多芯粒設(shè)計流程徹底變了Chiplet是這兩年最熱的方向之一但很多人只把它理解成把大芯片切成小塊然后封裝在一起這個理解太簡化了。實際做起來會發(fā)現(xiàn)原來的芯片設(shè)計流程是圍繞一顆die組織的RTL設(shè)計→綜合→布局布線→簽核→tapeout。到了Chiplet時代變成了多顆die 互連基板的系統(tǒng)級設(shè)計。每一顆die可以用不同的工藝、不同的成熟度甚至來自不同的供應商而它們之間要通過die-to-die接口在封裝基板上互連。這對EDA的影響是結(jié)構(gòu)性的。我們需要的不是把單die流程照搬而是新一套支持多die協(xié)同設(shè)計的數(shù)據(jù)模型、抽象層級和驗證方法。比如一顆die在單獨做物理驗證時是收斂的片間互連上之后會不會產(chǎn)生新的時序問題die-to-die接口的latency和bandwidth約束怎么在整芯片級別進行反映這些都不是老工具順手能解決的。3.2 芯粒間互連的仿真與簽核一個全新的問題域我在幫團隊評估Chiplet流程時最頭疼的不是單die的設(shè)計而是多die之間的聯(lián)合仿真和簽核。以前每個die單獨做好signoff就萬事大吉現(xiàn)在還要額外考慮多die聯(lián)合時序分析不同die的時序庫基于不同工藝需要統(tǒng)一的時序抽象比如用接口時序budget的方式做近似熱-應力耦合分析多顆die堆疊或并列在封裝里發(fā)熱和熱應力互相影響這個問題單die時代基本不用管電源完整性跨die傳遞多die共享一個供電網(wǎng)絡時動態(tài)壓降的分析規(guī)模會暴漲需要新的層次化處理方法可測試性設(shè)計多die的掃描鏈怎么串、怎么隔離、如何測試片間互連都需要新的DFT方案這些事我評估下來現(xiàn)成的商業(yè)工具雖然陸續(xù)開始在發(fā)力支持但成熟度遠不如單芯片流程很多地方還得團隊自己寫腳本和流程來兜底。這也是為什么Chiplet項目目前只有大廠和少數(shù)先進封裝團隊敢量產(chǎn)中小企業(yè)想切入工具鏈的學習成本和集成成本都相當高。3.3 我踩過的一個坑跨工藝混合仿真的接口混亂說一個我自己的實際教訓。之前幫客戶做一個兩die封裝方案一顆是成熟工藝的模擬die一顆是先進工藝的數(shù)字die。數(shù)字die的IO模型用的是最新的接口時序格式模擬die那邊的模型卻是老式的IBIS模型。兩邊本來各自工作得很好但跨die做聯(lián)合仿真的時候模型格式對不上接口寄生參數(shù)也套錯了結(jié)果片間信號的時序margin評估出來偏差特別大。后來我們花了一整個迭代周期重新統(tǒng)一了接口建模規(guī)范才把仿真結(jié)果修正到靠譜范圍。這個坑給我的教訓是Chiplet時代接口建模這件事必須從項目第一天就拉通不能等兩邊各自跑完再湊。誰負責定義die-to-die接口行為模型、用什么格式、時序budget怎么分都要在項目啟動時寫清楚。別指望EDA工具能自動幫你兼容一切——至少在目前這個階段做不到。4. 云端EDA與開源工具中小團隊的第二條命4.1 云上跑EDA不是把軟件搬到服務器那么簡單EDA工具歷來依賴本地高性能工作站和機房里的License服務器。一個Designer手上一臺機器跑一個大的布線任務可能就要一個晚上。這幾年云計算起來之后大家都想著能不能把EDA搬到云上按需開幾百個核一起跑License按小時租用完就釋放。聽起來很美但真做起來坑一點都不少。首先是數(shù)據(jù)量的問題。一個中等規(guī)模的芯片項目flow跑到中間階段產(chǎn)生的數(shù)據(jù)有幾十TB很正常跨地域傳到云端網(wǎng)絡帶寬直接就是瓶頸。其次是EDA工具的License模式很多傳統(tǒng)廠商的License并不支持云端動態(tài)擴展想跑大規(guī)模并發(fā)得把License改成基于云的彈性授權(quán)牽扯到商業(yè)談判和架構(gòu)改造。再有就是安全合規(guī)芯片設(shè)計數(shù)據(jù)是高度敏感的上云之前資產(chǎn)管理、租戶隔離、審計流程全都得從頭搭。我們曾經(jīng)做過一個PoC光把環(huán)境安全和數(shù)據(jù)同步方案理順就花了兩周真正跑flow反而沒花多少時間。4.2 開源工具鏈的可用性O(shè)penLane、Verilator這些能頂多久跟商業(yè)EDA的厚重感不同開源EDA工具這幾年進展很快已經(jīng)不再是教學玩具的水平了。比如前端仿真里的Verilator編譯型仿真器跑大規(guī)模RTL testbench的性能比很多商業(yè)仿真器還要快業(yè)界不少大廠都在內(nèi)部大規(guī)模使用。綜合方面有Yosys物理實現(xiàn)有OpenLane這套基于OpenROAD和Magic的方案能直接從RTL跑到GDSII雖然工藝支持目前還集中在一百多納米的開放PDK上但作為學習、快速原型和低端產(chǎn)品驗證已經(jīng)可以用了。我自己搭過一套完整的開源RTL-to-GDS流程跑通一個小的八位CPU核心。坦白說過程中遇到不少小毛病比如腳本兼容性、PR工具對復雜約束的支持不足、以及后仿和實際硅片的偏差。但考慮到這套東西完全免費、文檔開放、社區(qū)活躍對于一個學生或者小團隊做預研價值非常大。而且它的模塊化設(shè)計讓你能清楚看到每一步的處理邏輯——這一點對學習EDA原理尤其有幫助商業(yè)工具反而做不到。4.3 我搭建一套輕量級開源EDA流程的實操手記如果你也想試試開源EDA流程我給你一個最小可行路徑。我用的環(huán)境是Ubuntu 22.04全部基于Docker容器方便還原和清理。安裝Docker并拉取OpenLane的官方容器鏡像注意帶tag的穩(wěn)定版本不要直接pull latest否則PDK版本可能跟腳本不匹配。配置PDKOpenLane會下載SkyWater 130nm PDK下載過程在網(wǎng)絡差的時候容易中斷建議掛代理或直接手動下載PDK包放到指定目錄再啟動容器。跑一個示例設(shè)計官方倉庫里有跑通的示例比如openlane/examples/spm在容器內(nèi)執(zhí)行make mount之后用./flow.tcl -design spm來跑。我第一次跑的時候卡在時序約束文件的語法上后來把SDC文件里過時的命令刪掉才通過。檢查結(jié)果用開源版KLayout查看生成的GDS確認版圖沒有明顯的短路或懸空問題。整個過程從零開始到看到GDS我大概花了一整天。對初學者來說最難的不是命令而是理解那一堆配置參數(shù)之間的依賴關(guān)系。所以我建議別一上來就改參數(shù)先原樣跑通再小步調(diào)優(yōu)。這個先跑通再優(yōu)化的思路放到商業(yè)工具學習里也一樣適用。5. 未來工程師怎么接招工具在變底層能力才是護城河5.1 最關(guān)鍵的軟技能變成了抽象思維工具和流程遲早會變但對設(shè)計本質(zhì)的理解不會過時。我越來越覺得未來幾年里最吃香的EDA從業(yè)者不是某個按鈕按得最熟的人而是能用抽象思維快速理解新模型、新抽象層級的人。Chiplet要求你同時理解數(shù)字/模擬/封裝/熱AI輔助設(shè)計要求你能理解模型訓練數(shù)據(jù)從哪來、邊界在哪里云原生流程要求你能從系統(tǒng)角度考慮計算資源、存儲和License的策略。這些能力都不是靠熟練操作某一款軟件能獲得的。抽象思維體現(xiàn)在哪里我覺得就是能把一個看起來很復雜的問題拆解成一層一層的子問題最后落到這個環(huán)節(jié)需要什么輸入、產(chǎn)出什么、由誰負責的程度。比如看到一個AI輔助布線工具你不會只是點個按鈕看結(jié)果而是要能畫出一條鏈路訓練數(shù)據(jù)從哪個工藝來模型輸出怎么映射成約束如果預測錯了哪個環(huán)節(jié)能兜底這種思維模式是跨工具、跨流程、跨公司的通用能力。5.2 給自己的知識棧打個補丁先學什么再學什么如果你現(xiàn)在還站在門外或者剛?cè)胄幸粌赡晡蚁敕窒硪粋€學習路徑上的建議。第一優(yōu)先級是打好數(shù)字電路和計算機體系結(jié)構(gòu)的基礎(chǔ)RTL仿真和時序概念必須吃透。第二優(yōu)先級是掌握腳本語言現(xiàn)代EDA流程已經(jīng)離不開Tcl和Python前者用來跟工具交互后者用來做數(shù)據(jù)分析和流程自動化。第三優(yōu)先級才是學具體工具而且至少要學一款商業(yè)工具加一款開源工具形成對照理解。以我個人的經(jīng)驗來說很多工程師把順序搞反了一上來就猛學某款工具的操作技巧結(jié)果底層概念不牢固換一款工具就得從頭學起。反過來如果你懂時序、懂約束、懂綜合原理換工具頂多是熟悉界面的時間成本。5.3 一個能持續(xù)跟上趨勢的笨辦法跟社區(qū)走自己動手做最后說一個我自己的土辦法不一定高大上但很管用保持跟開源社區(qū)和行業(yè)會議的內(nèi)容同步每個季度花一點時間動手做一個小東西。可以是用開源工具鏈實現(xiàn)一個IP core的GDS也可以是拿ML庫訓練一個小模型去預測某個標準單元的延遲。目的不是為了跟別人比什么而是讓自己始終處于動手實踐的狀態(tài)。EDA行業(yè)變化雖然開始加速但很多新東西的苗頭都會先在社區(qū)、論文和預印本里出現(xiàn)跟住這些源頭你就能比別人早一步看到未來。我見過太多人等著廠商發(fā)培訓課件其實完全可以自己去蹭開源工具倉庫的issue區(qū)、看別人的設(shè)計復盤日志。那些東西雖然亂但信息密度極高而且真實。你要是能堅持半年再回頭看現(xiàn)在的EDA工具鏈思路會完全不一樣。