【前言】Icarus Verilog 和 GTKWave 是 Verilog 开发中最常用的开源工具组合前者用于编译和仿真后者用于查看波形。Windows 系统安装Icarus Verilog 的 Windows 安装包中已经包含了 GTKWave所以只需要安装一次。1.访问下载页面前往官方推荐的 Windows 版本下载地址bleyer.org/icarus/。2.在download选择安装包下载 iverilog-v12-20220611-x64_setup.exe 或类似版本的 .exe 安装程序进行下载中3.运行安装程序在安装过程中务必勾选以下两个选项Install GTKWave这会同时安装波形查看工具。Add executable folder(s) to the user PATH这能让你在命令行中直接使用工具是后续操作的关键。选择并点击next选择next修改安装位置并点击next勾选上并点击next保持默认选择并点击next勾选Add executable folder(s) to the user PATH并点击next选择install进行安装安装完成点击finish打开cmd,依次输入以下三条命令检查是否安装成功iverilog-vvvp-vgtkwave--version三条命令功能用 iverilog 编译 - 用 vvp 运行并生成波形 - 用 gtkwave 打开查看波形。现在它提示“没有输入文件”意思就像是它在问你“你命令我运行但你要我运行哪个文件呢也可以使用where vvp测试测试使用了一个让LED灯每隔15个时钟周期亮暗变化的例子。准备设计文件创建一个名为 led.v 的文件输入如下代码module led( input clk, input rst_n, output reg led ); reg [4:0] cnt; always (posedge clk or negedge rst_n) begin if(!rst_n) cnt 0; else cnt cnt15 ? 0 : cnt1; end always (posedge clk or negedge rst_n) begin if(!rst_n) led 0; else if(cnt 15) led !led; end endmodule2. 准备仿真文件led_tb.v上述代码需要两个输入信号clk, rst_n和一个输出信号led那么在仿真环境中也需要对这三个信号进行定义。代码如下timescale 1ns/100ps module led_tb; parameter PERIOD 10; reg SYSCLK; reg NSYSRESET; initial begin SYSCLK 1b0; NSYSRESET 1b0; end /*iverilog */ initial begin $dumpfile(wave.vcd); //生成的vcd文件名称 $dumpvars(0, led_tb); //tb模块名称 end /*iverilog */ initial begin #(PERIOD * 10 ) NSYSRESET 1b1; #1000 $stop; end always (SYSCLK) #(PERIOD / 2.0) SYSCLK !SYSCLK; led u_led ( .rst_n(NSYSRESET), .clk(SYSCLK), .led( led) ); endmodule3. 仿真编译和仿真如下,在创建上述两个代码文件的目录下打开cmdiverilog-owave led_tb.v led.v生成了 wave 文件。该文件可用于生成波形生成波形的语句如下vvp-nwave-lxt2查看波形gtkwave wave.vcd弹出GTKWave在左侧点击SST结点并在Signals中逐个双击每个信号可在右侧观看到波形图。通过集合ctrl调整图像显示。参考https://blog.csdn.net/m0_37816922/article/details/150481451