Я пишу модуль для вычисления коэффициента и остатка путем повторного вычитания с использованием поведенческого моделирования в verilog. Я получаю сообщение об ошибке «недопустимый элемента модуля» для следующего кода:Ошибка недействительной ошибки модуля Verilog
module divider (dividend, divisor, quotient, remainder) ;
input [7:0] dividend ; // eight input lines modeled as a bus
input [7:0] divisor ; // select lines bundled as a bus
output reg [7:0] quotient ;
output reg [7:0] remainder ;
reg [7:0] r;
reg [7:0] q;
assign q = 0;
for(r = dividend; r >= divisor; r = r - divisor)
assign q = q + 1;
assign remainder = r;
assign quotient = q;
endmodule
module main;
reg [7:0] dd;
assign dd = 12;
reg [7:0] dr;
assign dr = 5;
reg [7:0] q;
reg [7:0] r;
divider(dd, dr, q, r);
$display("quotient %d", q);
$display("remainder %d",r);
endmodule
Это, кажется, общая ошибка, не может понять, как это исправить. Точное сообщение об ошибке:
23: syntax error
23: error: invalid module item.
24: syntax error
24: error: invalid module item.
Это решило ошибку на дисплее, но я получаю эту новую ошибку: 9: ошибка: genvar отсутствует для генерации переменной «loop» «r». 1 ошибка (-а) при разработке. – codeln
@codeln: Посмотрите «сгенерируйте» блоки в IEEE Std. – toolic
@toolic В соответствии с LRM вы можете одновременно включать только один активный монитор. Таким образом, в вашем коде выше вы будете отслеживать остаток, поскольку он заменит первый вызов '$ monitor'. Если вы хотите использовать '$ monitor', вам нужно объединить их в один вызов:' $ monitor ("quotient:% d; остаток:% d", q, r); ' – Unn