MacOS下也能做Verilog开发/仿真/综合

Posted 硅农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS下也能做Verilog开发/仿真/综合相关的知识,希望对你有一定的参考价值。

全平台的EDA开源工具
代码编译icarus-verilog
http://iverilog.icarus.com/
代码编译仿真、Lint Verilator
https://www.veripool.org/wiki/verilator/Installing
仿真看波形gtkwave
http://gtkwave.sourceforge.net/
综合yosys
http://www.clifford.at/yosys/screenshots.html
我们都习惯了用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才能使用
  
    
    
  
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. 生成波形文件 打开波形文件
然后添加波形就可以进行调试了
MacOS下也能做Verilog开发/仿真/综合
软件很小,运行起来速度也非常快,做个小练习足够了。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.html

最后

这篇文章并不是推荐大家去折腾这些。而是介绍Mac甚至于Apple生态是一个非常高效的平台,此外我们在购买设备前,也要明确的自己的需求,如果你有游戏娱乐的需求,是学生党,经常要使用各种EDA工具,并且主要生产力在Windows或Linux下,Mac当然不适合你。
工作之后,很多朋友在家的电脑使用场景,更多是做一些小练习,甚至于在家根本不会写代码,更甚者在家连电脑都不开。对于我的需求来说,主要是处理一些文案和视频的处理工作,偶尔做一些小练习,这几个开源EDA工具完全可以满足,甚至是在Apple生态中更擅长图文视频处理更高效。希望我们能抛开偏见,先去了解一件事情,然后在做出自己的判断,而不是妄下论断,人云亦云。

Reference

https://ughe.github.io/2018/11/06/gtkwave-osx
https://stackoverflow.com/questions/36240998/visualizing-yosys-output-not-working

以上是关于MacOS下也能做Verilog开发/仿真/综合的主要内容,如果未能解决你的问题,请参考以下文章

Verilog -- 阻塞与非阻塞的仿真与综合

明德扬至简设计法--verilog综合器和仿真器

verilog hdl中啥是综合?啥是模拟?

verilog仿真时,部分reg变量消失

verilog中除法运算在modelsim仿真中只要一个时钟周期就能完成,实际上也是这样吗?

Verilog HDL 使用规范