Не удается получить выходное значение для испытательного стенда Verilog (имитация цепи C17 из ISCAS 85) - PullRequest
0 голосов
/ 16 апреля 2020

Я приложил свой код для моего исходного кода и тестового стенда. Я не могу получить выходные данные для 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

1 Ответ

2 голосов
/ 16 апреля 2020

Поскольку провода 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.

См. Также: Testbench 101

...