Перейти к содержанию
    

Декларирование сигналов в Verilog

С Verilog'ом знаком весьма поверхностно. Вопрос видимо детский... Но не понимаю

  wire      a;
  wire      a;
  reg       a;

У Vivado синтаксис этого фрагмента вопросов не вызывает. В результате а будет wire или reg?

И что вообще происходит с повторным декларированием сигналов в Verilog и, кстати, в SV?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Asb сказал:

 

В стандарте на verilog сказано : "It is illegal to redeclare a name already declared by a net, parameter, or variable declaration." стр 23 

https://www.csie.nuk.edu.tw/~stpan/course/Verilog1964-2005.pdf

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле во многом зависит от тула. Есть тулы, которые принимают последнее декларированное значение (оверрайдят), а есть которые будут использовать самое первое. Обычно это определяется опытным путём.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Действительно в стандарте illegal.

Но нет ни ошибок ни предупреждений пока не меняется разрядность.

Т.е дублирование строк деклараций ни к чему плохому не ведет. А что wire, что reg синтезатору видимо поровну...

Изначально вопрос возник отсюда

  `AXI4L_WIRE_BUS(m_tcp0_ctrl  16, 32, s_ctrl_aclk, s_ctrl_aresetn);
  `AXI4L_WIRE_BUS(m_tcp1_ctrl, 16, 32, s_ctrl_aclk, s_ctrl_aresetn);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

wire так и останется в железе wire

reg в зависимости от его применения может в железе превратиться в wire, в кусок логической цепочки, или в выход триггера

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с wire можно делать то, что нельзя с reg-ом - assign

также в wire можно указывать свойства драйвера weak, strong и т.п.

все это осталось со старых добрых времен, когда поведенческого синтеза еще не было и зачем нужен Verilog человечество еще не знало

--------------------

но сейчас вроде как можно писать logic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, yes said:

но сейчас вроде как можно писать logic

В СыстемВерилоге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...