“一直想寫一些關于新的設計范式(不只是 AI)的內容,但遲遲沒有動筆(主要我自己也無法說服自己該怎么選)。其實用代碼來進行電子設計在海外并不是什么新的概念,JITX 的商業化已運作了幾年,YC 更是連續投資代碼生成 EDA 圖紙的初創公司。LLM 的飛速進步似乎又印證了這一范式的必然性。但事實真是如此嗎?硬件工程師長期養成的習慣會在這波技術革新中被徹底顛覆嗎?”
立即報名參加 KiCon Asia 2025,與 KiCad 全球開發者和設計精英面對面,共同探索電子設計的未來!
會議官網:https://kicon.kicad.org/asia2025/zh-cn/國內的小伙伴可以在電子發燒友網站報名(可以提供發票):
https://bbs.elecfans.com/jishu_2495997_1_1.html引言在國內可能感覺不是很明顯,但在歐美,電子設計自動化(EDA)領域正處在一場深刻的范式變革之中。傳統的、以圖形用戶界面(GUI)為中心的點選式設計方法,正面臨著一種源自現代軟件工程實踐的、以代碼為先的全新設計哲學的挑戰:“硬件即代碼”(Hardware as Code, HaC),大家可能聽我聊過 skidl:SkiDL:使用 Python 設計電路原理圖,這是一個比較早期踐行 HaC 并獲得認可的個人項目。但在短短幾年內,又迅速出現了大量類似的產品,比如商業化程度比較高的 JITX,采用“設計即服務”(Design-as-a-service)理念的開源王者 atopile、亦或是剛融了 1400萬美金的新星 diode. computer。這些新工具與 KiCad、Altium Designer 等傳統 EDA 巨頭相比,不僅僅是工具的創新,更是一場設計理念的轉變,其深度借鑒了成熟的“基礎設施即代碼”(Infrastructure as Code, IaC)和 DevOps 原則。代碼驅動的方法在自動化、可重用性和設計驗證方面展現出巨大潛力,但同時也面臨著陡峭的學習曲線和傳統工程師群體文化適應性的嚴峻挑戰。
盡管在短期內完全取代傳統EDA工具的可能性不大,但代碼驅動和人工智能(AI)增強工具的融合已是不可逆轉的趨勢,它將重新定義未來十年電子工程的生產力邊界。
硬件設計的“軟件化”
現代電子系統設計的復雜性正以指數級速度增長,同時市場對產品迭代速度的要求也日益嚴苛。從高速接口、BGA 封裝到復雜的片上系統(SoC),這些挑戰正將傳統的、依賴大量人工操作的圖形化設計范式推向極限。在這種壓力下,一種借鑒了現代軟件工程思想的新方法應運而生,其核心是硬件設計的“軟件化”。
這場變革的哲學和技術基礎,源于軟件開發領域一次成功的革命:基礎設施即代碼(IaC:Infrastructure as Code)。IaC 的核心理念是通過機器可讀的定義文件來管理和配置計算基礎設施,而非通過物理硬件配置或交互式工具 。這種方法將網絡、虛擬機、負載均衡器等基礎設施元素,用高級語言進行編碼,從而實現了標準化、自動化和版本化管理 。
IaC為軟件開發運維(DevOps)帶來了革命性的效率提升,這些優勢正是當前硬件設計領域所渴求的:
-
速度與效率:通過自動化取代耗時的手動配置,實現了基礎設施的快速部署、拆除和擴展,從而加速了軟件開發、測試和發布的整個生命周期 。
-
一致性與可靠性:通過代碼定義基礎設施,確保了開發、測試、生產等所有環境的一致性,從根本上消除了因手動操作失誤或“配置漂移”導致的問題 。
-
版本控制與協作:將基礎設施定義文件像應用程序代碼一樣納入Git等版本控制系統,使得所有變更都有跡可循,支持同行評審(Pull Request)和快速回滾,極大地促進了團隊協作。
-
模塊化與可重用性:將基礎設施分解為可重用的模塊化組件,減少了代碼重復,提高了可維護性,并簡化了跨項目和環境的管理
“硬件即代碼”(Hardware as Code, HaC)正是將 IaC 的原則應用于電子硬件(原理圖、PCB)設計的過程。其目標是將設計流程從一種圖形化的、命令式的過程(“在這里點擊,畫一條線”)轉變為一種聲明式的、基于代碼的過程(“我需要一個具備這些參數的電源模塊”)。
這一轉變并非憑空出現,而是軟件工程領域成功經驗的必然延伸。當前硬件設計所面臨的可擴展性、一致性和自動化等挑戰,與十年前軟件基礎設施所面臨的挑戰在本質上是相同的。因此,HaC 運動并非從零開始創造一種新哲學,而是進行了一次成功的“領域遷移”:將一個更成熟領域(軟件工程)中經過驗證的、成熟的解決方案,應用到一個正面臨類似復雜性挑戰的領域(硬件設計)。這解釋了為何 JITX、atopile 等新工具不約而同地使用“可重用模塊”、“版本控制”和“自動化驗證”等軟件工程術語作為其核心賣點 ,因為這套行之有效的方法論早已被 DevOps 的成功所證明。
傳統 EDA 工作流及優缺點
以 KiCad 為例,一個KiCad項目是一個包含原理圖(.kicad_sch)、PCB(.kicad_pcb)、庫文件和項目設置的文件夾,所有設計信息都集中于此。設計遵循以下路徑:- 原理圖繪制 (Eeschema):從庫中放置符號,繪制導線連接,并通過電氣規則檢查(ERC)來發現基本的設計缺陷 。
- 符號與封裝分離:KiCad 的一個顯著特點是,原理圖中的符號在初始階段是通用的,其物理封裝(footprint)在后續步驟中才被指定。KiCad 中沒有符號和封裝綁定在一起的“器件”概念 。
- 原理圖同步到 PCB:這是連接邏輯設計(原理圖)與物理設計(PCB布局)的關鍵步驟,生成的文件包含了所有元件及其連接關系 。
- 電路板布局布線 (Pcbnew):在此階段,設計師定義電路板外形,放置元件封裝,手動或使用基礎的自動布線器進行布線,創建覆銅區域,并運行設計規則檢查(DRC)以確保可制造性
- Gerber文件生成:最后,生成用于交付給制造商的行業標準Gerber文件。

