这是我在计算机科学系的第一年,我正在修读逻辑设计课程并在Verilog工作。
出现了这个问题,我该如何解决呢?
作业说:
实现布尔函数
y=a ⊕ b ⊕ c
其中⊕代表异或操作。
我写下这个:
module experiment1(A,B,C,F);
input A,B,C;
output F;
reg F;
always@(A or B or C)
F<= A^B^C;
endmodule
当我运行测试平台时,它只需要A和B,它不包括C。
然后我将“C”添加到测试平台,它工作正常。为什么测试台不会自动将“C”添加到计算中?
Testbench代码:
module tb_experiment1;
// Inputs
reg A;
reg B;
// Outputs
wire F;
// Instantiate the Unit Under Test (UUT)
experiment1 uut (
.A(A),
.B(B),
.F(F)
);
initial begin
// Initialize Inputs
A = 1;
B = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
end
endmodule
答案 0 :(得分:0)
您需要将C连接到DUT,然后使用已知值驱动它:
module tb_experiment1;
// Inputs
reg A;
reg B;
reg C;
// Outputs
wire F;
// Instantiate the Unit Under Test (UUT)
experiment1 uut (
.A(A),
.B(B),
.C(C),
.F(F)
);
initial begin
// Initialize Inputs
A = 1;
B = 0;
C = 1;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
end
endmodule