Я начинаю писать Verilog через xilinx.
Я узнал, что объявления портов должны быть такими, как показано ниже
module mealy(
nReset,
clk,
in,
out
);
input nReset;
input clk;
input in;
output out;
endmodule
Когда я использую xilinx, у него есть опция по умолчанию для установки переменной, это выглядит так:
module mealy(
input nReset,
input clk,
input in,
output out
);
endmodule
Иногда, когда я использую второй способ, он генерирует ошибку. В чем разница между двумя стилями?
Второстепенная проблема: при объявлении выходов как reg
s первый стиль работает правильно, т.е.
module mealy(
in,
out
);
output out;
input in;
reg out;
endmodule
При использовании второго стиля генерируется ошибка о том, что вы не можете объявить дважды.
module mealy(
input in,
output out
);
reg out;
endmodule
В чем дело? Я только новичок и не знаю, почему я должен объявлять рег.