1 / 26

В.П. Иванников, А.С. Камкин М.М. Чупилко

Проверка корректности поведения HDL- моделей цифровой аппаратуры на основе динамического сопоставления трасс. В.П. Иванников, А.С. Камкин М.М. Чупилко. Содержание. Модели аппаратуры Динамическая верификация Формализация Отношение конформности Заключение. Модели аппаратуры.

yorick
Download Presentation

В.П. Иванников, А.С. Камкин М.М. Чупилко

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Проверка корректности поведения HDL-моделей цифровой аппаратуры на основе динамического сопоставления трасс В.П. Иванников, А.С. Камкин М.М. Чупилко

  2. Содержание • Модели аппаратуры • Динамическая верификация • Формализация • Отношение конформности • Заключение

  3. Модели аппаратуры • Разрабатываются на языках проектирования аппаратуры • Verilog • VHDL • Результат проектирования – программа, запускаемая в HDL-симуляторе • Основной подход к верификации моделей аппаратуры – это тестирование HDL-описаний • Автоматизация тестирования возможна с помощью исполнимых моделей (C/C++)

  4. 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 тактов Параллельные присваивания

  5. Поведение HDL-описания

  6. Тестовый оракул на основе эталонной модели HDL Тестовый оракул Эталонная модель Реакции эталонной модели Арбитры реакций Адаптеры входных интерфейсов Адаптеры выходных интерфейсов Стимулы Компараторы реакций Реакции реализации

  7. Проверка корректности поведения Функциональные свойства • Множества реакций корректно • Каждая реакция корректна • Корректный порядок реакций • Задержки между реакциями корректны Временные ограничения

  8.  ✕ ✕ Потактовые проверки Реакции эталонной модели send(R1); 3 такта delay(3) send(R2); Реакции реализации R1 R2 R2 R1 Сравнение

  9. Неопределенность порядка реакций Исполнение эталонной модели recv(in_iface, S); ... Порядок реакций send(out_iface, R1); Ошибка: R2  R1 ... R2 R1 Разрешено: R2  Order send(out_iface, R2); Исполнение реализации S R2 R1 Пересмотреть порядок

  10. Упорядочивание реакций • Арбитр реакций находит реакцию, соответствующую реакции эталонной модели • Проверка поведения зависит от эталонной модели и метода упорядочивания • Арбитры реакций включают часть тестового оракула, проверяющую порядок реакций

  11. Типы арбитров реакций • Детерминированный арбитр,основанный на модели arbiter: 2Reaction Reaction  {fail} • Адаптивный арбитр arbiter: 2Reaction Reaction  Reaction  {fail} • Двухуровневый арбитр arbiter(reactions)  arbiter2(arbiter1(reactions), reaction) • Недетерминированный • Адаптивный

  12. ✕ Детерминированный арбитр S R Реакции эталонной модели send(R1); Порядок известен ... R2 R1 Арбитр реакций send(R2); FIFO Реакции реализации R1 R2 R1 Сравнение

  13. ✕ Адаптивный арбитр S R Реакции эталонной модели send(R1); R1 Порядок неизвестен ... Арбитр реакций send(R2); R2 Get(R1) Реакции реализации R1 R2 R1 Сравнение Подсказка

  14. ✕ Двухуровневый арбитр S R Реакции эталонной модели send(R1); R1 Порядок частично известен Кандидаты ... Арбитр #1 send(R2); R2 Арбитр #2 Get(R1) Реакции реализации R1 R2 R1 Сравнение Подсказка

  15. Временное слово –алфавит событий T – временной домен (R≥0, напр. N) w = (a0, t0)(a1, t1), … (  T)(*) • i.ti < ti+1 (ti ≤ ti+1) – монотонность • T i.ti > T – прогресс (если |w| = )

  16. Частично упорядоченное мультимножество (Pomset) –алфавит событий Pomset-множество – это тройкаV, ,  • V – множество вершин •   VV– частичный порядок • : V   – помечающая функция

  17. Частично упорядоченное мультимножество. Примеры

  18. Временные трассы –алфавит событий, T– временной домен Временная трасса –V, , , [, ] • V – множество вершин •   VV– частичный порядок • : V  – помечающая функция • :V  T – время наступления события • :V  T– разрешенный интервал

  19. Поведение спецификации и реализации Поведение реализации 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))

  20. Отношение конформности I ~ S domI=domS,w domSt T M(w,t)  { (x, y)pastS(t)  pastI(t) | match(x, y) } • взаимно однозначное бинарное отношение • xpastS(t-t) ypastI(t) . (x, y)M(w,t) • ypastI(t-t) xpastS(t) . (x, y)M(w,t) • (x, y), (x’, y’) M(w,t) .x  x’  (y)  (y’)

  21. Динамическое сопоставление трасс • S, I – реакции спецификации и реализации для монитора, t – монотонно возрастает

  22. Проверка отношения соответствия

  23. C++TESK Testing ToolKit Web: http://forge.ispras.ru/projects/cpptesk-toolkit E-mail: cpptesk-support@ispras.ru

  24. Применение инструмента

  25. Заключение • Разработан метод динамического анализа аппаратуры на основе теории частично упорядоченных мультимножеств • Метод был реализован винструменте C++TESK Testing ToolKitи успешно применен в ряде проектов • Дальнейшие исследования связаны с диагностикой ошибок и подсказками для их локализации

  26. СПАСИБО! Вопросы?

More Related