本节内容介绍在 test bench 文件编写完成并且在Quartus II 也做好了正确设置后,介绍modelsim下如何进行仿真设置及modelsim 的初步使用。更复杂的使用见modelsim仿真进阶篇。本节还是以“ testbench 编写初步”一节的例子作为本节使用范例来介绍。例子重新书写如下:
例1:
实体部分:
module add
(
input [3:0] a,
input [3:0] b,
output [4:0] c
);
assign c = a + b;
endmodule
test bench部分
`timescale 1 ns / 1 ps
module tb_test
(
);
reg [3:0] ta,tb;
wire [4:0] tc;
integer i, j;
initial
begin
ta = 0;
tb = 0;
i = 0;
j = 0;
#10
for(i = 0; i < 16; i = i + 1)
begin
for(j = 0; j < 16; j = j + 1)
#10 tb = tb + 1;
ta = ta + 1;
end
end
add add_inst
(
.a (ta),
.b (tb),
.c (tc)
);
endmodule
仿真结果如图1所示:

图1
ModelSim的整体界面如图2:

图2
- 运行工具的使用,在图2中红框标注的部分,是Modelsim程序运行工具栏,放大后如图3所示,

图3
图3中最左边的按钮
- restart(程序从头重新运行),相当于复位。
- Run(运行),每次点击运行时间由左边的Run length确定,如图3中的190 ps,可以修改成合适的值如100 ns等。
- ContinueRun是与break对应的,继续运行当前的程序。
- Run all ,运行直到结束。
- Break,中止当前运行的程序,与ContinueRun配合使用。
- stop,当激励是无限过程时,可以用stop按钮停止当前的运行程序。
Zoom工具栏,
图4
- Zoom In 展开波形界面
- Zoom Out 压缩波形界面
- Zoom All (full) 将整个波形压缩到页面内

图5
- Zoom In On Active Cursor 将波形界面以光标为中心展开

图6
- Zoom In between Active Cursor 将波形界面以第一光标为起点,以第二光标作为波形结束点展开。
如果要使用Zoom In between Active Cursor 功能,使用图7工具栏中的工具添加第二光标,添加后如图8,
图7

图9
配合以上工具的使用就可以初步操作Modelsim并观察仿真结果。
上面介绍了几个基本工具的使用,按下鼠标的滚轮拖动鼠标进行左上,左下,右上,右下移动也可以达到同样的效果。更多内容将在后续课程中介绍。
对应视频:

图8