TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
-
Upload
iosif-itkin -
Category
Documents
-
view
361 -
download
6
description
Transcript of TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
Проверка корректности поведения 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 тактов
SR1R2
Параллельные присваивания
4/26
Поведение HDL-описания
5/26
Тестовый оракул на основе эталонной модели
HDL
Тестовый оракул
Компараторыреакций
Эталоннаямодель
Арбитрыреакций
Ад
апт
ер
ы в
ход
ных
инт
ер
фе
йсо
в
Ад
апте
ры
выход
ных и
нтер
фе
йсо
в
Стимулы
Реакцииреализации
Реакцииэталонной модели
6/26
Проверка корректности поведения
Временные ограничения
Функциональные свойства
• Множества реакций корректно
• Каждая реакция корректна
• Корректный порядок реакций
• Задержки между реакциями корректны
7/26
Потактовые проверки
R1
Реакции реализации
Реакции эталонной модели
send(R1);
send(R2);
delay(3)
R1
R2
✕Сравнение
R2
✕
3 такта
8/26
Неопределенность порядка реакций
SR2 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 – множество вершин
• VV – частичный порядок
• : V – помечающая функция
16/26
Частично упорядоченное мультимножество. Примеры
a a b
c
c
db
a
b
a
b
c
d
a
17/26
Временные трассы
– алфавит событий, T – временной доменВременная трасса – V, , , [, ]• V – множество вершин• VV – частичный порядок• : 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 TM(w,t) { (x, y)pastS(t) pastI(t) | match(x, y) }
• взаимно однозначное бинарноеотношение
• xpastS(t-t) ypastI(t) . (x, y)M(w,t)
• ypastI(t-t) xpastS(t) . (x, y)M(w,t)
• (x, y), (x’, y’) M(w,t) . x x’ (y) (y’)
20/26
Динамическое сопоставление трасс
• S, I – реакции спецификации и реализации для монитора, t – монотонно возрастает
21/26
Проверка отношения соответствия
22/26
C++TESK Testing ToolKitWeb: http://forge.ispras.ru/projects/cpptesk-toolkitE-mail: [email protected]
23/26
Применение инструментаМодуль Стадия разработки Точность моделирования
от доTLB Поздняя/завершающая приближенная потактовая
FPU Поздняя/завершающая без учета времени --
L2 Промежуточная/поздняя приближенная --
DATABOX Промежуточная/ завершающая
приближенная потактовая
MAU Ранняя/промежуточная без учета времени потактовая
IC Ранняя/промежуточная без учета времени приближенная
TLU Поздняя приближенная --
L2-BANK Поздняя потактовая --
IB Поздняя/завершающая потактовая --
L3 Промежуточная приближенная --
24/26
Заключение
• Разработан метод динамического анализа аппаратуры на основе теории частично упорядоченных мультимножеств
• Метод был реализован в инструменте C++TESK Testing ToolKit и успешно применен в ряде проектов
• Дальнейшие исследования связаны с диагностикой ошибок и подсказками для их локализации
25/26
СПАСИБО!
Вопросы?
26/26