Verilog是由模块组成,模块之间可以嵌套使用,可是Verilog中的测试模块怎么用?
是把测试模块直接和主模块放在一起,还是重新建立一个Verilog文件,把测试模块放进去呢?
测试模块一般用来产生测试波形,可是在什么地方可以看到激励波形呢?一些文章在介绍实例中只是提供了
源程序和测试模块,还有测试输出的波形,
比如
模块源代码:
//--------------- compare.v -----------------
module compare(equal,a,b);
input a,b;
output equal;
assign equal=(a==b)?1:0; //a等于b时,equal输出为1;a不等于b时,
//equal输出为0。
endmodule
测试模块用于检测模块设计得正确与否,它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进行修改。
测试模块源代码:
`timescale 1ns/1ns //定义时间单位。
`include "./compare.v" //包含模块文件。在有的仿真调试环境中并不需要此语句。
//而需要从调试环境的菜单中键入有关模块文件的路径和名称
module comparetest;
reg a,b;
wire equal;
initial //initial常用于仿真时信号的给出。
begin
a=0;
b=0;
#100 a=0; b=1;
#100 a=1; b=1;
#100 a=1; b=0;
#100 $stop; //系统任务,暂停仿真以便观察仿真波形。
end
compare compare1(.equal(equal),.a(a),.b(b)); //调用模块。
endmodule
仿真波形(部分):
[此贴子已经被作者于2007-5-2 16:21:42编辑过]
把测试模块直接和主模块放在一起,
运行测试模块源代码,之后就可以了
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |