здесь - Институт системного программирования РАН

реклама
Федеральное государственное бюджетное учреждение науки
Институт системного программирования РАН
Динамическая верификация
цифровой аппаратуры на основе
формальных спецификаций
Чупилко Михаил Михайлович
Научный руководитель
проф., д.ф.-м.н. Петренко Александр Константинович
Процесс создания аппаратуры
Системный
симулятор
Эталонная
модель на C++
Тестовая
система
Верификация
Документация
HDL-описание
(Verilog/VHDL)
HDLсимулятор
Фотошаблоны
Микросхема
2/20
Причины сложности верификации
аппаратуры





Логическая
сложность
(параллелизм
и
асинхронность, большие размеры)
Процесс разработки существенно итеративен,
поэтому тесты и модели приходится многократно
модифицировать
Модульность проекта существенно слабее, чем в ПО,
и изменения в одной подсистеме часто требуют
корректировки в других
Документация фрагментарная и часто не актуальная
Постоянное увеличение сложности аппаратуры
3/20
Цель работы

Разработка
метода
верификации
цифровой
аппаратуры на основе использования программных
моделей с учетом требований промышленных
процессов проектирования HDL-описаний
4/20
Поставленные задачи


Проанализировать
существующие
методы
верификации цифровой аппаратуры
Разработать метод верификации HDL-описаний
аппаратуры на основе использования эталонных
программных моделей, поддерживающий:





применение при неполноте требований
инкрементальный процесс разработки и уточнения
формальных спецификаций в процессе проектирования
композицию тестовых систем различных HDL-описаний
Разработать инструменты, реализующие метод
Оценить реализацию метода на практике
5/20
Научная новизна


Метод
спецификации
цифровой
аппаратуры,
подходящий для использования на разных уровнях
абстракции
Метод сопоставления реакций цифровой аппаратуры
и реакций эталонной модели, позволяющий
автоматизировать процедуру проверки цифровой
аппаратуры
6/20
Существующие методы верификации
HDL-описаний


Формальная верификация (аналитическая верификация)
Динамическая верификация (тестирование)

Целевой объект:


Фаза генерации теста:


случайные / набор / по ограничениям
Оракул:


в ходе статического анализа / в процессе исполнения
Тестовые воздействия:


модуль (unit) / система в целом (core)
наборы эталонных результатов / вычисление эталонных результатов по модели /
ограничение на ожидаемый результат (post-условие) / контроль assertions
Метрики полноты:

по структуре HDL-описания / эталонной модели
7/20
Место предлагаемого метода


Формальная верификация (аналитическая верификация)
Динамическая верификация (тестирование)

Целевой объект:


Фаза генерации теста:


случайные // набор
набор // по
по ограничениям
ограничениям
Оракул:


в ходе статического анализа / ввпроцессе
процессеисполнения
исполнения
Тестовые воздействия:


модуль (unit)
(unit) / система в целом (core)
модуль
вычисление эталонных
эталонных результатов
наборы эталонных результатов / вычисление
результатовпо
по
модели / ограничение на ожидаемый результат (post-условие) / контроль assertions
модели
Метрики полноты:

эталонноймодели
модели
по структуре HDL-описания / эталонной
8/20
Выделенные задачи как средство
достижения поставленной цели

Для быстрого получения тестов при неполных требованиях,
обычных на ранних этапах проектирования аппаратуры:
Поддержка эталонных C++ моделей с абстракцией
функциональности, отличной от HDL-описания
 Поддержка
автоматизированных
генераторов
последовательностей


времени
и
тестовых
Для экономии времени и затрат на верификацию на каждой
следующей итерации проектирования HDL-описания:
Средства доработки эталонных моделей до потактовых
 Использование
эталонных моделей, которые дорабатываются в
соответствии с каждой новой итерацией проектирования HDL-описания
 Средства
расширения
возможностей
генераторов
тестовой
последовательности заданием режима обхода конечных автоматов


