синтаксическая ошибка компилятора verilog неожиданный конец

#verilog

#verilog

Вопрос:

Я пишу тестовый стенд для модуля AND, но он выдает следующую ошибку near "end": syntax error, unexpected end.

вот мой код:

 module TestAND();

reg A;
reg B;
wire C;

AND inst(A,B,C);


initial begin
 A=1;
 B=0;
 #100
end 
 

Комментарии:

1. сделайте #100; вместо #100

Ответ №1:

Вам нужно добавить ; после #100 , и вы также пропускаете endmodule в конце.

Ответ №2:

Я вижу здесь пару вещей, у вас неверный тип данных: reg используется только в always блоке, и поэтому здесь все должно быть type wire . Кроме того, если я правильно помню, примитивы обычно сначала выводятся, поэтому вы, вероятно, захотите AND my_and (c,a,b);

Однако обычно вы не используете примитивы напрямую, если только вы не создаете библиотеки, и хотели бы использовать assign c = a amp; b; вместо этого.

Комментарии:

1. A reg может быть назначен в always initial блоке или. A wire может быть присвоен assign оператором или экземпляром модуля / примитива. Примитивы Verilog имеют имена в нижнем регистре, AND может ли определяемый пользователем модуль не отображаться.