Я получаю ошибку синтаксического анализа из строки 15 этого кода.Получение ошибки синтаксического анализа в регистровой декларации
12: module DoShellSort(
13: input [10*20-1:0] toSort,
14: output [10*20-1:0] sorted
15: reg arrBitSize
16:);
Вот часть моего стенда, где я инициализирую входные и регрессивные переменные.
module ShellSort_tb;
reg [10*19:0] toSort, arrBitSize;
wire [10*19:0] sorted;
integer i;
DoShellSort ss_tb ([10*19:0] toSort, [10*19:0] sorted, arrBitSize);
// Input values you want to sort here
// Note: Should be 20 bits in size
initial $readmemh ("memory_hex.txt", toSort);
initial begin
#1 $display("\nThis program implements SHELL SORT to arrange values.\n");
// Display initial array
#10 $display("Array to sort: ");
#10 for (i = 0; i < arrBitSize + 1; i = i + 1)
$write("%h", toSort[i]);
#10 arrBitSize = 4'd9;
// ................
endmodule
Я синтезирую с помощью iVerilog. Вот сообщение об ошибке:
Может кто-нибудь помочь мне, почему я получаю синтаксическую ошибку? Благодаря!
В определении модуля вы можете иметь только сигналы ввода, вывода или 'inout'. 'reg' неприемлем. Я предлагаю вам узнать о 'параметрах' в Verilog, потому что мне кажется, что это должно быть именно то, что вам нужно. – Qiu