文章目录

  • 1.VS Code部分
  • 2.iverilog部分
  • 3.GTKwave部分


1.VS Code部分

由于我们需要进行Verilog的仿真,所以免不了编辑Verilog的源代码,Verilog的代码编辑器有很多种,这里我选用的是轻量级的VS Code。

VS Code中含有Verilog语法的插件,安装插件后在VS Code当中写Verilog的代码会有高亮和缩进,使代码易读且可以检查语法错误。

什么?你还没有装VS Code?
看看这个吧:VS Code下载安装教程

安装好VS Code后,打开VS Code,点击右侧菜单栏的扩展:

vscode里生成verilog testbench的插件 vscode如何写verilog_命令行

在搜索栏中输入“verilog”,点击安装“Verilog-HDL/SystemVerilog/Bluespec SystemVerilog”插件。

vscode里生成verilog testbench的插件 vscode如何写verilog_命令行_02


vscode里生成verilog testbench的插件 vscode如何写verilog_Verilog_03


安装完成后,扩展栏里面就会多出来刚刚安装的verilog插件,此时VS Code具备Verilog代码的编辑环境。

vscode里生成verilog testbench的插件 vscode如何写verilog_Code_04


我事先在D盘建了一个文件夹,路径为D:\IVerilog-test

一切准备就绪后,新建一个文件“test”,先将这个文件另存为至这个路径,在保存文件的时候在下拉框中选择保存类型为“Verilog”,此时保存的文件为test.v,为Verilog源代码文件。

vscode里生成verilog testbench的插件 vscode如何写verilog_Code_05


test.v:

module counter(out, clk, enable,reset);
output[7:0]  out; 
input clk, reset, enable;
reg[7:0] out;
always @ (posedge clk) begin
    if(reset) begin
        out <= 8'b0;
    end else if(enable) begin
        out <= out + 1;
    end
end
endmodule

之后再新建一个文件“test_tb.v”,按照上述方法保存至与test.v相同路径即可。

test_tb.v:

`timescale 1ns/1ns
module test_tb; 
reg clk, enable, reset; 
wire [7:0] out; 
counter c1(.out(out), .clk(clk), .enable(enable), .reset(reset));
    initial begin
        enable = 1;
    end
    initial begin
        clk = 0;
        forever #10 clk = ~clk;
    end
    initial begin
        reset = 1;
        #15 reset = 0;
        #1000 $finish;
    end
    initial
    begin            
        $dumpfile("test_tb.vcd");  //生成vcd文件,记录仿真信息
        $dumpvars(0, test_tb);  //指定层次数,记录信号
    end 
endmodule

 

2.iverilog部分

iverilog下载(提取码gltj):iverilog下载

由于iverilog中已经包含了GTKwave,所以只要下载一个iverilog即可。这个链接当中的iverilog安装包是exe文件,安装过程中可以勾选自动配置环境变量,勾选后就无需手动添加,方便快捷。

查看D:\IVerilog-test路径下的文件:

vscode里生成verilog testbench的插件 vscode如何写verilog_Verilog_06


直接在该路径所对应的窗口上方的输入栏中输入"cmd",进入cmd界面。

vscode里生成verilog testbench的插件 vscode如何写verilog_Verilog_07


进入当前路径的命令行界面:

vscode里生成verilog testbench的插件 vscode如何写verilog_verilog_08


在命令行中输入:

iverilog -o "test_tb.vvp" test_tb.v test.v

这条命令会将test.v和test_tb.v编译为一个名为test_tb.vvp的VVP文件,这个VVP文件是仿真前的必要文件。

vscode里生成verilog testbench的插件 vscode如何写verilog_Verilog_09


 

3.GTKwave部分

继续在命令行中输入:

vvp test_tb.vvp

回车后VVP文件会开始仿真,之后生成一个测试文件test_tb.vcd。

vscode里生成verilog testbench的插件 vscode如何写verilog_verilog_10

最后再输入:

gtkwave test_tb.vcd

回车后即可进入GTKwave的界面:

vscode里生成verilog testbench的插件 vscode如何写verilog_verilog_11


依次点击左侧菜单栏的test_tb >> c1 >> reg >> insert:

vscode里生成verilog testbench的插件 vscode如何写verilog_Verilog_12

点击insert后调整大小即可显示信号:

vscode里生成verilog testbench的插件 vscode如何写verilog_verilog_13


至此,仿真成功完成。