组合逻辑块的测试平台
测试平台是不需要综合的,因此SystemVerilog的所有语法都可以用来编写测试平台。测试平台的模块不需要声明输入和输出,测试平台包括了被测试对象、产生测试激励的信号源及观察或记录被测对象输出的机制。
测试平台通常实现两大功能:1)产生被测模块所需的输入激励:2)检查被测模块的输出结果。
module adder #(parameter N = 4)
(output logic [N-1:0] Sum,output logic Count,input logic [N-1:0] A,B,input logic Cin
);always_comb{Count,Sum} = A + B + Cin;endmodule
module TestBitAdder;parameter N = 4;
logic Cin ,Count;
logic [N-1:0] Sum,A,B;adder #(N) s0(.*);initial
beginCin = '0;A = 4'b0000;B = 4'b0000;#5ns A = 4'b1111;#5ns Cin = '1;#5ns A = 4'b0111;#5ns B = 4'b1111;#5ns Cin = '0;
endendmodule
在实例引用加法器adder时,用到一个参数(N)和一个将激励信号与加法器连接的端口匹配符(*)。只有当测试平台中的线网和变量名与被实例引用的模块的端口名完全一致时,才允许使用这种简化的端口连接方法。
请注意,时间是相对的,即每次赋值后等5ns,再进行下面一条语句的赋值。请记住,以关键字init