a method of building extended finite state machines according to hdl-description based on static...

21
Метод построения расширенных конечных автоматов по HDL-описанию на основе статического анализа кода Смолов Сергей Александрович Камкин Александр Сергеевич Институт системного программирования РАН

Upload: iosif-itkin

Post on 02-Jul-2015

1.022 views

Category:

Science


3 download

DESCRIPTION

Sergey Smolov, Alexander Kamkin, ИСП РАН, Moscow

TRANSCRIPT

Page 1: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Метод построения расширенных конечных автоматов

по HDL-описанию на основе статического анализа кода

Смолов Сергей Александрович

Камкин Александр Сергеевич

Институт системного программирования РАН

Page 2: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Схема разработки цифровой аппаратуры

Требования

HDL-описание

проектирование

синтез

2 /20

Page 3: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

HDL-описание

• Представление аппаратуры на специализированном языке (VHDL, Verilog)

– Близки к ЯП (C, Ada)

• Основные компоненты HDL-описаний:

– Модуль (структура)

• Интерфейс (входные/выходные сигналы)

– Процесс (поведение)

• Список чувствительности

3 /20

Page 4: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Верификация HDL-описаний

• Трудоемкий и дорогостоящий этап разработки аппаратуры

• Использование моделей на основе:

– Требований (документация, ТЗ)

– Исходного кода

• Примеры моделей: сети Петри, автоматы

4 /20

Page 5: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Расширенный конечный автомат (EFSM-модель)

Очередь пуста Очередь не пуста

{true & push}

n++...

{n< size & push}n++...

{n=1 & pop}

n--...

{n>1 & pop}n--...

poppushn

size

действие

охранное

условие

5 /20

Page 6: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Построение EFSM-моделей по HDL-описанию

• Логический синтез – Метод извлечения FSM-моделей [Giomi, 1993]

• Ускорение прогона тестов

– Трансляция HDL-описаний в модели уровня TLM [Bombieri, 2012]

• Генерация функциональных тестов

– Метод на основе поиска с возвратами (backjumping)[Guglielmo, 2011]

6 /20

Page 7: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Предлагаемый подход

• Построение промежуточного представления

• Трансформация в систему охраняемых действий (GADD-диаграмму)

– Синхросигналы

– Переменные состояния

• Пространство состояний EFSM

• Отношение переходов EFSM

7 /20

Page 8: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Промежуточное представление

Граф потока управления

(на примере модуля АЛУ из ITC’99 Benchmark)

8 /20

Page 9: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Охраняемые действия

• Синхронизованные охраняемые действия для каждого процесса P:

• - часы (множество событий над синхросигналами)

• - охранное условие (условие ветвления)

• - действие (список присваиваний)

9/20

(i) (i) (i)

1,{ , }p p p i nC

(i)

pC

(i)

p(i)

p

Page 10: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Решающая диаграмма системы охраняемых действий (GADD-диаграмма)

• Подъем условий на верхний уровень

• Пути – охраняемые действия

10 /20

Page 11: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Зависимости по данным между охраняемыми действиями

• v – переменная, x – охраняемое действие (γx→δx)

• v определяется в x, если δx содержит присваивание v

• v используется в x (x зависит от v), если v присутствует в γx или в правой части некоторого присваивания δx – зависимости по управлению

– зависимости по данным

11 /20

Page 12: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Синхросигнал

• Входной однобитный сигнал

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

• Не используется в присваиваниях

12 /20

Page 13: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Переменная состояния

• Не является входным сигналом

• Существует охраняемое действие, зависящее от неё по управлению, в котором переменная определяется

• Переменной никогда не присваиваются выражения, зависящие от входных сигналов

13 /20

Page 14: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Состояния EFSM-модели

• Построение множества условий на переменные состояния

• Ортогонализация полученных ограничений

14 /20

Clock == 1

input == 2

state > 3

X = Y + Z

Page 15: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Переходы EFSM-модели

• Действия переходов – терминальные последовательности базовых блоков GADD-диаграммы

• Начальные/конечные вершины

– Начальная вершина – совместность охранного условия и состояния

– Конечная вершина – совместность слабейшего предусловия и состояния

15 /20

Page 16: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Пример(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 - действия

Page 17: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Пример(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

Page 18: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Результаты

• Метод реализован в прототипе инструмента HDL Retrascope

– Поддержка VHDL/Verilog

• Проведена апробация на пакете тестов ITC’99

– Построены EFSM-модели для 13/22 описаний

– Описания небольшой сложности (~1000 строк)

– Синхросигналы clock, reset

– Переменные состояния “STAT” 18/20

Page 19: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Заключение

• Предложен новый метод извлечения EFSM

• Проведена апробация на HDL-описаниях небольшой сложности

Дальнейшие исследования:

• Апробация на HDL-описаниях повышенной сложности

• Применение построенных моделей к верификации

19 /20

Page 20: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

Спасибо!

• Вопросы?

20 /20

Page 21: A Method of Building Extended Finite State Machines According to HDL-Description Based on Static Code Analysis

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