首先新建一个文件夹【test5】
打开Modelsim,依次选择【File】->【Change Directory】,把目录选择到创建的【test5】文件夹。
创建库。依次选择【File】->【New】->【Library】 一般我们选择第三个,库名和物理名称设置成work,点击OK。此时【test5】文件夹下就会多一个work的文件夹。
创建项目。Project Name设置为test5,其余默认,OK。
创建新文件。【Create New File】。 此时,我仿真一个加法器。创建一个文件名为add的verilog文件。 同时还要创建一个testbench文件,用来测试,命名为add_tb,同样是verilog文件(有的地方是.vt文件,一样的)。
编写代码:
add.v
module add( input wire [7:0] a, input wire [7:0] b, output reg [8:0] out ); always@(*) begin out = a + b; end endmodule
add_tb.v
`timescale 1ns/1ns module add_tb (); reg [7:0] a; reg [7:0] b; wire [8:0] out; add i1( .a(a), .b(b), .out(out) ); initial begin a = 8'd 1; b = 8'd 2; # 10_000; a = 8'd 11; b = 8'd 12; # 10_000; a = 8'd 21; b = 8'd 22; # 10_000; $stop; end endmodule
写完之后记得保存,不然编译会出问题。
选中add和add_tb文件,OK。 仿真完成。如果没有显示,记得把【Layout】选成【Simulate】。 选择【Library】->【work】,选中add_tb文件,【Simulate】
把【Object】里的文件都拖到右边的【Wave】中(如果没有【Object】,则到【View】中勾选即可)。点击Run-All出现波形。 为了方便观察波形,我们可以选择无符号类型的标注 调节上方的放大镜可以放大/缩小波形。可以看到在0,10000ns和20000ns时刻的时刻实现了相加。