Для учета декомпозиции как основного пути создания сложных
HDL-описаний:

Средства объединения тестовых систем различных HDL-описаний
9/20
Метод модульной верификации
аппаратуры на основе моделей
10/20
Метод модульной верификации
аппаратуры на основе моделей



применение при неполноте
требований
инкрементальный
процесс
разработки
и
уточнения
формальных спецификаций в
процессе проектирования
композицию тестовых систем
различных HDL-описаний
11/20
Разработанный метод модульной
верификации аппаратуры
12/20
Формализация работы тестового оракула
13/20
Реализация метода. Библиотека
C++TESK Hardware Edition

Средства генерации стимулов
Класс генератора тестовой последовательности, создающий случайный
поток стимулов (взят из C++TESK)
 Класс генератора тестовой последовательности, создающий поток
стимулов на основе обхода конечных автоматов (взят из C++TESK)
 Средства задания автоматной модели обобщенного состояния – набор
макросов, реализующий класс тестового сценария (взят из C++TESK)


Средства создания тестового оракула
Классы сопоставителей реакций
 Класс генератора вердикта
 Средства описания окружений эталонной модели – набор макросов,
реализующий класс описания окружения


Подключение к HDL-описанию

Средства описания адаптеров
реализующий класс адаптера
HDL-описаний
–
набор
макросов,
14/20
Применение метода в реальных проектах

Библиотека классов C++TESK Hardware Edition была
применена для создания тестовых систем для 9 уже
верифицированных модулей микропроцессоров в
течение 2009-2012 гг., в среднем обнаруживалось по
3-5 серьезных ошибок:









Буфер трансляции адресов (НИИСИ)
Модуль арифметики с плавающей точкой (НИИСИ)
Кэш память второго уровня (НИИСИ)
Коммутатор данных (МЦСТ)
Системный контроллер прерываний (МЦСТ)
Модуль доступа к памяти (МЦСТ)
Устройство аппаратного поиска по таблице страниц (МЦСТ)
Контроллер банка кэш-памяти второго уровня (МЦСТ)
Буфер команд (МЦСТ)
15/20
Найденные ошибки, %
Результаты применения метода
в реальных проектах
1
Коммутатор данных (1)
0.75
Коммутатор данных (2)
0.5
Устройство аппаратного
поиска по таблице
страниц
0.25
Буфер команд
0
1 3 5 7 9 11131517192123252729313335
Время верификации, недели
Контроллер прерываний
16/20
Сравнение результатов с
традиционным подходом
Найденные ошибки, %
1
Устройство аппаратного
поиска по таблице
страниц
0.75
0.5
0.25
Традиционный подход
0
1 3 5 7 9 11131517192123252729313335
Время верификации, недели
17/20
Апробация и публикации





SYRCoSE: Spring Young Researches Colloquium on
Software Engineering, г. Нижний Новгород, 2010 г. и г.
Екатеринбург, 2011 г.
EWDTS: East-West Design & Test Symposium,
г. Санкт-Петербург, 2010 г. и г. Севастополь, 2011 г.
Baltic Electronics Conference, г. Таллин, 2010 г.
Семинар Института системного программирования
РАН, г. Москва, 2011-2012 гг.
По теме диссертации автором опубликовано 11
работ (из них 3 в изданиях по перечню ВАК)
18/20
Заключение





Разработан метод верификации цифровой аппаратуры, на основе
формальных спецификаций в виде программных моделей на
языке C++, отвечающий требованиям промышленных процессов
проектирования HDL-описаний
Разработан метод спецификации цифровой аппаратуры,
подходящий для использования на разных уровнях абстракции
Разработан метод сопоставления реакций цифровой аппаратуры
и реакций эталонной модели, позволяющий автоматизировать
процедуру проверки цифровой аппаратуры
Реализованы инструменты, поддерживающие разработанные
методы
Реализация методов была применена на практике для
тестирования модулей сложных отечественных микропроцессоров
19/20
Спасибо
Вопросы?
Скачать