基本的Testbench的搭建
- 对被测试设计的顶层接口进行例化。
- 给被测试设计的输入接口添加激励。
- 判断被测试设计的输出响应是否满足设计要求。
testbench中的例化应该把input转换成reg,因为待测试设计的输入值是由testbench决定的。相应的output就应该转换成wire,因为待测试设计的输出值不是由testbench决定的。如果是inout端口,在例化中也是一个wire.
基本步骤
- 设置仿真的基本单位和精度
- 编写激励文件名
- 将源文件的输入以reg类型表示,将输出以wire类型表示
- 给各个输入基于激励,以便得出输出的结果与理论的输出结果是否一致。提示:可以将每个输入激励都以initial块编写,内容包含输入的初始化和赋值。
- 例化源文件
例如:按键消抖
module key_filter
#(parameter CNT_MAX = 20'd999_999 //计数器计数最大值
)
(input wire sys_clk , //系统时钟 50MHzinput wire sys_rst_n , //全局复位input wire key_in , //按键输入信号output reg key_flag //key_flag 为 1 时表示消抖后检测到按键被按下//key_flag 为 0 时表示没有检测到按键被按下
);
//********************************************************************//
//****************** Parameter and Internal Signal *******************//
//****************************************