260 likes | 437 Views
Проверка корректности поведения HDL- моделей цифровой аппаратуры на основе динамического сопоставления трасс. В.П. Иванников, А.С. Камкин М.М. Чупилко. Содержание. Модели аппаратуры Динамическая верификация Формализация Отношение конформности Заключение. Модели аппаратуры.
E N D
Проверка корректности поведения HDL-моделей цифровой аппаратуры на основе динамического сопоставления трасс В.П. Иванников, А.С. Камкин М.М. Чупилко
Содержание • Модели аппаратуры • Динамическая верификация • Формализация • Отношение конформности • Заключение
Модели аппаратуры • Разрабатываются на языках проектирования аппаратуры • Verilog • VHDL • Результат проектирования – программа, запускаемая в HDL-симуляторе • Основной подход к верификации моделей аппаратуры – это тестирование HDL-описаний • Автоматизация тестирования возможна с помощью исполнимых моделей (C/C++)
HDL-программы input S; output R1, R2; voiddesign() { while(true) { wait(S); delay(6); R1 = 1; delay(1); R1 = 0; R2 = 1; delay(1); R2 = 0; } } CLK S R1 R2 6 тактов Параллельные присваивания
Тестовый оракул на основе эталонной модели HDL Тестовый оракул Эталонная модель Реакции эталонной модели Арбитры реакций Адаптеры входных интерфейсов Адаптеры выходных интерфейсов Стимулы Компараторы реакций Реакции реализации
Проверка корректности поведения Функциональные свойства • Множества реакций корректно • Каждая реакция корректна • Корректный порядок реакций • Задержки между реакциями корректны Временные ограничения
✕ ✕ Потактовые проверки Реакции эталонной модели send(R1); 3 такта delay(3) send(R2); Реакции реализации R1 R2 R2 R1 Сравнение
Неопределенность порядка реакций Исполнение эталонной модели recv(in_iface, S); ... Порядок реакций send(out_iface, R1); Ошибка: R2 R1 ... R2 R1 Разрешено: R2 Order send(out_iface, R2); Исполнение реализации S R2 R1 Пересмотреть порядок
Упорядочивание реакций • Арбитр реакций находит реакцию, соответствующую реакции эталонной модели • Проверка поведения зависит от эталонной модели и метода упорядочивания • Арбитры реакций включают часть тестового оракула, проверяющую порядок реакций
Типы арбитров реакций • Детерминированный арбитр,основанный на модели arbiter: 2Reaction Reaction {fail} • Адаптивный арбитр arbiter: 2Reaction Reaction Reaction {fail} • Двухуровневый арбитр arbiter(reactions) arbiter2(arbiter1(reactions), reaction) • Недетерминированный • Адаптивный
✕ Детерминированный арбитр S R Реакции эталонной модели send(R1); Порядок известен ... R2 R1 Арбитр реакций send(R2); FIFO Реакции реализации R1 R2 R1 Сравнение
✕ Адаптивный арбитр S R Реакции эталонной модели send(R1); R1 Порядок неизвестен ... Арбитр реакций send(R2); R2 Get(R1) Реакции реализации R1 R2 R1 Сравнение Подсказка
✕ Двухуровневый арбитр S R Реакции эталонной модели send(R1); R1 Порядок частично известен Кандидаты ... Арбитр #1 send(R2); R2 Арбитр #2 Get(R1) Реакции реализации R1 R2 R1 Сравнение Подсказка
Временное слово –алфавит событий T – временной домен (R≥0, напр. N) w = (a0, t0)(a1, t1), … ( T)(*) • i.ti < ti+1 (ti ≤ ti+1) – монотонность • T i.ti > T – прогресс (если |w| = )
Частично упорядоченное мультимножество (Pomset) –алфавит событий Pomset-множество – это тройкаV, , • V – множество вершин • VV– частичный порядок • : V – помечающая функция
Частично упорядоченное мультимножество. Примеры
Временные трассы –алфавит событий, T– временной домен Временная трасса –V, , , [, ] • V – множество вершин • VV– частичный порядок • : V – помечающая функция • :V T – время наступления события • :V T– разрешенный интервал
Поведение спецификации и реализации Поведение реализации VI, , I, I Поведение спецификации VS, , S, S, S Разрешенные временные интервалы S(x) = [S(x)-t(x), S(x)+t(x)] Соответствие событий match(x, y) = (I(y) = S(x)) & (I(y) S(x))
Отношение конформности I ~ S domI=domS,w domSt T M(w,t) { (x, y)pastS(t) pastI(t) | match(x, y) } • взаимно однозначное бинарное отношение • xpastS(t-t) ypastI(t) . (x, y)M(w,t) • ypastI(t-t) xpastS(t) . (x, y)M(w,t) • (x, y), (x’, y’) M(w,t) .x x’ (y) (y’)
Динамическое сопоставление трасс • S, I – реакции спецификации и реализации для монитора, t – монотонно возрастает
C++TESK Testing ToolKit Web: http://forge.ispras.ru/projects/cpptesk-toolkit E-mail: cpptesk-support@ispras.ru
Заключение • Разработан метод динамического анализа аппаратуры на основе теории частично упорядоченных мультимножеств • Метод был реализован винструменте C++TESK Testing ToolKitи успешно применен в ряде проектов • Дальнейшие исследования связаны с диагностикой ошибок и подсказками для их локализации
СПАСИБО! Вопросы?