Подтвердить что ты не робот

Использование провода или рекорда с вводом или выводом в Verilog

Когда вы объявляете что-то в качестве ввода или вывода, откуда вы знаете, нужно ли объявлять его как reg или wire?

4b9b3361

Ответ 1

reg и wire укажите способ назначения объекта и, следовательно, имеют смысл только для выходов.

Если вы планируете назначать свой вывод в последовательном коде, например, в блоке always, объявите его как reg (который действительно является неправильным для "переменной" в Verilog). В противном случае это должен быть wire, который также является значением по умолчанию.

Ответ 2

An output reg foo является просто сокращением для output foo_wire; reg foo; assign foo_wire = foo. Это удобно, когда вы планируете регистрировать этот вывод в любом случае. Я не думаю, что input reg имеет смысл для module (возможно, task). input wire и output wire совпадают с input и output: это более явное выражение.

Ответ 3

Используемый вами компилятор кода Verilog будет определять, что вам нужно делать. Если вы используете нелегальный синтаксис, вы получите ошибку компиляции.

An output также должен быть объявлен как reg, только если он назначен с помощью "процедурного присвоения". Например:

output reg a;
always @* a = b;

Нет необходимости объявлять output как wire.

Нет необходимости объявлять input как wire или reg.

Ответ 4

в основном рег используется для хранения значений. Например, если вам нужен счетчик (который будет считать и, следовательно, будет иметь некоторое значение для каждого подсчета), мы будем использовать рег. С другой стороны, если у нас есть простой сигнал с 2 значениями 0 и 1, мы объявим его как провод. Wire не может удерживать значения. Назначение значений для провода приводит к проблемам....

Ответ 5

просмотр в домене цифровой схемы

  • Провод создаст проводной выход, которому может быть назначен только любой вход, используя оператор присваивания, поскольку оператор присваивания создает порт/контактное соединение, и провод может быть соединен с портом/выводом
  • Регистр создаст регистр (D FLIP FLOP), который получает или получает входы на основе списка чувствительности либо он может быть часами (нарастанием или падением) или комбинационным фронтом.

так что это полностью зависит от вашего использования, нужно ли создавать регистр и пометить его в соответствии с списком чувствительности или вы хотите создать назначение порта/выводов