用VS Code + iverilog + GTKwave仿真Verilog

版权声明:本文为CSDN博主「JeronZhou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JeronZhou/article/details/115566445





1.VS Code部分

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

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述
我事先在D盘建了一个文件夹,路径为D:\IVerilog-test
一切准备就绪后,新建一个文件“test”,先将这个文件另存为至这个路径,在保存文件的时候在下拉框中选择保存类型为“Verilog”,此时保存的文件为test.v,为Verilog源代码文件。

在这里插入图片描述
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

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

之后再新建一个文件“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

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

 

2.iverilog部分

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

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

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

在这里插入图片描述
直接在该路径所对应的窗口上方的输入栏中输入"cmd",进入cmd界面。

在这里插入图片描述
进入当前路径的命令行界面:

在这里插入图片描述
在命令行中输入:

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

 
 
  • 1

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

在这里插入图片描述
 

3.GTKwave部分

继续在命令行中输入:

vvp test_tb.vvp

 
 
  • 1

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

在这里插入图片描述

最后再输入:

gtkwave test_tb.vcd

 
 
  • 1

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

在这里插入图片描述
依次点击左侧菜单栏的test_tb >> c1 >> reg >> insert:

在这里插入图片描述

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

在这里插入图片描述
至此,仿真成功完成。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值