Jump to content
    

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

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

  wire      a;
  wire      a;
  reg       a;

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Действительно в стандарте 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);

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

1 hour ago, yes said:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...