BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis
1. Метод построения расширенных конечных автоматов по HDL-описанию на основе статического анализа кода
Смолов Сергей Александрович
Камкин Александр Сергеевич
Институт системного программирования РАН
3. HDL-описание
•Представление аппаратуры на специализированном языке (VHDL, Verilog)
–Близки к ЯП (C, Ada)
•Основные компоненты HDL-описаний:
–Модуль (структура)
•Интерфейс (входные/выходные сигналы)
–Процесс (поведение)
•Список чувствительности
3 /20
4. Верификация HDL-описаний
•Трудоемкий и дорогостоящий этап разработки аппаратуры
•Использование моделей на основе:
–Требований (документация, ТЗ)
–Исходного кода
•Примеры моделей: сети Петри, автоматы
4 /20
5. Расширенный конечный автомат
(EFSM-модель)
Очередь пуста Очередь не пуста
{true & push}
n++
...
{n< size & push}
n++
...
{n=1 & pop}
n--
...
{n>1 & pop}
n--
...
push pop
n
size
действие
охранное
условие
5 /20
6. Построение EFSM-моделей по HDL- описанию
•Логический синтез
–Метод извлечения FSM-моделей [Giomi, 1993]
•Ускорение прогона тестов
–Трансляция HDL-описаний в модели уровня TLM [Bombieri, 2012]
•Генерация функциональных тестов
–Метод на основе поиска с возвратами (backjumping)[Guglielmo, 2011]
6 /20
7. Предлагаемый подход
•Построение промежуточного представления
•Трансформация в систему охраняемых действий (GADD-диаграмму)
–Синхросигналы
–Переменные состояния
•Пространство состояний EFSM
•Отношение переходов EFSM
7 /20
9. Охраняемые действия
• Синхронизованные охраняемые действия
для каждого процесса P:
• - часы (множество событий над
синхросигналами)
• - охранное условие (условие ветвления)
• - действие (список присваиваний)
9/20
(i) (i) (i)
1, { , } p p p i n C
(i)
p C
(i)
p
(i)
p
10. Решающая диаграмма системы охраняемых
действий (GADD-диаграмма)
• Подъем условий
на верхний
уровень
• Пути –
охраняемые
действия
10 /20
11. Зависимости по данным между охраняемыми действиями
•v – переменная, x – охраняемое действие (γx→δx)
•v определяется в x, если δx содержит присваивание v
•v используется в x (x зависит от v), если v присутствует в γx или в правой части некоторого присваивания δx
–зависимости по управлению
–зависимости по данным
11 /20
12. Синхросигнал
•Входной однобитный сигнал
•Присутствует в списке чувствительности хотя бы одного из процессов модуля
•Не используется в присваиваниях
12 /20
13. Переменная состояния
•Не является входным сигналом
•Существует охраняемое действие, зависящее от неё по управлению, в котором переменная определяется
•Переменной никогда не присваиваются выражения, зависящие от входных сигналов
13 /20
14. Состояния EFSM-модели
•Построение множества условий на переменные состояния
•Ортогонализация полученных ограничений
14 /20
Clock == 1
input == 2
state > 3
X = Y + Z
15. Переходы EFSM-модели
•Действия переходов – терминальные последовательности базовых блоков GADD- диаграммы
•Начальные/конечные вершины
–Начальная вершина – совместность охранного условия и состояния
–Конечная вершина – совместность слабейшего предусловия и состояния
15 /20
17. Пример(2)
Action1: z = I; x = z;
Конечная вершина:
{i = 0 && x = i }→{x = 0}
Action3: z = ~y; x = z;
Охранные условия:
{y = 0},{y = 1}
x=0 x=1
? ?
i=1
Action3
i=0
Action1
x=0 x=1
i=0
Action1
i=1
y=0
Action3
i=1
y=1
Action3
17 /20
18. Результаты
•Метод реализован в прототипе инструмента HDL Retrascope
–Поддержка VHDL/Verilog
•Проведена апробация на пакете тестов ITC’99
–Построены EFSM-модели для 13/22 описаний
–Описания небольшой сложности (~1000 строк)
–Синхросигналы clock, reset
–Переменные состояния “STAT”
18/20
19. Заключение
•Предложен новый метод извлечения EFSM
•Проведена апробация на HDL-описаниях небольшой сложности
Дальнейшие исследования:
•Апробация на HDL-описаниях повышенной сложности
•Применение построенных моделей к верификации
19 /20