Современные методы функциональной вери
Download
Report
Transcript Современные методы функциональной вери
Современные методы
функциональной
верификации RTL-моделей
блоков СБИС
микропроцессора
Научно-исследовательский институт
системных исследований РАН
Докладчик: Борис Рогаткин
История развития методологий
функциональной верификации
1-11
Российские разработки в области
функциональной верификации
2-11
Тестовая система UniTESK (Институт системного программирования РАН)*
Инструмент CTESK на
основе языка C
VPI для интеграции с
HDL окружением
Спецификации с
потактовой точностью
Развитые методы
генерации
последовательностей
тестовых воздействий
Источник http://www.unitesk.ru, http://www.ispras.ru
Функциональная верификация
в процессе разработки блока
3-11
Преимущества процесса верификации
на основе плана тестирования
Синтез на ранних этапах разработки блока
Верификация с учетом реальных требований к таймингам
Учет влияния правок RTL в связи с найденными ошибками в процессе
верификации
Фиксирование базового функционала блока в плане тестирования
Документирование блока
4-11
5-11
План тестирования
Разработчики RTL
Верификаторы
Рекомендации к шаблону плана:
Режим устройства и опции конфигурации
Протокол обработки транзакций
Протокол или схема обработки исключений
Внутренние свойства блока
Арбитраж использования внешних ресурсов
Типичные и критические случаи использования блока
Описание точек функционального покрытия
Ссылки на документацию блока
Пример плана тестирования блока
предсказания переходов
Сценарии тестирования
Проверки ассерций
Функциональное покрытие
Покрытие кода
6-11
7-11
Выбор тестового UVM окружения
Написание тестового окружения с «чистого листа»
Автоматическая генерация окружения с помощью средств САПР
Автоматическая генерация окружения с помощью рукописных
скриптов (Perl, TCL)
Использование готового VIP окружения на платной основе (PCI,
AXI, USB и другие)
8-11
Маршрут UVM тестирования в НИИСИ
САПР Cadence (Specman), языки SystemVerilog, e Language
Генерация начального тестового окружения из шаблона
UVM Scoreboard (библиотечный элемент) или специализированная
модель сравнения
Запуск тестов в среде eManager (параллельный запуск тестовых
сценариев) и SimVision
Интеграция vPlan (инструмент планирования) и eManager для оценки
покрытия
9-11
Этапы разработки UVM окружения
Разработчики RTL
Верификаторы
Пример тестового UVM окружение блока
преобразования адресов TLB
8-11
Элементы тестового окружение блока
преобразования адресов TLB
Монитор
Сбор структур данных
Анализ покрытия кода
Генерация управляющих событий
Вывод информационных сообщений
10-11
Модель сравнения
Регистровый файл или модель памяти
Высокоуровневое описание блока
Драйвер тестовых последовательностей
Управляющий библиотечный элемент для тестовых сценариев
Тестовые сценарии
Операции отражающие базовый
функционал блока TLB (запись,
чтение, поиск) и их комбинации
Драйвер входных воздействий
Преобразование тестовых
последовательностей в потактовые
сигналы интерфейса блока
Верификатор событий
Анализ реакций блока на тестовые воздействия, сравнение с ожидаемыми
11-11
Опыт UVM тестирования в НИИСИ
Подход UVM наиболее эффективен для:
Интерфейсов шин (AXI, PCI, USB)
Для блоков, где требуется сложный алгоритм формирования
тестовых пакетов (IB, TLB, CPU)
Трудозатраты на разработку окружения и плана окупаются
гарантией работоспособности блока и временем для локализации
ошибок в проекте.
Блоки с уникальным интерфейсом (ADD, MUL, DIV) рационально
тестировать случайными векторами и анализом функционального
покрытия (без разработки тестового окружения).
Разработана библиотека тестовых окружений для:
Интерфейс Процессор - Системный контроллер (внутр. шина)
TLB
AXI
JTAG