Verilog: можно ли назначить вход модуля из самого модуля? - PullRequest
0 голосов
/ 03 января 2019

Я только что столкнулся со случаем, когда Verilog входы модуля были назначены из самого модуля!Я думал наверняка, что это приведет к ошибке любого симулятора Verilog, но нет, по крайней мере, один пропускает это!Как это может быть?!Разве это не вызывает трагедию «Х», как только что-то за пределами модуля назначает входное значение?Я ДЕЙСТВИТЕЛЬНО что-то здесь упускаю?

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

1 Ответ

0 голосов
/ 04 января 2019

В языке Verilog нет правил для потока данных, основанного на направлении порта.В SystemVerilog LRM есть раздел 23.3.3.1 Приведение к порту , в котором подробно описываются места, в которых ввод данных может быть приведен к выводу и наоборот.Однако инструменты синтеза имеют требования к кодированию, которые не позволяют нескольким драйверам использовать один и тот же сигнал.Таким образом, если есть драйверы как внутри, так и снаружи модуля, вы получите ошибки синтеза.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...