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

26
Проверка корректности поведения HDL- моделей цифровой аппаратуры на основе динамического сопоставления трасс В.П. Иванников, А.С. Камкин М.М. Чупилко

description

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

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

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

Проверка корректности поведения HDL-моделей цифровой аппаратуры на основе

динамического сопоставления трасс

В.П. Иванников, А.С. КамкинМ.М. Чупилко

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

Содержание

• Модели аппаратуры• Динамическая верификация• Формализация• Отношение конформности• Заключение

2/26

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

Модели аппаратуры

• Разрабатываются на языках проектирования аппаратуры– Verilog– VHDL

• Результат проектирования – программа, запускаемая в HDL-симуляторе

• Основной подход к верификации моделей аппаратуры – это тестирование HDL-описаний

• Автоматизация тестирования возможна с помощью исполнимых моделей (C/C++)

3/26

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

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: TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models

Поведение HDL-описания

5/26

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

Тестовый оракул на основе эталонной модели

HDL

Тестовый оракул

Компараторыреакций

Эталоннаямодель

Арбитрыреакций

Ад

апт

ер

ы в

ход

ных

инт

ер

фе

йсо

в

Ад

апте

ры

выход

ных и

нтер

фе

йсо

в

Стимулы

Реакцииреализации

Реакцииэталонной модели

6/26

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

Проверка корректности поведения

Временные ограничения

Функциональные свойства

• Множества реакций корректно

• Каждая реакция корректна

• Корректный порядок реакций

• Задержки между реакциями корректны

7/26

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

Потактовые проверки

R1

Реакции реализации

Реакции эталонной модели

send(R1);

send(R2);

delay(3)

R1

R2

✕Сравнение

R2

3 такта

8/26

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

Неопределенность порядка реакций

SR2 R1

Исполнение реализации

recv(in_iface, S);

Исполнение эталонной модели

send(out_iface, R1);

send(out_iface, R2);

...

...Ошибка: R2 R1

Пересмотреть порядок

Порядок реакций

R1R2Разрешено: R2 Order

9/26

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

Упорядочивание реакций

• Арбитр реакций находит реакцию, соответствующую реакции эталонной модели

• Проверка поведения зависит от эталонной модели и метода упорядочивания

• Арбитры реакций включают часть тестового оракула, проверяющую порядок реакций

10/26

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

Типы арбитров реакций

• Детерминированный арбитр,основанный на моделиarbiter: 2Reaction Reaction {fail}

• Адаптивный арбитрarbiter: 2Reaction Reaction Reaction {fail}

• Двухуровневый арбитрarbiter(reactions) arbiter2(arbiter1(reactions), reaction)

– Недетерминированный

– Адаптивный11/26

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

Детерминированный арбитр

R1

Реакции реализации

Реакции эталонной модели

send(R1);

send(R2);

... R1R2

Арбитрреакций

R1

R2

FIFO

✕ Сравнение

S R

Порядок известен

12/26

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

Адаптивный арбитр

R1

Реакции реализации

Реакции эталонной модели

send(R1);

send(R2);

...

R1

R2 Арбитрреакций

R1

R2

Get(R1)

Сравнение

S R

Порядок неизвестен

Подсказка ✕

13/26

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

Двухуровневый арбитр

R1

Реакции реализации

Реакции эталонной модели

send(R1);

send(R2);

...

R1

R2Арбитр

#1

R1

R2

Get(R1)

Сравнение

S R

Порядок частично известен

Арбитр#2

Подсказка

Кандидаты

14/26

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

Временное слово

– алфавит событий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: TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models

Частично упорядоченное мультимножество (Pomset)

– алфавит событийPomset-множество – это тройка V, ,

• V – множество вершин

• VV – частичный порядок

• : V – помечающая функция

16/26

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

Частично упорядоченное мультимножество. Примеры

a a b

c

c

db

a

b

a

b

c

d

a

17/26

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

Временные трассы

– алфавит событий, T – временной доменВременная трасса – V, , , [, ]• V – множество вершин• VV – частичный порядок• : V – помечающая функция• : V T – время наступления события• : V T – разрешенный интервал

18/26

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

Поведение спецификации и реализации

Поведение реализации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: TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models

Отношение конформности

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: TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models

Динамическое сопоставление трасс

• S, I – реакции спецификации и реализации для монитора, t – монотонно возрастает

21/26

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

Проверка отношения соответствия

22/26

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

C++TESK Testing ToolKitWeb: http://forge.ispras.ru/projects/cpptesk-toolkitE-mail: [email protected]

23/26

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

Применение инструментаМодуль Стадия разработки Точность моделирования

от доTLB Поздняя/завершающая приближенная потактовая

FPU Поздняя/завершающая без учета времени --

L2 Промежуточная/поздняя приближенная --

DATABOX Промежуточная/ завершающая

приближенная потактовая

MAU Ранняя/промежуточная без учета времени потактовая

IC Ранняя/промежуточная без учета времени приближенная

TLU Поздняя приближенная --

L2-BANK Поздняя потактовая --

IB Поздняя/завершающая потактовая --

L3 Промежуточная приближенная --

24/26

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

Заключение

• Разработан метод динамического анализа аппаратуры на основе теории частично упорядоченных мультимножеств

• Метод был реализован в инструменте C++TESK Testing ToolKit и успешно применен в ряде проектов

• Дальнейшие исследования связаны с диагностикой ошибок и подсказками для их локализации

25/26

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

СПАСИБО!

Вопросы?

26/26