windows上使用iverilog+gtkwave仿真,

Verilog与波形仿真
本文介绍了使用Iverilog和Gtkwave进行Verilog代码仿真的步骤。包括如何生成VCD文件并解决仿真过程中遇到的问题。

数电,计算机组成原理要写verilog

由于我不需要编写一些大项目, 用vivado就是杀鸡用牛刀了, 不仅慢,还要配置很多地方. 于是我在网上搜索,可以使用iverlog+gtkwave命令行工具

写好各个模块后,开放仿真

$ iverilog -o reg *.v
$ vvp -n reg   -lxt2

程序正常输出了, 但是没有产生vcd仿真文件,
官网上找到答案

gtk

是因为没有在testbench文件中使用命令 dumpfile, d u m p f i l e , dumpvars 所有加上

  6 initial begin
  7     $dumpfile("reg.vcd");
  8     $dumpvars(1,sim);
  9     end
 10

下面是dumpvars的介绍:

我们甚至可以在同一个$dumpvar的调用中,同时指定某些层次上的所有信号和某个单独的信号,假设模块top包含信号signal1,同时包含有子模块module1,如果我们不但希望记录signal1这个独立的信号,而且还希望记录子模块module1以下三层的所有信号,则语法举例如下:

initial
  $dumpvar (3, top.signal1, top.module1);  //指定层次数和单独指定的信号无关
                                           //所以层次数3只作用于模块top.module1, 而与信号
top.signal1无关 
上面这个例子和下面的语句是等效的:
initial
begin
  $dumpvar (0, top.signal1);
  $dumpvar (3, top.module1);
end
$dumpvar的特别用法(不带任何参数):
initial
  $dumpvar;        //无参数,表示设计中的所有信号都将被记录

再使用vvp -n reg -lxt2就能产生vcd文件了

继续

$ gtkwave  reg.vcd

报错

Could not initialize GTK! Is DISPLAY env var/xhost set?

查了很久,
原因是linux下命令行界面要连接一个窗口才能将图形显示出来, $DISPLAY就是这个环境变量, 按网上的说法设置为本机ip:0.0还是没能解决,

而且配置了DISPLAY环境变量而不连接, 其他时候使用, 打开看vim变得很慢, 所以果断去掉

我就只好在windows上下载图形化界面的gtkwave
同上 , 只需在命令行输入(先将gtkwzve的bin目录加入path) gtkwave reg.vcd

刚进入还没有波形, 需点击左侧上面窗口的sst ,然后选择tb文件, 然后再点左侧下面窗口的变量,全部显示即可
比如这是一个利用regfile, alu 求斐波那契的波形 c=a+b, a=b,b=c;

这里写图片描述

### 安装 GTKWave GTKWave 是一个跨平台的开源波形查看器,广泛用于数字电路仿真结果的可视化分析。在 Windows 系统下,可以通过以下步骤完成 GTKWave 的安装。 前往 GTKWave 官网(https://gtkwave.sourceforge.net/)下载适用于 Windows 的安装包。该安装包通常是一个 `.exe` 文件,下载完成后双击运行安装程序,并按照提示逐步完成安装过程。安装过程中可以选择安装路径以及是否创建桌面快捷方式等选项。 安装完成后,可以在“开始菜单”中找到 GTKWave 的启动图标,也可以通过桌面快捷方式直接启动该程序。GTKWave 支持多种波形文件格式,包括 VCD(Value Change Dump)和 FST(Fast Signal Trace)等,可以用于查看由 Verilog 模拟器(如 iverilog)生成的波形文件[^1]。 此外,GTKWave 提供了直观的图形界面,支持缩放、平移、标注、颜色编码、层次结构展示等功能,便于用户更好地理解和调试数字电路设计。它还具备搜索、过滤、触发等高级功能,帮助用户快速定位和分析复杂的波形模式[^2]。 如果在安装过程中遇到问题,可以参考相关社区或论坛的讨论,例如有关 iverilogGTKWave使用总结,这些资源通常会提供详细的安装步骤和常见问题的解决方案[^4]。 ### 配置与使用 安装完成后,可以将 GTKWaveiverilog 等工具结合使用,以实现高效的 Verilog 设计仿真与调试。例如,在使用 iverilog 编译 Verilog 代码后,可以通过 GTKWave 加载生成的波形文件进行查看和分析。这种组合在 Windows、Linux 和 macOS 平台上均可使用,是一种非常便捷的数字电路设计工具链[^3]。 如果使用 VSCode 进行 Verilog 开发,还可以进一步配置 iverilogGTKWave,以实现实时检错和快速查看波形的功能。这通常涉及设置 VSCode 的任务配置文件(`tasks.json`),以便在保存代码后自动运行 iverilog 编译并启动 GTKWave 查看波形。 ### 示例配置 以下是一个简单的 VSCode `tasks.json` 配置示例,用于自动运行 iverilog 并启动 GTKWave: ```json { "version": "2.0.0", "tasks": [ { "label": "Run iverilog and gtkwave", "type": "shell", "command": "iverilog -o output ${file} && vvp output && gtkwave dump.vcd" } ] } ``` 此配置将执行以下操作: 1. 使用 `iverilog` 编译当前打开的 Verilog 文件,并生成名为 `output` 的可执行文件。 2. 使用 `vvp` 运行生成的可执行文件,执行仿真。 3. 最后使用 `gtkwave` 打开生成的 `dump.vcd` 波形文件进行查看。 通过这种方式,可以大大提高 Verilog 设计的开发效率。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值