当前位置:   article > 正文

win10下使用iverilog仿真+gtkwave/WaveDrom查看波形_gtkwave怎么看波形

gtkwave怎么看波形

简介

在win10环境下,使用iverilog进行简单的verilog编译仿真,使用gtkwave和WaveDrom查看仿真波形。
iverilog for windows提供了iverilog和gtkwave的捆绑安装程序,下载链接:https://bleyer.org/icarus/,下载安装后要配置环境变量。
WaveDrom是一个网页波形编辑器,链接:https://wavedrom.com/

被测试模块

状态机写一个1101序列检测模块:

module test(
    input clk,
    input rst_n,
    input in,
    output out
);
    localparam IDLE = 1, H = 2, HH = 3, HHL = 4, HHLH = 5;
    reg [2:0] state;

    always @(posedge clk, negedge rst_n) begin
        if(!rst_n)
            state <= IDLE;
        else begin
            case(state)
                IDLE: state <= in ? H : IDLE;
                H   : state <= in ? HH : IDLE;
                HH  : state <= in ? HH : HHL;
                HHL : state <= in ? HHLH : IDLE;
                HHLH: state <= in ? H : IDLE;
                default: state <= IDLE;
            endcase 
        end
    end

    assign out = (state == HHLH);
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

testbench

由于需要查看波形,所以调用系统函数$dumpfile(“wave.vcd”)将波形输出到wave.vcd文件,调用$dumpvars输出所有波形。写一个简单的tb,直接给出1101序列的激励:

`timescale 1ns/1ns
module test_tb;
    reg clk = 1;
    always #10 clk = ~clk;

    reg rst_n = 0;

    reg in = 0;
    wire out;

    initial begin            
        $dumpfile("wave.vcd"); // 指定用作dumpfile的文件
        $dumpvars; // dump all vars
    end

    initial begin
        #20 rst_n <= 1;
        #20 in <= 1;
        #20 in <= 1;
        #20 in <= 0;
        #20 in <= 1;
        #20 in <= 0;
        #40;
        $display("it works");
        $finish;
    end

    test inst_test (
        .clk   (clk), 
        .rst_n (rst_n), 
        .in    (in), 
        .out   (out)
    );
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

编译仿真

使用iverilog命令进行编译,默认输出文件名为a.out:

 iverilog test.v test_tb.v
  • 1

使用vvp命令对a.out执行仿真:

PS E:\WorkSpace\test> vvp a.out
VCD info: dumpfile wave.vcd opened for output.
it works
  • 1
  • 2
  • 3

执行仿真后,波形文件输出到了wave.vcd文件中,可以用gtkwave软件和WaveDrom网页查看波形。

使用gtkwave查看波形

执行gtkwave命令查看波形:

 gtkwave wave.vcd
  • 1

执行后会弹出gtkwave软件,不过没有波形,要手动选择左侧的tb,然后添加想要查看的波形即可:
在这里插入图片描述

使用WaveDrom查看波形

使用WaveDrom网页查看波形需要将vcd波形文件转化为wdrom文件,我使用sublime编辑器的verilog-Gadget插件实现该功能。
使用sublime编辑器打开wave.vcd文件,然后鼠标右键,选择VCD to WaveDrom,即可生成wdrom文件:
在这里插入图片描述
将这些代码复制到WaveDrom网页中,即可查看波形:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/516641
推荐阅读
相关标签
  

闽ICP备14008679号