有哪些開源的集成電路EDA工具?
==不斷更新==
RTL綜合工具
1. Icarus Verilog
Icarus Verilog 從0.9版本開始去掉了綜合器(-S 選項不再有效)
能找到的最高支持綜合功能的是 0.8.6,見 Icarus Verilog for Windows
這個頁面除了提供Windows的二進位包之外,也提供源代碼。優點:
* 小巧快速缺點:* 代碼很老,需要hack才能編譯通過(OSX 10.10 + XCode 6.1)* 功能很弱,可以靠譜的功能僅僅是rtl -&> mapped EDIF2. YoSys (推薦)
Yosys 是2012年開始的項目,至今還在更新(cliffordwolf/yosys · GitHub)
自帶一個cmos的標準庫,類似於Synopsys GTECH它的內部庫映射演算法使用的是 Berkeley ABC ABC: A Simple System for Sequential Synthesis and Verification
最新的(OSX 10.10 + XCode 6.1)可以編譯通過,只需打開Makefile中的clang選項即可
這個小玩意兒足以勝任集成電路綜合的教學任務(EDA工具教學的部分除外)
舉個例子:foo.v :module foo (
input a,
input b,
input c,
output o
);
assign o = (a b) | c;
endmodule
如同Design Compiler,再寫一個腳本:
foo.ys,包含讀入verilog、層次檢查、優化、映射到庫(cmos_cells.lib為yosys自帶庫)以及輸出。read_verilog foo.v
hierarchy -check
proc; opt; fsm; opt; memory; opt
techmap; opt
dfflibmap -liberty cmos_cells.lib
abc -liberty cmos_cells.lib
write_verilog -noattr foo_syn.v
吃入yosys:
$ yosys foo.ys
輸出的netlist是這樣的:
module foo(a, b, c, o);
input a;
input b;
input c;
output o;
wire _0_;
wire _1_;
wire _2_;
wire _3_;
wire _4_;
wire _5_;
wire _6_;
NOT _7_ (
.Y(_5_),
.A(_6_)
);
NAND _8_ (
.B(_2_),
.Y(_1_),
.A(_4_)
);
NAND _9_ (
.B(_5_),
.Y(_3_),
.A(_1_)
);
assign _2_ = a;
assign _4_ = b;
assign _6_ = c;
assign o = _3_;
endmodule
這貨還能輸出Graphviz格式的圖片:
特定專業領域內是很少有可實際應用於生產開發的開源軟體的。EDA 領域是一例,石油開採,自動化加工,專業音視頻處理等領域也是。
這些領域的開源軟體,就算有,也是一個玩具,遠不及價格昂貴且有技術支持的閉源商業軟體靠譜。
開發這類軟體不僅需要計算機軟體知識,還需要有很豐富紮實的特定領域知識,開發成本其實是很高的,且這類軟體使用者也局限於特定領域,非通用。這幾個特點也決定了此類軟體很少有開源靠譜的實現。SPICE電路模擬方面有:spice3f4(現在可能是spice3f5了);NGspice Ngspice circuit simulator
PCB方面有KICAD;KiCad EDA
系統方面有Ptolemy等。Ptolemy Project Home Page綜合整套集成的1、Open Circuit Design2、gplEDA Homepage3、gEDA Projects Homepage gEDA介紹 http://www.oschina.net/p/gedahttp://opencircuitdesign.com 這個網站信息很全
Quartus II
推薦閱讀:
※什麼是開源,當前中國公眾對開源有哪些常見的誤解?
※如何開發並維護一個開源的 React 組件?
※Google 編程之夏(GSoC)中的Vert.x子項目
※開源中國的無恥行徑