前一节已经叙述过,要仿真设计的功能,必须为其建立一个testbench 也叫仿真平台。为了验证设计模块功能的正确性,我们通常需要在testbench中编写一些激励给设计模块,同时观察这些激励在设计模块(DUV)中的响应是否与我们的期望值一致。
要充分验证一个设计,需要模拟各种外部的可能情况,特别是一些边界情况,因为往往是这些边界情况最容易出问题。
下图显示了一个DUV。我们不仅需要产生时钟信号和复位信号,而且还需要编写一系列的仿真向量,同时观察DUV的响应,确认仿真结果。
一、仿真激励与被测对象的连接
在testbench中需要实例化被测试模块(DUV),DUV的端口与testbench中的信号互连需要遵循一定的规则
这里需要提醒的是,驱动双向信号的也一定是一个三态的线网,而不能是寄存器类型,否则就会发生冲突。
二、使用initial语句和always语句
initial和always是两种基本的过程结构语句,在仿真开始时就相互并行执行。通常来说,被动地检测响应时使用always语句,而主动地产生激励时则使用initial语句。
init