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编辑过] |