Вызов массивов в Verilog Структурное описание - PullRequest
0 голосов
/ 27 октября 2018

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

Код выглядит следующим образом:

модуль 1:

module Koge_4(A,B,Cin,S,Cout);
input [3:0] A,B;
input Cin;
output [3:0]S;
output Cout;

Модуль 2:

module Koge_64(A,B,Cin,S,Cout);
input [63:0]A,B;
input Cin;
output [63:0]S;
output Cout;
wire [15:0]c;
Koge_4 K1  ([3:0]A,[3:0]B,Cin,[3;0]S,c[0]); // sample structural code

Я в основном пытаюсь вызвать 4-битный (модуль 1) для каждых 4-х бит входного вектора в модуле 2. Следовательно, вызываю его 16 раз для 64-битных.

1 Ответ

0 голосов
/ 27 октября 2018

Вы пропустили endmodule в примере и имеете полный беспорядок с синтаксисом verilog (см. Комментарий инструмента). Пожалуйста, прочитайте учебник Verilog.

Вот очищенная версия вашего кода, которую вы можете скомпилировать.

module Koge_4(A,B,Cin,S,Cout);
   input [3:0] A,B;
   input Cin;
   output [3:0]S;
   output Cout;
endmodule

module Koge_64(A,B,Cin,S,Cout);
   input [63:0]A,B;
   input Cin;
   output [63:0]S;
   output Cout;

   wire [15:0]c;

   Koge_4 K1  (A[3:0], B[3:0], Cin, S[3:0], c[0]); // sample structural code
endmodule // Koge_64
...