FPGA学习番外篇:在MacOS上编译和仿真verilog
FPGA学习番外篇:在MacOS上编译和仿真verilog
一年没更新了,过去的一年里一直忙着比赛和课业,一直没有更新博客里的内容,从今天开始再填完埋下的坑吧!
至于为什么会有这个奇怪的番外篇,是因为最近更新了装备,整了台X86的MacBook Pro,为了方便我写verilog和仿真看波形,整合了网上的很多教程最终写出来的。
这其中还包括利用yosys对写好的verilog进行综合的环节,但我想了下,在macOS下烧写fpga十分困难或者对我来说几乎不可能,因此我就虽然写了这部分教程,但我基本没用过综合,非要综合的话利用docker或者虚拟机安装vivado不香嘛😅
- OS:macOS Big Sur 11.15.1
- Device:MacBook Pro 13 (2020)
- Software:VScode 假设现在手上拿到的是一台全新的mac,下面将从零开始!
安装macOS软件包管理工具home brew
类似于linux的apt-get,macOS也有它自己的软件包管理工具home brew,安装方式非常简单,打开终端,输入以下自动运行脚本并根据选项一步步安装即可: 1
2/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
利用homebrew安装开源verilog编译器icarus-verilog
icarus-verilog(下简称iverilog)是一款开源的精巧verilog编译器,可以用它来编译verilog和testbench,并生成仿真波形文件 1
brew install icarus-verilog
1
2
3
4
5
6
7
8
9Usage: iverilog [-EiSuvV] [-B base] [-c cmdfile|-f cmdfile]
[-g1995|-g2001|-g2005|-g2005-sv|-g2009|-g2012] [-g<feature>]
[-D macro[=defn]] [-I includedir] [-L moduledir]
[-M [mode=]depfile] [-m module]
[-N file] [-o filename] [-p flag=value]
[-s topmodule] [-t target] [-T min|typ|max]
[-W class] [-y dir] [-Y suf] [-l file] source_file(s)
See the man page for details.1
2iverilog -o "testbentch_module.vvp" testbentch_module.v source_module.v
vvp -n "testbentch_module.vvp"1
2
3
4
5
6
7
8echo "开始编译"
source_module=BCD_to_Yusan
testbentch_module=BCD_to_Yusan_tb
iverilog -o "$testbentch_module.vvp" $testbentch_module.v $source_module.v
echo "编译完成"
vvp -n "$testbentch_module.vvp"
echo "波形文件已生成"
安装波形查看软件/插件
iverilog可以生成vcd格式的波形文件,只需先利用iverilog编译出vvp文件,再在testbench中添加以下代码即可: 1
2
3
4
5
6 /*iverilog */
initial begin
$dumpfile("moudule_tb.vcd"); //生成的vcd文件名称
$dumpvars(0, moudule_tb); //tb模块名称
end
/*iverilog */
利用VScode插件查看波形
目前VScode上有两款插件可以看vcd格式的波形,一个是“impulse”,需要先安装jdk,界面稍有些粗糙,且右上角有水印,但胜在它无需付费解锁更多功能:
另一个插件是“WaveTrace“,界面简洁好看,但不付费只能同时看8个信号… 属实很难选择了,不过用VScode插件的话,会很方便,因为可以直接在VScode里点击打开
利用gtkwave看波形
利用软件gtkwave也可以看波形,但需要进入软件后选择文件或者用命令行来打开波形文件,不过可以写shell自动化脚本解决该问题,也是比较方便的。 首先打开terminal安装gtkwave: 1
brew install gtkwave
1
brew install --cask gtkwave
1
vim ~/.zshrc
source ~/.bash_profile
之后键入:wq并回车来保存 然后打开bash_profile: 1
vim ~/.bash_profile
export PATH=“/Applications/gtkwave.app/Contents/Resources/bin:$PATH”
操作完成之后,在terminal输入gtkwave能弹出软件就说明操作成功 如果要打开生成的vcd文件,则需要敲命令行,或者打开软件后在软件中打开文件,不过可以使用自动化脚本解决该问题: 1
2
3
4
5
6
7
8
9
10
11echo "开始编译"
source_module=BCD_to_Yusan
testbentch_module=BCD_to_Yusan_tb
iverilog -o "$testbentch_module.vvp" $testbentch_module.v $source_module.v
echo "编译完成"
vvp -n "$testbentch_module.vvp"
echo "波形文件已生成"
echo "打开波形文件"
gtkwave $testbentch_module.vcd./xx.sh
+回车即可编译生成和打开波形(我这里命名为ok.sh):
综合RTL文件
macOS可以利用开源综合器yosys来对RTL文件进行综合: 首先确定你有python3环境,可以在terminal键入python
查看 然后在github上clone一份yosys: 1
git clone https://github.com/YosysHQ/yosys.git
1
brew tap Homebrew/bundle && brew bundle
1
2make
sudo make install
FPGA学习番外篇:在MacOS上编译和仿真verilog
http://example.com/2021/08/10/FPGA学习番外篇:在MacOS上编译和仿真verilog/