无法获得Verilog测试台的输出值(从ISCAS 85模拟C17电路)

问题描述 投票:0回答:1

我已经为我的设计源和测试平台附加了代码。我无法获得N22N23的输出。

第一部分是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
verilog vivado
1个回答
0
投票

由于电线N22N23在测试台中未驱动,因此它们始终为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之间切换。

© www.soinside.com 2019 - 2024. All rights reserved.