在VSCode中配置Verilog仿真环境(详细示例)

引言

最近刚接触数字逻辑这门课,需要用到Verilog并配套Vivado编程,但是本人觉得Vivado内的操作较为繁琐,并且课上对Verilog涉及不多,容易导致新手在实际编写时遇到各种问题。

故本文将描述在VSCode中配置Verilog仿真的方法,同时补充对TestBench文件的讲解,希望可以通过VSCode更简便的实现Verilog仿真。

本质

利用iVerilogGTKWave两个开源软件。

iVerilog负责编译文件,GTKWave负责查看仿真波形。

故本质上可以通过终端命令操作,插件只是简化了操作步骤。

准备工作

1. 安装iVerilog(附带安装GTKWave)

2. 在VSCode中安装Digital IDE插件

DigitalIDE

3. 在插件设置中,配置iVerilog和GTKWave的路径(电脑已经安装Vivado的,可以顺便配置Vivado的路径,以实现实时的语法纠错)

操作步骤

一、编写Verilog代码

以一位全加器做示例,文件名:full_adder.v

module full_adder(Ai,Bi,Ci,Si,Ciout);
    input        Ai;           //输入端口
    input        Bi;           //输入端口
    input        Ci;           //低位进位,输入端口
    output     Si;             //本位和,输出端口
    output   Ciout;            //向高位进位,输出端口
    assign   Si = Ci^Ai^Bi;
    assign   Ciout = Ai & Bi|(Ai^Bi) & Ci;
endmodule

二、编写简单的TestBench文件

关于TestBench理解

TestBench的直译是“测试台”,我将它理解为一种配置文件,在这个文件里面,我们对之前写好的模块进行实例化,并且编写测试的数据,在其中还可以设置仿真时的频率等等……

所以这个文件本质是为后续的仿真服务的

Digital IDE插件自己也有产生testbench的命令,不过也需要手动添加测试数据,故本文尝试自己编写,这样也可以忽略一些新手暂时用不到的配置。

步骤

        1. 设置timescale

  • 格式: `timescale time_unit / time_precision
  • 反引号 ` 相当于C语言里的#号
  • time_unit表示仿真时间的单位
  • time_precision表示仿真时间的精度

        2. 写出与testbench文件重名的module

        3. 把例化所用到的变量列出来

        4. 例化模块

        5. 编写测试数据

  • dumpfile("name.vcd"); 用于产生相应name.vcd波形文件
  • 注意延时输入以产生方波(#号加时间单位)

注意事项

波形文件要命名为wave.vcd,因为插件的simulate指令默认打开wave.vcd

testbench文件(tb_full_adder.v)

`timescale 1ps/1ps                 // 1.设置timescale,时间单位可设为1ps,精度1ps
`include "full_adder.v"            //   有时候编译提示需要include头文件
                                   //   `include相当于C里的#include

module tb_full_adder;              // 2.写出与testbench重名的module

    reg Ai, Bi, Ci;                // 3.列出例化所用到的变量
    wire Si, Ciout;

    full_adder name(               // 4.例化full_adder.v里的全加器模块
        .Ai(Ai),
        .Bi(Bi),
        .Ci(Ci),
        .Si(Si),
        .Ciout(Ciout));

    initial begin                  // 5.下面开始编写测试数据:

        $dumpfile("wave.vcd");     //   产生波形文件的命令
        $dumpvars;                 //   使所有变量都参与仿真的命令

        Ai=1'b0; Bi=1'b0; Ci=1'b0; // 6.以一个时间单位(#1),本例中即1ps的间隔输入测试数据
        #1  Ai=1'b0; Bi=1'b0; Ci=1'b1;
        #1  Ai=1'b0; Bi=1'b1; Ci=1'b0;
        #1  Ai=1'b0; Bi=1'b1; Ci=1'b1;
        #1  Ai=1'b1; Bi=1'b0; Ci=1'b0;
        #1  Ai=1'b1; Bi=1'b0; Ci=1'b1;
        #1  Ai=1'b1; Bi=1'b1; Ci=1'b0;
        #1  Ai=1'b1; Bi=1'b1; Ci=1'b1;
        #1;
    end
endmodule

三、模拟仿真

右键testbench文件,选择“simulate”

弹出窗口后找到相应的变量,缩放观察波形

simulate操作步骤


参考链接

VerilogHDL插件操作步骤
用VS Code + iverilog + GTKwave仿真Verilog_JeronZhou的博客-CSDN博客

文章编写不易,有用的话还请点个赞吧~

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VScode配置Verilog HDL,你可以按照以下步骤操作: 1. 安装Verilog插件:打开VScode,点击左侧的扩展图标(或按下`Ctrl+Shift+X`),搜索并安装适用于Verilog HDL的插件,如"Verilog HDL"或"vscode-verilog-hdl"。 2. 创建Verilog文件:在VScode创建一个新的Verilog文件,点击左侧的文件图标(或按下`Ctrl+N`),然后将文件保存为`.v`或`.sv`扩展名。 3. 配置语法高亮:VScodeVerilog插件通常会自动识别并应用语法高亮。如果没有自动启用,请点击右下角的语言模式,选择"Verilog HDL"。 4. 配置Linting(可选):如果你希望在编写Verilog代码时进行语法检查和错误提示,可以配置Linting。插件通常提供了一些配置选项,例如指定使用的Lint工具和配置文件。你可以在VScode的设置搜索相关选项进行配置。 5. 配置代码格式化(可选):如果你希望对Verilog代码进行自动格式化,可以配置代码格式化选项。插件通常支持使用外部工具(如Verible、Verilator)进行代码格式化。你可以在VScode的设置搜索相关选项进行配置。 6. 配置仿真和调试(可选):如果你希望在VScode进行Verilog代码的仿真和调试,你可以寻找适用于Verilog仿真器插件,并按照插件提供的说明进行配置。 请注意,具体的配置步骤可能因插件或工具而异。建议你参考插件的文档或查找相关教程以获取更详细配置指导。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值