Как выполнить циклы в Verilog? - PullRequest
4 голосов
/ 08 марта 2011

Выполнять ли циклы в Verilog параллельно? Мне нужно вызывать модуль несколько раз, но они должны выполняться одновременно. Вместо того, чтобы писать их по одному, я думал об использовании цикла for. Будет ли это работать так же?

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

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

Для этого вы можете использовать генерировать операторы Verilog для автоматического создания экземпляров.

Вы также можете использовать функцию auto_template в Emacs 'превосходный режим verilog . Я предпочитаю такой подход, так как каждый экземпляр явно появляется в моем исходном коде, и мне легче обнаруживать ошибки.

0 голосов
/ 08 марта 2011

Как ответил jlf, вы ищете оператор генерирования.Вы можете использовать цикл for для моделирования комбинационной логики, такой как прохождение всех битов в регистре и вычисление выходных данных.Это будет всегда блок или даже начальный блок в вашем тестовом стенде.

...