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

SV, соединить цепью два модуля

С некоторых пор перешёл на такой стиль: вместе с инстансом модуля создаётся объект структуры с именем почти как у модуля (отличается префиксом/суффиксом), в которой все сигналы модуля продублированы. Эти сигналы подсоединены к портам модуля. Далее в коде используются эти сигналы структуры. Синтаксически получается почти так же, как в AHDL inline использование модулей, что было очень удобным и чего в верилоге мне всегда не хватало.

 

Писанины со структурой чуток побольше, зато системно всё получается стройно, логично и прозрачно. Для упрощения создания такой связки собираюсь заюзать такой подход.

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


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

С некоторых пор перешёл на такой стиль: вместе с инстансом модуля создаётся объект структуры с именем почти как у модуля (отличается префиксом/суффиксом), в которой все сигналы модуля продублированы. Эти сигналы подсоединены к портам модуля.

У меня есть типы - структуры (например, ctrl_t) с именами, близкими к имени модуля (Control_m). Только создаю я структуры внутри модулей. Думал сделать и так, как вы говорите. Проблема в том, что не все сигналы структуры мне нужно выводить из модуля наружу. Здесь прав des00, нужно думать об интерфейсе между модулями. Но сделать всё без взаимодействия между модулями не получится. Возможно, нужно было сделать модули более крупными.

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


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

У меня есть типы - структуры (например, ctrl_t) с именами, близкими к имени модуля (Control_m). Только создаю я структуры внутри модулей.

Боюсь, вы не до конца поняли меня. Дело не в использовании структур как таковых. А в применении объекта структуры с целью дублирования портов модуля. По сути - это удобное объединение кучи проводков, которые используются для межмодульного соединения в верилогах.

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


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

Боюсь, вы не до конца поняли меня. Дело не в использовании структур как таковых. А в применении объекта структуры с целью дублирования портов модуля. По сути - это удобное объединение кучи проводков, которые используются для межмодульного соединения в верилогах.

Вроде, так и понял. Создавал структуры (ctrl_t) и внутри топ-модуля, к ним цеплял порты дочерних модулей. Но это мне ничего особенно не дало. Все равно потом структуры нужно по отдельным проводкам заводить в разные модули. А на общую шину, заходящую в несколько модулей, у меня есть интерфейс с модпортами.

Да там и проводков между модулями не так и много.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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