我是Verilog编程的新手,想测试以下模块。有人可以指出我正确的方向,从哪里开始这个?我是否只需编写一堆for循环来模拟四个输入的所有可能值,然后使用一些显示语句来查看结果?
module HW7P1( A1, A0, B1, B0, O );
input A1, A0, B1, B0;
wire O;
assign O = (!A1 & B1) | (!A1 & !A0 & B0) | (!A0 & B1 & B0);
endmodule
答案 0 :(得分:1)
创建一个测试平台模块TB 101
由于不同输入的数量对您来说很小(16),您将能够详尽地检查所有输入。
您可以使用for循环顺序遍历所有输入值。最好在循环中随机分配输入($urandom
)。
您应该创建一个检查器模块,其中包含每个输入的一组预期输出。每次输入更改时,都应检查实际输出与预期输出。如果它们不匹配,您应该$display
出现错误消息。
有可用于执行此操作的高级验证方法,例如UVM。