Verilog описывает поведение оборудования. Все аппаратные элементы параллельны по своей природе. Поэтому все элементы в verilog моделируются параллельно для имитации аппаратного поведения.
Данные в модели могут передаваться последовательно или частично, в зависимости от ваших соединений. Если вы применяете данные к входу или элементу, элемент обработает данные и обновит свои выходные данные. Элементы, которые являются их входами, подключенными к выходу первого элемента, будут обрабатывать свои входы и обновлять выходы и так далее. Вы можете думать об этом как о сети труб.
Для синхронизации потока данных между различными элементами существуют часы, которые приводят к провалам и защелкам.
В основном вышеизложенное определяет вашу модель verilog.
Другими словами, verilog не является обычным языком программирования, поэтому
1) Существует только один способ установки модулей: подключить их к другим модулям и внутренним проводам.
2) нет способа условно запустить или не запустить модуль. Вы можете иметь аппаратные элементы, такие как мультиплексоры, защелки, ... которые могут остановить или перенаправить поток данных. К счастью, поведение verilog можно описать с помощью операторов «if» или «case».
3) вы не можете достичь невозможного с помощью любого генератора.