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
3. Модели аппаратуры
• Разрабатываются на языках проектирования
аппаратуры
– Verilog
– VHDL
• Результат проектирования – программа,
запускаемая в HDL-симуляторе
• Основной подход к верификации моделей
аппаратуры – это тестирование HDL-описаний
• Автоматизация тестирования возможна с
помощью исполнимых моделей (C/C++)
3/26
6. Тестовый оракул на основе
эталонной модели
HDL
Тестовый оракул
Компараторы
реакций
Эталонная
модель
Арбитры
реакций
Адаптерывходныхинтерфейсов
Адаптерывыходныхинтерфейсов
Стимулы
Реакции
реализации
Реакции
эталонной модели
6/26
7. Проверка корректности поведения
Временные ограничения
Функциональные свойства
• Множества реакций корректно
• Каждая реакция корректна
• Корректный порядок реакций
• Задержки между реакциями корректны
7/26
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/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 = (a0, t0)(a1, t1), … ( T) (*)
• i . ti < ti+1 (ti ≤ ti+1) – монотонность
• T i . ti > T – прогресс (если |w| = )
15/26
18. Временные трассы
– алфавит событий, T – временной домен
Временная трасса – V, , , [, ]
• V – множество вершин
• V V – частичный порядок
• : V – помечающая функция
• : V T – время наступления события
• : V T – разрешенный интервал
18/26
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. Отношение конформности
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
24. Применение инструмента
Модуль Стадия разработки Точность моделирования
от до
TLB Поздняя/завершающая приближенная потактовая
FPU Поздняя/завершающая без учета времени --
L2 Промежуточная/поздняя приближенная --
DATABOX Промежуточная/
завершающая
приближенная потактовая
MAU Ранняя/промежуточная без учета времени потактовая
IC Ранняя/промежуточная без учета времени приближенная
TLU Поздняя приближенная --
L2-BANK Поздняя потактовая --
IB Поздняя/завершающая потактовая --
L3 Промежуточная приближенная --
24/26
25. Заключение
• Разработан метод динамического анализа
аппаратуры на основе теории частично
упорядоченных мультимножеств
• Метод был реализован в инструменте
C++TESK Testing ToolKit и успешно применен
в ряде проектов
• Дальнейшие исследования связаны с
диагностикой ошибок и подсказками для их
локализации
25/26