a method of building extended finite state machines according to hdl-description based on static...
DESCRIPTION
Sergey Smolov, Alexander Kamkin, ИСП РАН, MoscowTRANSCRIPT
Метод построения расширенных конечных автоматов
по HDL-описанию на основе статического анализа кода
Смолов Сергей Александрович
Камкин Александр Сергеевич
Институт системного программирования РАН
Схема разработки цифровой аппаратуры
Требования
HDL-описание
проектирование
синтез
2 /20
HDL-описание
• Представление аппаратуры на специализированном языке (VHDL, Verilog)
– Близки к ЯП (C, Ada)
• Основные компоненты HDL-описаний:
– Модуль (структура)
• Интерфейс (входные/выходные сигналы)
– Процесс (поведение)
• Список чувствительности
3 /20
Верификация HDL-описаний
• Трудоемкий и дорогостоящий этап разработки аппаратуры
• Использование моделей на основе:
– Требований (документация, ТЗ)
– Исходного кода
• Примеры моделей: сети Петри, автоматы
4 /20
Расширенный конечный автомат (EFSM-модель)
Очередь пуста Очередь не пуста
{true & push}
n++...
{n< size & push}n++...
{n=1 & pop}
n--...
{n>1 & pop}n--...
poppushn
size
действие
охранное
условие
5 /20
Построение EFSM-моделей по HDL-описанию
• Логический синтез – Метод извлечения FSM-моделей [Giomi, 1993]
• Ускорение прогона тестов
– Трансляция HDL-описаний в модели уровня TLM [Bombieri, 2012]
• Генерация функциональных тестов
– Метод на основе поиска с возвратами (backjumping)[Guglielmo, 2011]
6 /20
Предлагаемый подход
• Построение промежуточного представления
• Трансформация в систему охраняемых действий (GADD-диаграмму)
– Синхросигналы
– Переменные состояния
• Пространство состояний EFSM
• Отношение переходов EFSM
7 /20
Промежуточное представление
Граф потока управления
(на примере модуля АЛУ из ITC’99 Benchmark)
8 /20
Охраняемые действия
• Синхронизованные охраняемые действия для каждого процесса P:
• - часы (множество событий над синхросигналами)
• - охранное условие (условие ветвления)
• - действие (список присваиваний)
9/20
(i) (i) (i)
1,{ , }p p p i nC
(i)
pC
(i)
p(i)
p
Решающая диаграмма системы охраняемых действий (GADD-диаграмма)
• Подъем условий на верхний уровень
• Пути – охраняемые действия
10 /20
Зависимости по данным между охраняемыми действиями
• v – переменная, x – охраняемое действие (γx→δx)
• v определяется в x, если δx содержит присваивание v
• v используется в x (x зависит от v), если v присутствует в γx или в правой части некоторого присваивания δx – зависимости по управлению
– зависимости по данным
11 /20
Синхросигнал
• Входной однобитный сигнал
• Присутствует в списке чувствительности хотя бы одного из процессов модуля
• Не используется в присваиваниях
12 /20
Переменная состояния
• Не является входным сигналом
• Существует охраняемое действие, зависящее от неё по управлению, в котором переменная определяется
• Переменной никогда не присваиваются выражения, зависящие от входных сигналов
13 /20
Состояния EFSM-модели
• Построение множества условий на переменные состояния
• Ортогонализация полученных ограничений
14 /20
Clock == 1
input == 2
state > 3
X = Y + Z
Переходы EFSM-модели
• Действия переходов – терминальные последовательности базовых блоков GADD-диаграммы
• Начальные/конечные вершины
– Начальная вершина – совместность охранного условия и состояния
– Конечная вершина – совместность слабейшего предусловия и состояния
15 /20
Пример(1)
γ2: x==1 && i==1
δ2: Action2
γ1: x==0 && i==0
δ1: Action1
γ3: (x==0 || x==1)
&& i== 1
δ3: Action3
16 /20
• x – переменная состояния
• Z – внутренняя переменная
• i, y – входной сигнал
• Action1/Action2/Action3 - действия
Пример(2)
Action1: z = I; x = z;
Конечная вершина:
{i = 0 && x = i }→{x = 0}
Action3: z = ~y; x = z;
Охранные условия:
{y = 0},{y = 1}
x=1x=0
??
i=1Action3
i=0Action1
x=1x=0
i=0
Action1
i=1
y=0
Action3i=1
y=1
Action3
17 /20
Результаты
• Метод реализован в прототипе инструмента HDL Retrascope
– Поддержка VHDL/Verilog
• Проведена апробация на пакете тестов ITC’99
– Построены EFSM-модели для 13/22 описаний
– Описания небольшой сложности (~1000 строк)
– Синхросигналы clock, reset
– Переменные состояния “STAT” 18/20
Заключение
• Предложен новый метод извлечения EFSM
• Проведена апробация на HDL-описаниях небольшой сложности
Дальнейшие исследования:
• Апробация на HDL-описаниях повышенной сложности
• Применение построенных моделей к верификации
19 /20
Спасибо!
• Вопросы?
20 /20
EFSM-модели (ITC’99 benchmark)
21
Имя
строк кода EFSM
Синхро-сигналы
переменные состояния
Состояний EFSM
Переходов EFSM
b01 102 1 clock, reset stato 8 24
b02 70 1 clock, linea, reset stato 7 24
b03 134 1 clock, reset stato, fu1, fu2, fu3, fu4, coda0 16 1710
b04 101 1 clock, reset stato 3 29
b05 310 3 clock, reset, start stato, flag, mar 9 700
b06 127 1 clock, cont_eql, reset, eql state 7 33
b07 92 1 clock, reset, start stato, mar 8 21
b08 88 1 clock, reset, start stato, mar 5 18