我已经为我的设计源和测试平台附加了代码。我无法获得N22
和N23
的输出。
第一部分是C17的下载网表
module c17 (N1,N2,N3,N6,N7,N22,N23);
input N1,N2,N3,N6,N7;
output N22,N23;
wire N10,N11,N16,N19;
nand NAND2_1 (N10, N1, N3);
nand NAND2_2 (N11, N3, N6);
nand NAND2_3 (N16, N2, N11);
nand NAND2_4 (N19, N11, N7);
nand NAND2_5 (N22, N10, N16);
nand NAND2_6 (N23, N16, N19);
endmodule
下一部分是我的测试台,它遍历所有二进制输入,但我无法获得输出。
`timescale 10ns / 1ps
module test;
reg N1,N2,N3,N6,N7;
wire N22,N23;
integer i;
initial begin
$monitor(N1,N2,N3,N6,N7,N22,N23);
for (i=0; i<31; i=i+1)begin
{N1,N2,N3,N6,N7} = i;
#1;
end
end
endmodule
由于电线N22
和N23
在测试台中未驱动,因此它们始终为z
。您需要将c17
模块的实例添加到测试台:
module test;
reg N1,N2,N3,N6,N7;
wire N22,N23;
integer i;
c17 dut (
// Inputs:
.N1 (N1),
.N2 (N2),
.N3 (N3),
.N6 (N6),
.N7 (N7),
// Outputs:
.N22 (N22),
.N23 (N23)
);
initial begin
$monitor(N1,N2,N3,N6,N7,N22,N23);
for (i=0; i<31; i=i+1) begin
{N1,N2,N3,N6,N7} = i;
#1;
end
end
endmodule
现在它们在0和1之间切换。