Пример моделирования схемы

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

Рассмотрим пример схемы, приведённой на рисунке ниже.

Синим подписаны элементы схемы, черным – провода. Вместо выходного контакта, на котором можно наблюдать итоговое значение, в Verilog используется системная функция $display, которая выводит результат в консоль.

Приведённую схему можно описать на языке Verilog как:

В этом примере были инстанцированы логические элементы and и or, которые соединили между собой проводами. # означает временную задержку исполнения.

Порядок описания компонентов модуля не важен, поэтому следующие объявления модуля эквивалентны предыдущему:

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

Схемы можно описывать на основе структурного или поведенческого подходов:

Пример тестового окружения для проверки работоспособности и корректности модуля:

Пример

Результат исполнения

Можно заметить, что в первой строке y имеет неопределённое состояние, т.к. присвоение значения в результате исполнения мультиплексора, которое занимает 4 такта, ещё не произошло. Начиная со следующей строки, сигнал успел распространиться до выхода подсхемы и при выводе на экран выводится корректное значение.

Last updated