Последовательная установка модулей Verilog

Я пытаюсь реализовать алгоритм на аппаратном (ZedBoard), который имеет несколько модулей. Есть верхний модуль, и я создам все эти несколько модулей внутри верхнего модуля.

Примерно от 9 до 10 модулей, из которых 3 должны работать одновременно, остальные должны работать последовательно.

(Я знаю, что все модули внутри верхнего модуля работают одновременно. Это нормально с 3 модулями, которые должны работать одновременно, но как насчет остальных модулей, которые должны работать последовательно???), а также (я узнал, что мы не можем создавать экземпляры модулей внутри всегда или начального блока, который на самом деле не имеет смысла)

  1. Есть ли способ создания экземпляров модулей, чтобы они работали последовательно (как один за другим)????
  2. Кроме того, есть ли способ создания экземпляров модулей, чтобы они выполнялись условно?
  3. Можно ли этого добиться с помощью системного генератора????

К вашему сведению: я использую Verilog HDL и код должен быть синтезируемым

1 ответ

Verilog описывает аппаратное поведение. Все аппаратные элементы параллельны по своей природе. Поэтому все элементы в verilog моделируются параллельно для имитации аппаратного поведения.

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

Для синхронизации потока данных между различными элементами существуют часы, которые приводят в движение провалы и защелки.

В основном вышеизложенное определяет вашу модель Verilog.

Другими словами, Verilog не является обычным языком программирования, поэтому

1) Существует только один способ установить модули: подключить их к другим модулям и внутренним проводам.

2) нет способа условно запустить или не запустить модуль. Вы можете иметь аппаратные элементы, такие как мультиплексоры, защелки, ... которые могут остановить или перенаправить поток данных. К счастью, поведение verilog может описать те, кто использует операторы if или case.

3) вы не можете достичь невозможного с помощью любого генератора.

Другие вопросы по тегам