Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

385 views

Published on

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

  • Be the first to comment

  • Be the first to like this

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

  1. 1. Проверка корректности поведения HDL-моделей цифровой аппаратуры на основе динамического сопоставления трасс В.П. Иванников, А.С. Камкин М.М. Чупилко
  2. 2. Содержание • Модели аппаратуры • Динамическая верификация • Формализация • Отношение конформности • Заключение 2/26
  3. 3. Модели аппаратуры • Разрабатываются на языках проектирования аппаратуры – Verilog – VHDL • Результат проектирования – программа, запускаемая в HDL-симуляторе • Основной подход к верификации моделей аппаратуры – это тестирование HDL-описаний • Автоматизация тестирования возможна с помощью исполнимых моделей (C/C++) 3/26
  4. 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. 5. Поведение HDL-описания 5/26
  6. 6. Тестовый оракул на основе эталонной модели HDL Тестовый оракул Компараторы реакций Эталонная модель Арбитры реакций Адаптерывходныхинтерфейсов Адаптерывыходныхинтерфейсов Стимулы Реакции реализации Реакции эталонной модели 6/26
  7. 7. Проверка корректности поведения Временные ограничения Функциональные свойства • Множества реакций корректно • Каждая реакция корректна • Корректный порядок реакций • Задержки между реакциями корректны 7/26
  8. 8. Потактовые проверки R1 Реакции реализации Реакции эталонной модели send(R1); send(R2); delay(3) R1 R2  ✕ Сравнение R2  ✕ 3 такта 8/26
  9. 9. Неопределенность порядка реакций S R2 R1 Исполнение реализации recv(in_iface, S); Исполнение эталонной модели send(out_iface, R1); send(out_iface, R2); ... ... Ошибка: R2 R1 Пересмотреть порядок Порядок реакций R1R2 Разрешено: R2 Order 9/26
  10. 10. Упорядочивание реакций • Арбитр реакций находит реакцию, соответствующую реакции эталонной модели • Проверка поведения зависит от эталонной модели и метода упорядочивания • Арбитры реакций включают часть тестового оракула, проверяющую порядок реакций 10/26
  11. 11. Типы арбитров реакций • Детерминированный арбитр, основанный на модели arbiter: 2Reaction Reaction {fail} • Адаптивный арбитр arbiter: 2Reaction Reaction Reaction {fail} • Двухуровневый арбитр arbiter(reactions) arbiter2(arbiter1(reactions), reaction) – Недетерминированный – Адаптивный 11/26
  12. 12. Детерминированный арбитр R1 Реакции реализации Реакции эталонной модели send(R1); send(R2); ... R1R2 Арбитр реакций R1 R2 FIFO  ✕ Сравнение S R Порядок известен 12/26
  13. 13. Адаптивный арбитр R1 Реакции реализации Реакции эталонной модели send(R1); send(R2); ... R1 R2 Арбитр реакций R1 R2 Get(R1) Сравнение S R Порядок неизвестен Подсказка  ✕ 13/26
  14. 14. Двухуровневый арбитр R1 Реакции реализации Реакции эталонной модели send(R1); send(R2); ... R1 R2 Арбитр #1 R1 R2  ✕ Get(R1) Сравнение S R Порядок частично известен Арбитр #2 Подсказка Кандидаты 14/26
  15. 15. Временное слово – алфавит событий T – временной домен (R≥0, напр. N) w = (a0, t0)(a1, t1), … ( T) (*) • i . ti < ti+1 (ti ≤ ti+1) – монотонность • T i . ti > T – прогресс (если |w| = ) 15/26
  16. 16. Частично упорядоченное мультимножество (Pomset) – алфавит событий Pomset-множество – это тройка V, , • V – множество вершин • V V – частичный порядок • : V – помечающая функция 16/26
  17. 17. Частично упорядоченное мультимножество. Примеры a a b c c db a b a b c d a 17/26
  18. 18. Временные трассы – алфавит событий, T – временной домен Временная трасса – V, , , [, ] • V – множество вершин • V V – частичный порядок • : V – помечающая функция • : V T – время наступления события • : V T – разрешенный интервал 18/26
  19. 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)) 19/26
  20. 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’) 20/26
  21. 21. Динамическое сопоставление трасс 21/26
  22. 22. Проверка отношения соответствия 22/26
  23. 23. C++TESK Testing ToolKit Web: http://forge.ispras.ru/projects/cpptesk-toolkit E-mail: cpptesk-support@ispras.ru 23/26
  24. 24. Применение инструмента Модуль Стадия разработки Точность моделирования от до TLB Поздняя/завершающая приближенная потактовая FPU Поздняя/завершающая без учета времени -- L2 Промежуточная/поздняя приближенная -- DATABOX Промежуточная/ завершающая приближенная потактовая MAU Ранняя/промежуточная без учета времени потактовая IC Ранняя/промежуточная без учета времени приближенная TLU Поздняя приближенная -- L2-BANK Поздняя потактовая -- IB Поздняя/завершающая потактовая -- L3 Промежуточная приближенная -- 24/26
  25. 25. Заключение • Разработан метод динамического анализа аппаратуры на основе теории частично упорядоченных мультимножеств • Метод был реализован в инструменте C++TESK Testing ToolKit и успешно применен в ряде проектов • Дальнейшие исследования связаны с диагностикой ошибок и подсказками для их локализации 25/26
  26. 26. СПАСИБО! Вопросы? 26/26

×