1 Star 2 Fork 1

两咸蛋 / verilog_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
HELP.md 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
qmfr 提交于 2022-08-29 21:46 . 初始化仓库,上传基本代码

[toc]

Vscode + iverilog + GTKWave搭建开源verilog仿真环境

安装

vscode

安装vscode之后安装 Verilog插件

1661741362912

iverlig GTKWave

Linux/WSL

安装iverilog和GTKWave
sudo apt-get install iverilog gtkwave
验证安装结果
iverilog -v
# 结果
# Icarus Verilog version 10.1 (stable) ()

gtkwave -v
# 结果
# GTKWave Analyzer v3.3.86 (w)1999-2017 BSI

Windows

下载地址iverilog.exe,下载完之后自带iverilog和gtkwave,勾选添加到环境变量,安装完成后需重启。

1661741506868

测试仿真环境

源码

//led_demo.v
module led_demo(
    input sys_clk,
    input sys_rst_n,

    output reg led
);

reg [7:0] cnt;

always @ (posedge sys_clk or negedge sys_rst_n)
begin
    if(!sys_rst_n)
        cnt <= 0;
    else if(cnt >= 10)
        cnt <= 0;
    else 
        cnt <= cnt + 1;
end

always @ (posedge sys_clk or negedge sys_rst_n)
begin
    if(!sys_rst_n)
        led <= 0;
    else if(cnt == 10)
        led <= !led;
end
endmodule
//led_demo_tb.v
`timescale 1ns/1ps
module led_demo_tb;
reg sys_clk;
reg sys_rst_n;
wire led;

/*iverilog */
initial
begin            
    $dumpfile("wave.vcd");        //生成的vcd文件名称
    $dumpvars(0, led_demo_tb);    //tb模块名称
end
/*iverilog */

initial
begin
    sys_clk = 1'b0;
    sys_rst_n = 1'b0;
    #60
    sys_rst_n = 1'b1;
    #1000 //仿真执行1000ns
    $stop; //必须要这个,iverilog停止仿真
end

always #10 sys_clk = ~sys_clk;

led_demo led_demo_ut0 (
    // Inputs
    .sys_clk(sys_clk),
    .sys_rst_n(sys_rst_n),

    // Outputs
    .led( led)
);
endmodule

编译

iverilog -o wave led_demo_tb.v led_demo.v
vvp -n wave -lxt2
gtkwave wave.vcd
Verilog
1
https://gitee.com/two_salted_eggs/verilog_study.git
git@gitee.com:two_salted_eggs/verilog_study.git
two_salted_eggs
verilog_study
verilog_study
master

搜索帮助