Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models

TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models

Tools & Methods of Program Analysis (TMPA-2013)
Ivannikov, V.P., Kamkin, A.S., Chupilko, M.M., Institute for System Programming, ISP RAS
Verification of Correct Behaviour of HDL-Models of Digital Equipment Based on the Dynamic Comparison of Tracks

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

October 11, 2013
Tweet

Transcript

  1. Проверка корректности поведения HDL-моделей цифровой аппаратуры на основе динамического сопоставления

    трасс В.П. Иванников, А.С. Камкин М.М. Чупилко
  2. Содержание • Модели аппаратуры • Динамическая верификация • Формализация •

    Отношение конформности • Заключение 2/26
  3. Модели аппаратуры • Разрабатываются на языках проектирования аппаратуры – Verilog

    – VHDL • Результат проектирования – программа, запускаемая в HDL-симуляторе • Основной подход к верификации моделей аппаратуры – это тестирование HDL-описаний • Автоматизация тестирования возможна с помощью исполнимых моделей (C/C++) 3/26
  4. HDL-программы input S; output R1, R2; void design() { while(true)

    { wait(S); delay(6); R1 = 1; delay(1); R1 = 0; R2 = 1; delay(1); R2 = 0; } } CLK 6 тактов S R1 R2 Параллельные присваивания 4/26
  5. Поведение HDL-описания 5/26

  6. Тестовый оракул на основе эталонной модели HDL Тестовый оракул Компараторы

    реакций Эталонная модель Арбитры реакций Адаптеры входных интерфейсов Адаптеры выходных интерфейсов Стимулы Реакции реализации Реакции эталонной модели 6/26
  7. Проверка корректности поведения Временные ограничения Функциональные свойства • Множества реакций

    корректно • Каждая реакция корректна • Корректный порядок реакций • Задержки между реакциями корректны 7/26
  8. Потактовые проверки R1 Реакции реализации Реакции эталонной модели send(R1); send(R2);

    delay(3) R1 R2  ✕ Сравнение R2  ✕ 3 такта 8/26
  9. Неопределенность порядка реакций S R2 R1 Исполнение реализации recv(in_iface, S);

    Исполнение эталонной модели send(out_iface, R1); send(out_iface, R2); ... ... Ошибка: R2 R1 Пересмотреть порядок Порядок реакций R1 R2 Разрешено: R2 Order 9/26
  10. Упорядочивание реакций • Арбитр реакций находит реакцию, соответствующую реакции эталонной

    модели • Проверка поведения зависит от эталонной модели и метода упорядочивания • Арбитры реакций включают часть тестового оракула, проверяющую порядок реакций 10/26
  11. Типы арбитров реакций • Детерминированный арбитр, основанный на модели arbiter:

    2Reaction Reaction {fail} • Адаптивный арбитр arbiter: 2Reaction Reaction Reaction {fail} • Двухуровневый арбитр arbiter(reactions) arbiter2 (arbiter1 (reactions), reaction) – Недетерминированный – Адаптивный 11/26
  12. Детерминированный арбитр R1 Реакции реализации Реакции эталонной модели send(R1); send(R2);

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

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

    ... R1 R2 Арбитр #1 R1 R2  ✕ Get(R1) Сравнение S R Порядок частично известен Арбитр #2 Подсказка Кандидаты 14/26
  15. Временное слово – алфавит событий T – временной домен (R≥0,

    напр. N) w = (a 0 , t 0 )(a 1 , t 1 ), … ( T) (*) • i . t i < t i+1 (t i ≤ t i+1 ) – монотонность • T i . t i > T – прогресс (если |w| = ) 15/26
  16. Частично упорядоченное мультимножество (Pomset) – алфавит событий Pomset-множество – это

    тройка V, , • V – множество вершин • V V – частичный порядок • : V – помечающая функция 16/26
  17. Частично упорядоченное мультимножество. Примеры a a b c c d

    b a b a b c d a 17/26
  18. Временные трассы – алфавит событий, T – временной домен Временная

    трасса – V, , , [, ] • V – множество вершин • V V – частичный порядок • : V – помечающая функция • : V T – время наступления события • : V T – разрешенный интервал 18/26
  19. Поведение спецификации и реализации Поведение реализации V I , ,

    I , I Поведение спецификации V S , , S , S , S Разрешенные временные интервалы S (x) = [ S (x)- t(x), S (x)+ t(x)] Соответствие событий match(x, y) = ( I (y) = S (x)) & ( I (y) S (x)) 19/26
  20. Отношение конформности I ~ S domI=domS , w domS t

    T M(w,t) { (x, y) past S (t) past I (t) | match(x, y) } • взаимно однозначное бинарное отношение • x past S (t- t) y past I (t) . (x, y) M(w,t) • y past I (t- t) x past S (t) . (x, y) M(w,t) • (x, y), (x’, y’) M(w,t) . x x’ (y) (y’) 20/26
  21. Динамическое сопоставление трасс 21/26

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

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

  24. Применение инструмента Модуль Стадия разработки Точность моделирования от до TLB

    Поздняя/завершающая приближенная потактовая FPU Поздняя/завершающая без учета времени -- L2 Промежуточная/поздняя приближенная -- DATABOX Промежуточная/ завершающая приближенная потактовая MAU Ранняя/промежуточная без учета времени потактовая IC Ранняя/промежуточная без учета времени приближенная TLU Поздняя приближенная -- L2-BANK Поздняя потактовая -- IB Поздняя/завершающая потактовая -- L3 Промежуточная приближенная -- 24/26
  25. Заключение • Разработан метод динамического анализа аппаратуры на основе теории

    частично упорядоченных мультимножеств • Метод был реализован в инструменте C++TESK Testing ToolKit и успешно применен в ряде проектов • Дальнейшие исследования связаны с диагностикой ошибок и подсказками для их локализации 25/26
  26. СПАСИБО! Вопросы? 26/26