Verilog代码书写及相关语法
test.v
module test(
input port_a ,
input port_b ,
input port_c ,
output wire port_d ,
output wire port_e ,
output wire port_f ,
output wire port_g ,
output wire port_h
);
assign port_d = port_a & port_b;
assign port_e = port_a | port_c;
assign port_f = ~port_a;
assign port_g = port_b ^ port_c;
assign port_h = port_a ^~ port_c;
endmodule
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
tb_test.v
`timescale 1ns / 1ns
module tb_test;
reg test_a;
reg test_b;
reg test_c;
wire rslt_d;
wire rslt_e;
wire rslt_f;
wire rslt_g;
wire rslt_h;
initial begin
test_a = 1;
test_b = 0;
test_c = 1;
#5
test_a = 0;
test_b = 1;
test_c = 1;
#5
test_a = 0;
test_b = 0;
test_c = 0;
end
test test_inst(
.port_a (test_a),
.port_b (test_b),
.port_c (test_c),
.port_d (rslt_d),
.port_e (rslt_e),
.port_f (rslt_f),
.port_g (rslt_g),
.port_h (rslt_h)
);
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
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
Modelsim仿真步骤
- 第一步:新建工程。
- 第二步:指定工程名和保存路径,其余默认不动。
- Project Name:aaa
- Project Location:./sim
- 第三步:添加已存在的文件test.v和tb_test.v。
- 第四步:编译添加后的文件。
- 编译成功后,可以看到文件的status变为绿色对号。
提示信息显示成功。
- 第五步:切换到Library下,找到work文件,点击+号,发现test和tb_test文件。
- 第六步:对tb_test文件启动仿真,文件上右键,
Simulate without Optimization
- 第七步:弹出的sim窗口中,可以看到例化模块名
- 第八步:在tb_test上右键添加Wave,在test_inst上右键添加Wave。
- 第九步:将Wave窗口独立显示出来,默认布局中点击如下图标。
- 第十步:Wave窗口左侧,测试端口和模块端口都已列表形式展现出来。
- 点击左下角图标,不显示路径,更为简洁
- 第十一步:智能分组,Ctrl + A,Ctrl + G。
- 第十二步:修改运行时间,点击Run
- 第十三步:点击Run后,波形不明显,点击全局预览
- 光标处放大
- 第十四步:检验波形是否正确,从而检验代码逻辑是否正确。