Пример моделирования схемы
Verilog позволяет создать модель схемы (design) и тестовое окружение (testbench), в котором можно проверить корректность работы разработанной схемы.
Рассмотрим пример схемы, приведённой на рисунке ниже.

Синим подписаны элементы схемы, черным – провода. Вместо выходного контакта, на котором можно наблюдать итоговое значение, в Verilog используется системная функция $display, которая выводит результат в консоль.
Приведённую схему можно описать на языке Verilog как:
В этом примере были инстанцированы логические элементы and и or, которые соединили между собой проводами. # означает временную задержку исполнения.
Порядок описания компонентов модуля не важен, поэтому следующие объявления модуля эквивалентны предыдущему:
Важно отметить, что в модели схемы не описывается, какие значения будут на входах. Это делается в модели тестового окружения или в других модулях, которые будут инстанцировать этот.
Схемы можно описывать на основе структурного или поведенческого подходов:
Пример тестового окружения для проверки работоспособности и корректности модуля:
Пример
Результат исполнения
Можно заметить, что в первой строке y имеет неопределённое состояние, т.к. присвоение значения в результате исполнения мультиплексора, которое занимает 4 такта, ещё не произошло. Начиная со следующей строки, сигнал успел распространиться до выхода подсхемы и при выводе на экран выводится корректное значение.
Last updated