На самом деле это не глупый вопрос, несмотря на все downvotes. В начале, Дизайнер создал сети и регистры. Сети были предназначены как соединения между аппаратными элементами и имели значения, приводимые в них; они не придерживались этих ценностей. Сети обычно объявляются как wire
. Регистры были элементами хранения данных, а сделал, удерживая значение; они обычно объявляются как reg
. Со временем стало ясно, что это разделение (какое-то похожее на «оборудование») не имеет смысла, и, по крайней мере, было сделано одно предложение отказаться от различий в сети/регистре с языком. Это никогда не случалось (если вы не считаете SystemVerilog «Verilog», которого я не знаю).
Итак, ваш вопрос имел смысл 30 лет назад, и ваш ответ был бы «правильным».
Однако на практике не имеет значения, что вы используете. Реальное различие заключается в том, что вы можете назначать только reg
из последовательного кода (always
/etc) и в wire
. Это требование совершенно произвольно и существует только по историческим причинам. Вам просто нужно изучить правила.
Возможный дубликат [Использование провода или рекорда с вводом или выводом в Verilog] (http://stackoverflow.com/questions/5360508/using-wire-or-reg-with-input-or-output-in-verilog) – Qiu
Не дубликат - другой вопрос касается только механики задания, а не «почему». – EML