vscode+iverilog搭建verilog运行环境 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录一、Iverilog软件安装二、vscode插件安装三、运行实例一、Iverilog软件安装1、软件下载地址如下一路点击next最后勾选添加系统路径完成安装。Icarus Verilog for Windowshttps://bleyer.org/icarus/2、检查是否安装成功在终端输入iverilog如果出现类似输出则说明安装成功。二、vscode插件安装打开vscode扩展栏安装如下插件1、Verilog-HDL/SystemVerilog打开该插件的扩展设置配置iverilog为verilog的语法检错器。2、Verilog_TestbenchVerilog_Testbench插件用于自动生成设计模块的testbench模板具体用法如下打开设计模块的.v文件ctrlshiftp唤出下图搜索框选择Testbench插件testbench模板会在终端打印。如需对testbench模板内容进行修改ctrl单击终端的路径进入vTbgenerator.py修改。3、verilog-utilsverilog-utils用于生成模块例化具体用法复制粘贴module端口定义并选中ctrlshiftp选择verilog-utils -install。4、Verilog HDLVerilog HDL 用于调用Iverilog跑仿真。三、运行实例准备文件module blc ( input wire clk, input wire rst_n, input wire [11:0] din, input wire din_vld, input wire [11:0] blc_offset, output reg [11:0] dout, output reg dout_vld ); localparam ONE512d1; localparam ZERO512d0; wire [12:0] result_temp; wire [11:0] result; assign result_temp {1b0,din}-{1b0,blc_offset}; assign result result_temp[12] ? ZERO[0:12]:result_temp; always (posedge clk or negedge rst_n) begin if (!rst_n) dout ZERO[0:12]; else if (din_vld) dout result; end always (posedge clk or negedge rst_n) begin if (!rst_n) dout_vld 1b0; else dout_vld din_vld; end endmoduletimescale 1ns / 1ps include blc.v module tb_blc; // blc Parameters parameter PERIOD 10; // blc Inputs reg clk 0 ; reg rst_n 0 ; reg [11:0] din 0 ; reg din_vld 0 ; reg [11:0] blc_offset 0 ; // blc Outputs wire [11:0] dout ; wire dout_vld ; initial begin forever #(PERIOD/2) clk~clk; end initial begin #(PERIOD*2) rst_n 1; end blc u_blc ( .clk ( clk ), .rst_n ( rst_n ), .din ( din [11:0] ), .din_vld ( din_vld ), .blc_offset ( blc_offset [11:0] ), .dout ( dout [11:0] ), .dout_vld ( dout_vld ) ); integer i; initial begin $dumpfile(blc_wave.vcd); $dumpvars; wait(rst_n); for(i0;i4096;ii1) begin dini; din_vld1b1; #10 din_vld1b0; #10; end $finish; end endmodule打开testbench文件点击右上角Verilog: Run Verilog HDL Code按钮执行文件执行结果会在下方输出栏输。执行完成后会在生成.vcd文件在终端输入gtkwave *.vcd即可查看仿真波形。