11.1 编写测试验证程序
测试验证程序有三个主要目的:
- 产生模拟激励(波形)。
- 将输入激励加入到测试模块并收集其输出响应;
- 将响应输出与期望值进行比较。
Verilog HDL提供了大量的方法以编写测试验证程序。在本章中,我们将对其中的某些方法进行探讨。典型的测试验证程序形式如下:
module Test_Bench;
//通常测试验证程序没有输入和输出端口。
Local_reg_and_net_declarations
Generate_waveforms_using_initial_&_always_statements
Instantiate_module_under_test
Monitor_output_and_compare_with_expected_values
endmodule
测试中,通过在测试验证程序中进行实例化,激励自动加载于测试模块。
11.2 波形产生
有两种产生激励值的主要方法:
l) 产生波形,并在确定的离散时间间隔加载激励。
2)根据模块状态产生激励,即根据模块的输出响应产生激励。
通常需要两类波形。一类是具有重复模式的波形,例如时钟波形,另一类是一组指定的值确定的波形。
11.2.1 值序列
产生值序列的最佳方法是使用initial语句。例如:
initial
begin
Reset - 0;
#100 Reset = 1;
#80 Reset = 0;
#30 Reset = 1;
end