Архитектура тестовой системы AVM
Тестовые системы, создаваемые с использованием технологии AVM, должны быть разбиты на несколько слоев (см. Рис. 1). Самый нижний уровень — это RTL-модель тестируемого устройства (DUT, Design Under Test). Над ним находится прослойка транзакторов (transactors) — компонентов тестовой системы, осуществляющих преобразование потока входных транзакций во входные сигналы тестируемой модели и наоборот преобразование выходных сигналов тестируемой модели в поток выходных транзакций.
Примерами транзакторов являются:
- драйвер (driver) — конвертирует поток транзакций во входные сигналы тестируемой модели;
- ответчик (responder) — отвечает на запросы со стороны тестируемой модели относительно подачи дополнительных данных;
- монитор (monitor) — осуществляет наблюдение за выходами тестируемой модели, не оказывая на нее влияния.
Следующим слоем является так называемый слой операций (operational layer). Компоненты этого уровня образуют тестовое окружение необходимое тестируемой модели. К ним относятся:
- генератор стимулов (stimulus generator) — создает поток входных транзакций (стимулов) на тестируемую модель. Для генерации стимулов используется подход на основе разрешения ограничений с использованием рандомизации (CRV, Constraint-Random Verification). Связь генератора с тестируемой моделью осуществляется через драйвер.
- главный модуль (master) — элемент окружения тестируемой модели, инициирующий взаимодействие с ней. Главный модуль посылает последовательности транзакций (случайные или направленные на достижение какой-либо ситуации) и может использовать обратную связь для определения своих следующих действий. Связь главного модуля с тестируемой моделью осуществляется через драйвер;
- подчиненный модуль (slave) — как и главный модуль моделирует окружение тестируемой модели, но, в отличие от него, является пассивным компонентом, отвечающим на запросы тестируемой модели. Связь подчиненного модуля с тестируемой моделью осуществляется через ответчик.
Далее следует слой анализа (analysis layer), компоненты которого проверяют корректность поведения тестируемой модели, оценивают полноту тестирования и выполняют некоторые другие функции.
Основными компонентами этого уровня являются:
- компонент проверки (scoreboard) — проверяет корректность поведения тестируемой модели в ответ на входные транзакции.
- сборщик покрытия (coverage collector) — оценивает полноту тестирования путем подсчета числа событий заданных типов, возникающих в процессе тестирования.
Рисунок 1. Слои тестовой системы AVM