comment
type
status
date
slug
summary
tags
category
icon
password
AI summary
最近在学习verilator的使用,此为学习笔记
1.编写硬件语言
verilator是将Verilog和SystemVerilog硬件描述语言转换为C++或SystemC模型,在编译后运行.那么首先就要编写硬件描述语言.要学习Verilog语言,可以在HDLbits学习,再推荐一本书<<轻松成为设计高手——VerilogHDL实用精解>>.这里以一个简单的双控开关为例.
将该文件命名为switch.v(文件名最好和模块名一致).
接下来就可以利用verilator将其转换成C++了,运行命令即可
其中,
-cc
参数意思是告诉Verilator转换为C++.运行了上面的命令就可以看到工作目录生成了一个obj_dir的新文件夹.其中比较重要的是Vswitch.h和Vswitch___024.root.h,后面设计测试平台(testbench)的时候需要包含它们.
2.编写测试平台testbench
接下来编写一个简单的测试平台,命名为tb_switch.cpp(tb为testbench测试平台的缩写)
其中,大致的模板就是除开while下面四行后剩下的东西,各语句的作用已经在注释中写明了.
构建可执行文件
我们要重新运行下面的命令来包含我们的测试平台
其中-Wall是打开C++警告,—trace是启用波形追踪
然后再运行如下命令来构建可执行文件
其中,-C obj_dir是让make在obj_dir目录中运行,-f传递所需的makefile
运行完成之后,就可以再obj_dir中找到生成的Vswitch文件了
执行测试平台并查看波形
上面在obj_dir生成了我们的可执行文件,通过下面命令运行可执行文件
然后就会生成waveform.vcd的文件,我们可以用gtkwave来查看,运行下面命令用gtkwave查看波形
按照下面步骤添加信号并查看波形

编写一个简单的makefile
每次输入上述命令似乎有点麻烦了,我们可以编写一个简单的makefile来自动化完成