не может разработать экземпляр модуля в Verilog - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь сделать 4-битный полный сумматор в verilog, однако кажется, что fulladder не может быть создан.Я также не могу отследить ошибку.

`timescale 1 ns / 1 ps

module halfadder(input a, input b, output s, output c);
    xor (s, a, b);
    and (c, a, b);
endmodule

module fulladder(input cin, input a, input b, output s, output c);
wire c1, s1, c2;

    halfadder (a, b, s1, c1);
    halfadder (cin, s1, s, c2);

    or (c, c1, c2);

endmodule

module bitadder(input cin, input [3:0] a, input [3:0] b, output [3:0] s, output c);
wire c0,c1,c2;

    fulladder (cin, a[0], b[0], s[0], c0);
    fulladder (c0, a[1], b[1], s[1], c1);
    fulladder (c1, a[2], b[2], s[2], c2);
    fulladder (c2, a[3], b[3], s[3], c);

endmodule

1 Ответ

0 голосов
/ 22 февраля 2019

Вам необходимо добавить имена экземпляров для экземпляров всех ваших модулей: полумесяца и фулладеры.

module fulladder(input cin, input a, input b, output s, output c);
wire c1, s1, c2;

    halfadder ha0 (a, b, s1, c1);
    halfadder ha1 (cin, s1, s, c2);

    or (c, c1, c2);

endmodule

module bitadder(input cin, input [3:0] a, input [3:0] b, output [3:0] s, output c);
wire c0,c1,c2;

    fulladder fa0 (cin, a[0], b[0], s[0], c0);
    fulladder fa1 (c0, a[1], b[1], s[1], c1);
    fulladder fa2 (c1, a[2], b[2], s[2], c2);
    fulladder fa3 (c2, a[3], b[3], s[3], c);

endmodule

Имена экземпляров для примитивов (xor и т. Д.) Являются необязательными.

...