優點和缺點傳統EDA工具經過數十年的發展,形成了其獨特的優勢,但也暴露了難以克服的系統性缺陷。優點:- 視覺直觀性:這是傳統 EDA 最核心的優勢。原理圖是一種強大的、被全球電子工程師普遍理解的語言。一張繪制精良的原理圖能夠清晰地傳達設計意圖、信號流和功能模塊,這是原始代碼難以比擬的 。
- 成熟與穩定:數十年的發展積累了功能極其豐富的工具集、龐大的元件庫以及與全球制造業無縫對接的成熟流程 。
- 所見即所得的控制力:設計師對畫布上的每一個圖形元素都有著像素級的精確控制。這對于寄生參數和物理布局本身就是電路設計一部分的復雜模擬或高頻電路來說非常重要 。
- 版本控制困難:這是傳統 EDA 比較大的問題。其文件格式本質上是圖形化數據庫,盡管以文本形式存儲,但對人類和版本控制工具(如Git)來說都難以閱讀和理解。
- 微小的圖形位置變動可能導致文件中大量、無語義的文本變更,使得 git diff 的結果幾乎無法解讀 。
- 由于合并工具無法理解設計的邏輯結構,嘗試合并不同分支的修改變得極其困難,且極易產生損壞的、無效的設計文件 。
- 重復性體力勞動:常用的電路模塊(如電源、指示燈)在每個新設計中都必須手動重繪或復制粘貼,這個過程既耗時又容易出錯。
- 有限的抽象與可重用性:雖然存在層次化圖紙等功能,但創建真正參數化的、可通過編程方式配置和實例化的可重用設計模塊,并非其核心能力。
- ERC 和 DRC 通常作為里程碑式的檢查點在設計后期運行,而不是在設計過程中持續進行,這使得錯誤可能在設計階段長時間存在。
現代與傳統 EDA 比較
|
特性維度 |
傳統EDA (KiCad/Altium) |
JITX |
atopile |
diode.computer |
|
主要范式 |
圖形化,所見即所得 |
代碼優先,聲明式 |
代碼優先,聲明式 |
AI驅動的服務 |
|
真理源 |
可視化的原理圖/PCB文件 |
源代碼 |
.ato 源代碼 |
高層級的規格說明 |
|
設計抽象 |
低 (層次化圖紙) |
高 (參數化模塊) |
高 (可配置模塊) |
極高 (自然語言/規格) |
|
可重用性 |
手動 (復制/粘貼, 代碼片段) |
高 (基于代碼, 參數化) |
高 (基于代碼, 包管理器) |
不適用 (服務內部) |
|
版本控制 |
差 (類二進制, 非語義差異) |
優秀 (原生Git工作流) |
優秀 (原生Git工作流) |
不適用 (內部管理) |
|
驗證 |
離散 (手動運行ERC/DRC) |
持續 (代碼內檢查, 隨變更運行) |
按需 (運行ato build時檢查) |
持續 (AI + 人機回環) |
|
自動化 |
有限 (腳本, 基礎自動布線器) |
高 (AI自動布線, 優化) |
中 (元件選擇) |
端到端 (從規格到電路板) |
|
學習曲線 |
工具高, 范式低 |
范式和語言均高 |
范式和語言均高 |
用戶低, 工具不適用 |
|
目標用戶 |
電子工程師, PCB設計師 |
專業電子工程師, 企業團隊 |
愛好者, 研發人員, 初創公司 |
希望外包設計的公司 |
|
生態系統 |
成熟, 庫龐大 |
成長中, 與現有EDA集成 |
新生, 依賴KiCad |
封閉, 專有 |
|
商業模式 |
許可證/訂閱(Altium), 免費(KiCad) |
訂閱, 企業版 |
開源, 服務 |
設計即服務 |
是否能夠可視化無疑是兩種范式最大的沖突點,接下來我們再仔細分析下兩種范式最核心的差異點:Git 的優勢與真正的協作版本控制是新舊范式的另一個差異點。在傳統 EDA 中,嘗試用 Git 合并兩個工程師對同一塊 PCB 的不同修改,是一場災難。由于文件格式的非語義性,Git無法理解設計的邏輯,合并操作極有可能導致文件損壞 。相比之下,JITX 和 atopile 的設計本身就是為版本控制而生 。整個電路板被描述為結構化的代碼,每一次修改都是可讀的、有意義的文本差異。這使得團隊可以像開發軟件一樣,使用分支(branching)和合并(merging)等工作流,讓多名工程師在同一塊電路板的不同功能模塊上并行開發,這在傳統EDA流程中是幾乎不可能實現的。構建即正確代碼驅動工具正在推動一個從“事后檢查”到“構建即正確”的范式轉變。在傳統流程中,DRC等驗證步驟通常在布局設計的最后階段才運行,錯誤可能在設計過程中潛伏數天甚至數周。而 JITX 的“永遠正確”理念,將驗證邏輯直接嵌入到設計代碼中。這意味著許多類別的錯誤從一開始就被工具的結構所阻止,而不是在事后被發現。例如,當一個模塊的輸出電壓范圍與另一個模塊的輸入電壓范圍不兼容時,連接操作在代碼編譯階段就會失敗,而不是等到最終的 ERC 檢查。抽象與可重用性新范式在設計重用方面實現了質的飛躍。在 Altium 或 KiCad 中,重用一個電源電路通常意味著復制一整張原理圖紙或設計片段 snippet,然后手動修改元件編號和參數,這個過程繁瑣且易錯。在 JITX 或 atopile 中,重用一個電源模塊則變成了在代碼中實例化一個類,例如
my_psu= PowerSupply(output_voltage=3.3V, max_current=2A)
這種抽象級別將設計單元從“一組圖形”提升為“一個可配置的對象”,極大地提高了效率和可靠性。設計師可以構建一個經過充分驗證的內部IP庫(以代碼形式存在),并在新項目中以極高的置信度快速調用。用戶體驗的鴻溝: 可視性與功能性盡管代碼驅動工具在技術上優勢明顯,但其最大的推廣障礙來自于用戶體驗和工程師文化。對于許多電子工程師,尤其是那些在模擬和射頻領域工作的專家來說,圖形化的原理圖不僅僅是連接關系的表示,它本身就是一種思考和調試的工具。信號的流動、功能模塊的劃分、元件的相對位置,這些視覺信息對于理解電路行為非常重要。在他們看來,用代碼描述一個模擬濾波器是“難以理解的”,因為這迫使他們在大腦中將代碼重新“編譯”成他們熟悉的原理圖形式。這是代碼驅動工具最主要的劣勢和采納門檻,也是傳統 EDA 工具最堅固的護城河。然而,對于具有軟件背景的工程師來說,代碼帶來的自動化、版本控制和規模化能力,其吸引力遠遠超過了學習新范式的成本。
未來展望
超越工具本身,這場變革將對電子工程行業和工程師的職業發展產生深遠影響。
何時采用代碼驅動設計?
代碼驅動設計并非萬能靈藥,其適用性取決于項目特性和團隊文化。
理想用例:
-
參數化設計:需要生成大量相似但不同配置的系統,如為不同傳感器配置生成測試板。
-
大型分布式團隊:基于Git的協作成為剛需,以支持并行開發。
-
設計自動化:目標是以編程方式生成數百個類似設計,而非手動繪制。
-
快速原型迭代:當迭代速度比對布局的精細控制更重要時,尤其是在早期產品探索階段。
不適用場景:
-
高性能模擬/射頻電路:在這些領域,手動的、直觀的布局本身就是電路性能的關鍵組成部分。
-
一次性的簡單設計:對于非常簡單的電路,建立代碼驅動環境的開銷可能超過其帶來的收益。
-
不具備編程能力的團隊:文化壁壘是真實的項目風險,強行推廣可能適得其反。
AI與生成式設計的崛起
未來的趨勢不僅是代碼化,更是 AI 增強的代碼化。這場變革與人工智能的浪潮在此交匯。
-
生成式設計(Generative Design):這是一種更高級的 AI 應用,AI 不再僅僅是優化人類的設計,而是根據一組約束條件自主生成全新的設計方案。
-
各工具在 AI 譜系中的位置:
- 傳統EDA:正在將 AI 用于特定任務的優化,例如西門子的Aprisa AI用于功耗、性能和面積(PPA)的優化 。
- JITX:使用AI進行布線優化和自動化布局。
- diode.computer:最接近純粹生成式設計的范例,其 AI 系統從高層規格直接生成電路設計。
-
工程師角色的演變:未來,工程師的角色將從“繪圖員”轉變為“架構師”。他們的核心工作不再是繪制每一根線,而是定義設計的目標、約束條件和驗證標準,然后由AI在這些框架內完成具體實現。
未來很可能是一個多元化的混合格局。對于性能要求極高、復雜度極大的核心設計(如高端處理器、精密模擬電路),專家們仍將依賴強大的圖形工具進行精細的手動布局。但這些工具將被 AI 深度賦能。對于其他廣闊的市場領域(如物聯網、簡單的數字控制板、參數化系統),代碼驅動和 AI 即服務模式將獲得顯著的采納,從而形成一個更加細分和專業化的 EDA 市場。

