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