全平台的EDA开源工具
代码编译icarus-verilog
http://iverilog.icarus.com/iverilog.icarus.com代码编译仿真、Lint Verilator
https://www.veripool.org/wiki/verilator/Installingwww.veripool.org仿真看波形gtkwave
http://gtkwave.sourceforge.net/gtkwave.sourceforge.net综合yosys
http://www.clifford.at/yosys/screenshots.htmlwww.clifford.at我们都习惯了用Windows和Linux进行开发,对于IC工程师的生产力工具,一提到Mac很多人就摇摇头。不过请不要忘了MacOS是基于Unix开发的,而作为生产力工具,Mac也一点不比Windows和Linux差,只不过因为很多EDA工具都是Linux和Windows下独有,生产力这个东西,你首先要思考的是你的生产力是什么,同样的在MacOS下也可以做Verilog代码练习开发,更重要的是这几个工具是开源而且是全平台。你要切换Windows或Linux也可以。
安装开发环境
首先在Mac上推荐先安装homebrew软件工具包。由于国内用户访问GitHub速度十分慢所以下面这个链接的主人把所有的安装源都换成国内的,而且做成了脚本可以一键安装。直接运行,awesome!
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
安装iverilog
brew install icarus-verilog
安装verilator
brew install verilator
安装gtkwave
brew cask install xquartz
brew cask insatll gtkwave
如果想使用命令行运行gtkwave则需要进行一些配置,gtkwave安装好后可以一般直接运行gtkwave命令,但是如果安装Perl的Switch模块,会遇到错误。
cpan install Switch
perl -V:'installsitelib'
第二条命令将打印出Switch的安装位置。如果是/usr/local/Cellar/perl/...
,则必须将Switch复制到以下位置/Library/Perl/5.*/
:
sudo cp /usr/local/Cellar/perl/5.*/lib/perl5/site_perl/5.*/Switch.pm /Library/Perl/5.*/
配置好后直接运行gtkwave的命令行工具不会出现错误
/Applications/gtkwave.app/Contents/Resources/bin/gtkwave
把这条命令添加到~/.bash_profile
alias gtkwave = /Applications/gtkwave.app/Contents/Resources/bin/gtkwave
然后在命令行输入gtkwave
直接打开gtkwave
有一个问题是我们设置好的命令,每次打开终端都需要重新source ~/.bash_porfile
才能使用
打开~/.zshrc
在最后一行添加上即可
source ~/.bash_porfile
编译仿真
接下来写一段小代码来试一下。
echo "开始编译"
iverilog -o wave ../src/I2C_Ctrl_EEPROM.v I2C_Ctrl_EEPROM_tb.v
echo "编译完成"
vvp -n wave -lxt2
echo "生成波形文件"
cp wave.vcd wave.lxt
echo "打开波形文件"
gtkwave wave.lxt
新建一个脚本文件,把这段代码复制进去,保存问run.sh
在terminal下运行source run.sh
,一键仿真跑起来,会打印出如下信息
开始编译
编译完成
LXT2 info: dumpfile wave.vcd opened for output.
生成波形文件
打开波形文件
然后添加波形就可以进行调试了
软件很小,运行起来速度也非常快,做个小练习足够了。Verilator的使用可以自行查看官网。
综合
安装综合工具yosys。
brew install yosys
一段计数器代码
module counter (clk, rst, en, count);
input clk, rst, en;
output reg [3:0] count;
always @(posedge clk)
if (rst)
count <= 4'd0;
else if (en)
count <= count + 4'd1;
endmodule
综合命令
# read design
read_verilog counter.v
hierarchy -top counter
# high-level synthesis
proc; opt; fsm; opt; memory; opt; #techmap; opt;
write_verilog synth.v
将上述命令保存为show_rtl.ys文件,在终端下执行命令进行综合。
yosys show_rtl.ys
综合完成后会生成synth.v文件,这是综合后的网表。
使用Graphviz来查看电路原理图,需要确保已经安装。用homebrew安装。
brew install graphviz
生成dot文件
yosys -p "prep; show -stretch -prefix counter -format dot" counter.v
生成png图片
dot counter.dot -T png -o counter.png
图片打开显示
综合的例子
http://www.clifford.at/yosys/screenshots.htmlwww.clifford.at最后
这篇文章并不是推荐大家去折腾这些。而是介绍Mac甚至于生态是一个非常高效的平台,此外我们在购买设备前,也要明确的自己的需求,如果你有游戏娱乐的需求,是学生党,经常要使用各种EDA工具,并且主要生产力在Windows或Linux下,Mac当然不适合你。
工作之后,很多朋友在家的电脑使用场景,更多是做一些小练习,甚至于在家根本不会写代码,更甚者在家连电脑都不开。对于我的需求来说,主要是处理一些文案和视频的处理工作,偶尔做一些小练习,这几个开源EDA工具完全可以满足,甚至是在生态中更擅长图文视频处理更高效。希望我们能抛开偏见,先去了解一件事情,然后在做出自己的判断,而不是妄下论断,人云亦云。
Reference
https://ughe.github.io/2018/11/06/gtkwave-osxughe.github.io https://stackoverflow.com/questions/36240998/visualizing-yosys-output-not-workingstackoverflow.comhttp://weixin.qq.com/r/1UQnPyLEKH9XrWZc9xHH (二维码自动识别)