Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,899 views

Published on

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

Published in: Science
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Метод построения расширенных конечных автоматов по HDL-описанию на основе статического анализа кода Смолов Сергей Александрович Камкин Александр Сергеевич Институт системного программирования РАН
  2. 2. Схема разработки цифровой аппаратуры Требования HDL-описание проектирование синтез 2 /20
  3. 3. HDL-описание •Представление аппаратуры на специализированном языке (VHDL, Verilog) –Близки к ЯП (C, Ada) •Основные компоненты HDL-описаний: –Модуль (структура) •Интерфейс (входные/выходные сигналы) –Процесс (поведение) •Список чувствительности 3 /20
  4. 4. Верификация HDL-описаний •Трудоемкий и дорогостоящий этап разработки аппаратуры •Использование моделей на основе: –Требований (документация, ТЗ) –Исходного кода •Примеры моделей: сети Петри, автоматы 4 /20
  5. 5. Расширенный конечный автомат (EFSM-модель) Очередь пуста Очередь не пуста {true & push} n++ ... {n< size & push} n++ ... {n=1 & pop} n-- ... {n>1 & pop} n-- ... push pop n size действие охранное условие 5 /20
  6. 6. Построение EFSM-моделей по HDL- описанию •Логический синтез –Метод извлечения FSM-моделей [Giomi, 1993] •Ускорение прогона тестов –Трансляция HDL-описаний в модели уровня TLM [Bombieri, 2012] •Генерация функциональных тестов –Метод на основе поиска с возвратами (backjumping)[Guglielmo, 2011] 6 /20
  7. 7. Предлагаемый подход •Построение промежуточного представления •Трансформация в систему охраняемых действий (GADD-диаграмму) –Синхросигналы –Переменные состояния •Пространство состояний EFSM •Отношение переходов EFSM 7 /20
  8. 8. Промежуточное представление Граф потока управления (на примере модуля АЛУ из ITC’99 Benchmark) 8 /20
  9. 9. Охраняемые действия • Синхронизованные охраняемые действия для каждого процесса P: • - часы (множество событий над синхросигналами) • - охранное условие (условие ветвления) • - действие (список присваиваний) 9/20 (i) (i) (i) 1, { , } p p p i n C       (i) p C (i) p  (i) p 
  10. 10. Решающая диаграмма системы охраняемых действий (GADD-диаграмма) • Подъем условий на верхний уровень • Пути – охраняемые действия 10 /20
  11. 11. Зависимости по данным между охраняемыми действиями •v – переменная, x – охраняемое действие (γx→δx) •v определяется в x, если δx содержит присваивание v •v используется в x (x зависит от v), если v присутствует в γx или в правой части некоторого присваивания δx –зависимости по управлению –зависимости по данным 11 /20
  12. 12. Синхросигнал •Входной однобитный сигнал •Присутствует в списке чувствительности хотя бы одного из процессов модуля •Не используется в присваиваниях 12 /20
  13. 13. Переменная состояния •Не является входным сигналом •Существует охраняемое действие, зависящее от неё по управлению, в котором переменная определяется •Переменной никогда не присваиваются выражения, зависящие от входных сигналов 13 /20
  14. 14. Состояния EFSM-модели •Построение множества условий на переменные состояния •Ортогонализация полученных ограничений 14 /20 Clock == 1 input == 2 state > 3 X = Y + Z
  15. 15. Переходы EFSM-модели •Действия переходов – терминальные последовательности базовых блоков GADD- диаграммы •Начальные/конечные вершины –Начальная вершина – совместность охранного условия и состояния –Конечная вершина – совместность слабейшего предусловия и состояния 15 /20
  16. 16. Пример(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 - действия
  17. 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. 18. Результаты •Метод реализован в прототипе инструмента HDL Retrascope –Поддержка VHDL/Verilog •Проведена апробация на пакете тестов ITC’99 –Построены EFSM-модели для 13/22 описаний –Описания небольшой сложности (~1000 строк) –Синхросигналы clock, reset –Переменные состояния “STAT” 18/20
  19. 19. Заключение •Предложен новый метод извлечения EFSM •Проведена апробация на HDL-описаниях небольшой сложности Дальнейшие исследования: •Апробация на HDL-описаниях повышенной сложности •Применение построенных моделей к верификации 19 /20
  20. 20. Спасибо! •Вопросы? 20 /20
  21. 21. 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

×