有哪些開源的集成電路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 EDIF

2. 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 Design

2、gplEDA Homepage

3、gEDA Projects Homepage gEDA介紹 http://www.oschina.net/p/geda


http://opencircuitdesign.com 這個網站信息很全


Quartus II


推薦閱讀:

什麼是開源,當前中國公眾對開源有哪些常見的誤解?
如何開發並維護一個開源的 React 組件?
Google 編程之夏(GSoC)中的Vert.x子項目
開源中國的無恥行徑

TAG:開源項目 | 晶元集成電路 | 數字集成電路 |