結束語
向“硬件即代碼”的轉變,是電子設計領域一場深刻的、由軟件革命力量驅動的演進。這場變革的核心權衡在于:犧牲傳統 EDA 的視覺直觀性和精細控制,以換取前所未有的自動化、可重用性和可驗證的正確性。硬件工程與軟件工程之間的界限將繼續模糊。未來十年,最成功的組織,將是那些能夠掌握融合這兩種學科藝術的組織。他們將能夠根據任務的性質,靈活地選擇最合適的范式:無論是圖形化的、代碼驅動的,還是由AI生成的,從而在日益激烈的技術競爭中脫穎而出。-
PCB設計
+關注
關注
396文章
4920瀏覽量
95233 -
eda
+關注
關注
72文章
3113瀏覽量
182881 -
代碼
+關注
關注
30文章
4967瀏覽量
73960 -
KiCAD
+關注
關注
5文章
321瀏覽量
10394
發布評論請先 登錄
PCB設計 | AI如何顛覆PCB設計?從手動布線到智能自動化的30年演進
告別傳統仿真困局:Sigrity X 三大突破破解PCB設計難題
巧用為昕貼身工具,做完美PCB設計系列二
上海圖元軟件國產高端PCB設計解決方案
盤點專注于AI驅動的硬件/PCB設計企業及其產品服務
技術資訊 I Allegro X PCB 設計工具新增功能一覽
EDA是什么,有哪些方面
Simcenter FLOEFD EDA Bridge模塊:使用導入的詳細PCB設計和IC熱特性來簡化熱分析
九霄智能國產EDA工具的突圍之路
國產EDA龍頭打響技術反擊戰:合見工軟高端PCB設計軟件免費開放試用!
PCB設計,輕松歸檔,效率倍增!
基于代碼的PCB設計工具對傳統EDA的挑戰
評論