Mac Verilog HDL VScode Gtkwave配置

Version:Sequoia 15.1 (24B83) 2024-11-06

一堆教程都是失效的,最后从源码安装GTKwave成功。

brew install icarus-verilog verilator graphviz gtk4 cmake

brew install desktop-file-utils shared-mime-info       \
             gobject-introspection gtk-mac-integration \
             meson ninja pkg-config gtk+3

git clone "https://github.com/gtkwave/gtkwave.git"
cd gtkwave
meson setup build && cd build && meson install

# 用法
gtkwave [path to a .vcd, .fst, .ghw dump file or a .gtkw savefile]

写个ALU测试一下

alu.v

module alu (
    input [3:0] a, b,
    input [2:0] op,
    output reg [3:0] result
);

always @(*) begin
    case (op)
        3'b000: result = a + b; // 加法
        3'b001: result = a - b; // 减法
        3'b010: result = a & b; // 按位与
        3'b011: result = a | b; // 按位或
        3'b100: result = a ^ b; // 按位异或
        3'b101: result = ~a;    // 按位取反
        default: result = 4'b0000;
    endcase
end

endmodule

alu_tb.v:

 

`timescale 1ns/10ps
module ALU_tb;
reg [3:0] A;
reg [3:0] B;
reg [2:0] operation;
wire [3:0] result;
wire cout;
 
ALU ALU(A, B, operation, result, cout);

initial begin
    $dumpfile("alu.vcd");
    $dumpvars(0, ALU_tb);

    // Initial values
    A = 4'b0000; B = 4'b0000; operation = 3'b000;
    #20;
    
    // Test cases
    A = 4'b0001; B = 4'b0001; operation = 3'b000; // A + B
    #20;
    A = 4'b0001; B = 4'b0001; operation = 3'b001; // A - B
    #20;
    A = 4'b0001; B = 4'b0001; operation = 3'b010; // B + 1
    #20;
    A = 4'b0001; B = 4'b0001; operation = 3'b011; // B - 1
    #20;
    A = 4'b1001; B = 4'b0001; operation = 3'b100; // NOT A
    #20;
    A = 4'b0001; B = 4'b0010; operation = 3'b101; // A XOR B
    #20;
    A = 4'b0001; B = 4'b0001; operation = 3'b110; // A AND B
    #20;
    A = 4'b0001; B = 4'b0000; operation = 3'b110; // A AND B
    #20;
    A = 4'b0001; B = 4'b0000; operation = 3'b111; // A OR B
    #20;
    A = 4'b0000; B = 4'b0000; operation = 3'b111; // A OR B
    #20;

    $finish;
end

endmodule

编译出alu.vcd文件:

(HDL) szy@AppleM2 实验1 % iverilog -o alu_tb alu.v alu_tb.v vvp alu_tb

 使用gtkwave查看波形图:

(HDL) szy@AppleM2 实验1 % gtkwave alu.vcd   

 把左下角四个Signals都挨个选中点出来:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值