2014-03-25 147 views
1

我是Verilog编程新手,想测试以下模块。有人能够指出我的方向是从哪里开始的?我是否必须编写一堆for循环来模拟四个输入的所有可能值,然后使用一些显示语句来查看结果?测试Verilog模块

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 

回答

1

创建一个测试台模块TB 101

由于不同的输入数量较少你(16),你将能够彻底检查所有的人。

您可以依次使用for循环遍历所有输入值。在循环中随机分配输入($urandom)会更好。

您应该为每个输入创建一个具有一组预期输出的检查器模块。每当您的输入发生变化时,您应该检查实际输出与您的预期输出。如果它们不匹配,则应该出现错误消息$display

有一些先进的验证方法可用于执行此操作,如UVM。