TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 312 views

Tools & Methods of Program Analysis (TMPA-2013) ...

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

Statistics

Views

Total Views
312
Views on SlideShare
274
Embed Views
38

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 38

http://tmpaconf.org 38

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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