手把手教你Modelsim仿真【2020.4版本】

  1. 首先新建一个文件夹【test5】

  2. 打开Modelsim,依次选择【File】->【Change Directory】,把目录选择到创建的【test5】文件夹。
    手把手教你Modelsim仿真【2020.4版本】_第1张图片

  3. 创建库。依次选择【File】->【New】->【Library】
    手把手教你Modelsim仿真【2020.4版本】_第2张图片
    一般我们选择第三个,库名和物理名称设置成work,点击OK。此时【test5】文件夹下就会多一个work的文件夹。
    手把手教你Modelsim仿真【2020.4版本】_第3张图片

  4. 创建项目。Project Name设置为test5,其余默认,OK。
    手把手教你Modelsim仿真【2020.4版本】_第4张图片

  5. 创建新文件。【Create New File】。
    手把手教你Modelsim仿真【2020.4版本】_第5张图片
    此时,我仿真一个加法器。创建一个文件名为add的verilog文件。
    手把手教你Modelsim仿真【2020.4版本】_第6张图片
    同时还要创建一个testbench文件,用来测试,命名为add_tb,同样是verilog文件(有的地方是.vt文件,一样的)。
    手把手教你Modelsim仿真【2020.4版本】_第7张图片

  6. 编写代码:

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

写完之后记得保存,不然编译会出问题。

  1. 编译文件。【Compile】->【Compile all】
    手把手教你Modelsim仿真【2020.4版本】_第8张图片
    编译完成之后,Status会由?变成√
    手把手教你Modelsim仿真【2020.4版本】_第9张图片
  2. 仿真。【Simulate】->【Start Simulation】
    手把手教你Modelsim仿真【2020.4版本】_第10张图片

选中add和add_tb文件,OK。
手把手教你Modelsim仿真【2020.4版本】_第11张图片
仿真完成。如果没有显示,记得把【Layout】选成【Simulate】。手把手教你Modelsim仿真【2020.4版本】_第12张图片
选择【Library】->【work】,选中add_tb文件,【Simulate】
手把手教你Modelsim仿真【2020.4版本】_第13张图片
手把手教你Modelsim仿真【2020.4版本】_第14张图片

把【Object】里的文件都拖到右边的【Wave】中(如果没有【Object】,则到【View】中勾选即可)。点击Run-All出现波形。
手把手教你Modelsim仿真【2020.4版本】_第15张图片
为了方便观察波形,我们可以选择无符号类型的标注
手把手教你Modelsim仿真【2020.4版本】_第16张图片
调节上方的放大镜可以放大/缩小波形。可以看到在0,10000ns和20000ns时刻的时刻实现了相加。
手把手教你Modelsim仿真【2020.4版本】_第17张图片

你可能感兴趣的:(Modelsim,Verilog,fpga开发,嵌入式硬件,硬件工程)