160 likes | 456 Views
Современные методы функциональной верификации RTL-моделей блоков СБИС микропроцессора. Научно-исследовательский институт системных исследований РАН. Докладчик: Борис Рогаткин. 1-1 1. История развития методологий функциональной верификации. 2-1 1.
E N D
Современные методы функциональной верификации RTL-моделей блоков СБИС микропроцессора Научно-исследовательский институт системных исследований РАН Докладчик: Борис Рогаткин
1-11 История развития методологий функциональной верификации
2-11 Российские разработки в области функциональной верификации Тестовая система UniTESK (Институт системного программирования РАН)* • Инструмент CTESK на основе языка C • VPI для интеграции с HDL окружением • Спецификации с потактовой точностью • Развитые методы генерации последовательностей тестовых воздействий Источник http://www.unitesk.ru, http://www.ispras.ru
3-11 Функциональная верификация в процессе разработки блока
4-11 Преимущества процесса верификации на основе плана тестирования • Синтез на ранних этапах разработки блока • Верификация с учетом реальных требований к таймингам • Учет влияния правок RTL в связи с найденными ошибками в процессе верификации • Фиксирование базового функционала блока в плане тестирования • Документирование блока
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 для оценки покрытия
Этапы разработки UVM окружения 9-11 Разработчики RTL Верификаторы
8-11 Пример тестового UVM окружениеблока преобразования адресов TLB
10-11 Элементы тестового окружениеблока преобразования адресов TLB Монитор Модель сравнения • Сбор структур данных • Анализ покрытия кода • Генерация управляющих событий • Вывод информационных сообщений • Регистровый файл или модель памяти • Высокоуровневое описание блока Драйвер тестовых последовательностей • Управляющий библиотечный элемент для тестовых сценариев Драйвер входных воздействий Тестовые сценарии • Преобразование тестовых последовательностей в потактовые сигналы интерфейса блока • Операции отражающие базовый функционал блока TLB (запись, чтение, поиск)и их комбинации Верификатор событий • Анализ реакций блока на тестовые воздействия, сравнение с ожидаемыми
11-11 Опыт UVM тестирования в НИИСИ • Подход UVM наиболее эффективен для: • Интерфейсов шин (AXI, PCI, USB) • Для блоков, где требуется сложный алгоритм формирования тестовых пакетов (IB, TLB, CPU) • Трудозатраты на разработку окружения и плана окупаются гарантией работоспособности блока и временем для локализации ошибок в проекте. • Блоки с уникальным интерфейсом (ADD, MUL, DIV) рационально тестировать случайными векторами и анализом функционального покрытия (без разработки тестового окружения). • Разработана библиотека тестовых окружений для: • Интерфейс Процессор - Системный контроллер (внутр. шина) • TLB • AXI • JTAG