学习verilator-笔记1
笔记1所包括的范围
verilator安装
我的电脑是Linux Ubuntu 24.04.1 LTS (vmware虚拟机x86) 和 Linux UnionTech OS Desktop 20 Pro(真实机器aarch64)
安装方法有两种:
第一种是直接使用apt进行安装
apt-get install verilator
第二种是通过编译的方式(我采用这种方法)
根据ysyx的手册,我们安装v5.008版本
1 | 前提条件,需要预先安装一些包用于编译: |
systemc安装
我自己的安装步骤:
- 下载systemc并解压
1
2
3
4
5
6tar -xzvf systemc-3.0.1.tar.gz
2. 进入systemc目录并创建临时目录objdir
```bash
cd systemc-3.0.1
mkdir objdir
cd objdir - 配置
1
2
3
4
5../configure
or
../configure 'CXXFLAGS=-std=c++17'
or
../configure --prefix=/usr/local/systemc-3.0.0 - 编译
1
make
- 编译和运行子文件夹中的案例
1
make check
  - 安装
1
make install
7. 添加环境变量1
2
3
4echo "# SystemC Install path" >> ~/.bashrc
echo "export SYSTEMC_HOME=$HOME/Program/systemc-3.0.1" >> ~/.bashrc
echo "export SYSTEMC_INCLUDE=$SYSTEMC_HOME/include" >> ~/.bashrc
echo "export SYSTEMC_LIBDIR=$SYSTEMC_HOME/lib-linuxaarch64" >> ~/.bashrc
verilator使用
verilator不是一个传统的仿真器而是一个编译器,用于将verilog和systemverilog等硬件描述语言转换为C++或SystemC模型,编译后可执行。
verilator给的案例中,有一个是Example C++ Execution,
1 | mkdir test_our |
编译并运行
1 | verilator --cc --exe --build -j 0 -Wall sim_main.cpp our.v |
gtkwave安装
GTKWave是一个基于Unix/Win32/MacOSX的全特性的示波器,类似于学习物理或通信所用的物理示波器,可以支持FST、LXT、LXT2、VZT、GHW和标准verilog VCD/EVCD等格式,主要用于挑食Verilog和VHDL仿真模型,它是通过分析采集后的dumpfiles文件进行分析,而不是实时交互式的那种示波器,支持模拟数据或数字数据,支持各种搜索操作,可从信号波形中提取感兴趣的,也可以通过PostScript和FrameMaker格式生成输出。
这个组件的安装就很随意了,直接使用apt进行安装
1 | sudo apt install gtkwave |
gtkwave使用
我们直接按照它提供的案例进行说明。
将example代码下载到本地
这个例子是des加密即des.v, 我的当前系统并没有安装iverilog软件,咱们这里仅是将现有的des.fst转换为vcd
1 | $ fst2vcd des.fst > des.vcd |
我们会发现这个以.vcd为结尾的文件比.fst文件大很多,推荐使用.fst文件,后面会说如何将.vcd文件自动转化为.fst文件。
下一步,我们通过verilator生成一个stems文件
1 | verilator -Wno-fatal --no-timing des.v -xml-only |
当源文件布局或体系变更需要重新生成stems文件。
1 | // -o, --optimize optimize VCD to FST 对vcd文件进行自动优化为fst |
cmake安装
从下载链接进行下载最新版本的cmake源码,当前版本是3.31.3
1 | tar -xzvf cmake-3.31.3.tar.gz |
并输出cmake版本
1 | cmake --version |

学习verilator-笔记1
install_url to use ShareThis. Please set it in _config.yml.