Последовательная установка модулей Verilog - PullRequest
0 голосов
/ 04 ноября 2018

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

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

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

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

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

1 Ответ

0 голосов
/ 05 ноября 2018

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

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

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

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

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

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

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

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

...