SlideShare a Scribd company logo
Метод построения расширенных конечных автоматов по 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-- 
... 
push pop 
n 
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 n C       
(i) 
p C 
(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=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
Результаты 
•Метод реализован в прототипе инструмента 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

More Related Content

PPTX
TMPA-2013 Tsytelov Trifanov Devexperts
PDF
Static Analysis of Transactions Management in Applications for Java EE Platform
PDF
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...
PDF
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
PDF
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
PDF
TMPA-2015: Lexical analysis of dynamically formed string expressions
PDF
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
PDF
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...
TMPA-2013 Tsytelov Trifanov Devexperts
Static Analysis of Transactions Management in Applications for Java EE Platform
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...

What's hot (20)

PPTX
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
PDF
Probabilistic Verification in Computational Systems Design
PPTX
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
PDF
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
PDF
A Method of Reducing Computational Complexity in Verification of Programming ...
PDF
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
PDF
Detecting logged in user's abnormal activity
PPT
Конструирование алгоритмов
PPTX
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
PDF
Основы С++ (операторы, типы данных, функции)
PPTX
Современный статический анализ кода: что умеет он, чего не умели линтеры
PPTX
Александр Тарасенко, Использование python для автоматизации отладки С/C++ код...
PPTX
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
PDF
Догнать и перегнать boost::lexical_cast
PDF
C++ exceptions
PPT
Программирование как этап решения задач на компьютере
PDF
Для чего мы делали свой акторный фреймворк и что из этого вышло?
PPT
Запись вспомогательный алгоритмов на языка Паскаль
PPT
Развитие технологий генерации эксплойтов на основе анализа бинарного кода
PPTX
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
Probabilistic Verification in Computational Systems Design
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
A Method of Reducing Computational Complexity in Verification of Programming ...
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Detecting logged in user's abnormal activity
Конструирование алгоритмов
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Основы С++ (операторы, типы данных, функции)
Современный статический анализ кода: что умеет он, чего не умели линтеры
Александр Тарасенко, Использование python для автоматизации отладки С/C++ код...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Догнать и перегнать boost::lexical_cast
C++ exceptions
Программирование как этап решения задач на компьютере
Для чего мы делали свой акторный фреймворк и что из этого вышло?
Запись вспомогательный алгоритмов на языка Паскаль
Развитие технологий генерации эксплойтов на основе анализа бинарного кода
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Ad

Viewers also liked (11)

PDF
Alias Calculus for a Simple Imperative Language with Decidable Pointer Arithm...
PPTX
RSTQB Presentation about ISTQB Agile Tester during TMPA-2014:
PPT
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
PDF
AADL Module Analysis by means of Graphical Representation
PDF
Generalized Tabular LL-Analysis
PDF
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
PPTX
Risk Control System Implementation at TMPA-2014 (Trading Systems Testing)
PPTX
HSE Trading Test Scenarios Models at TMPA-2014 (Trading Systems Testing)
PPT
Trading Day Logs Replay at TMPA-2014 (Trading Systems Testing)
PDF
Extended High-Level C-Compatible Memory Model with Limited Low-Level Pointer ...
PPTX
TMPA-2014: Exactpro Pep Talk
Alias Calculus for a Simple Imperative Language with Decidable Pointer Arithm...
RSTQB Presentation about ISTQB Agile Tester during TMPA-2014:
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...
AADL Module Analysis by means of Graphical Representation
Generalized Tabular LL-Analysis
Devexperts FIX Test Automation at TMPA-2014 (Trading Systems Testing)
Risk Control System Implementation at TMPA-2014 (Trading Systems Testing)
HSE Trading Test Scenarios Models at TMPA-2014 (Trading Systems Testing)
Trading Day Logs Replay at TMPA-2014 (Trading Systems Testing)
Extended High-Level C-Compatible Memory Model with Limited Low-Level Pointer ...
TMPA-2014: Exactpro Pep Talk
Ad

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

PDF
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
PPTX
Bytecode
PPTX
Функциональные сети на основе библиотеки SynapseGrid
PDF
Как приручить дракона: введение в LLVM
PDF
Tech Talks @NSU: Как приручить дракона: введение в LLVM
PDF
1 встреча — Параллельное программирование (А. Свириденков)
PPTX
Доклад в Mail.ru 01.11.12
PDF
Formal verification of operating system kernels
PPTX
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
PPTX
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
PDF
20090222 parallel programming_lecture01-07
PPTX
Автоматизированная разработка генераторов тестовых программ для микропроцессо...
PDF
TMPA-2013 Dmitry Zaitsev
PPTX
Subprograms in VHDL, Procedures in VHDL
PPT
Conflux: GPGPU .NET
PPTX
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
PDF
TeaVM: dead code elimination and devirtualization
PDF
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
PPTX
разработка серверов и серверных приложений лекция №3
PPTX
разработка серверов и серверных приложений лекция №3
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Bytecode
Функциональные сети на основе библиотеки SynapseGrid
Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
1 встреча — Параллельное программирование (А. Свириденков)
Доклад в Mail.ru 01.11.12
Formal verification of operating system kernels
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
20090222 parallel programming_lecture01-07
Автоматизированная разработка генераторов тестовых программ для микропроцессо...
TMPA-2013 Dmitry Zaitsev
Subprograms in VHDL, Procedures in VHDL
Conflux: GPGPU .NET
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
TeaVM: dead code elimination and devirtualization
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3

More from Iosif Itkin (20)

PDF
Foundations of Software Testing Lecture 4
PPTX
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
PDF
Exactpro FinTech Webinar - Global Exchanges Test Oracles
PDF
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
PDF
Operational Resilience in Financial Market Infrastructures
PDF
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
PDF
Testing the Intelligence of your AI
PDF
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
PDF
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
PPTX
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
PDF
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
PDF
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
PPTX
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
PDF
QA Community Saratov: Past, Present, Future (2019-02-08)
PDF
Machine Learning and RoboCop Testing
PDF
Behaviour Driven Development: Oltre i limiti del possibile
PDF
2018 - Exactpro Year in Review
PPTX
Exactpro Discussion about Joy and Strategy
PPTX
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
PDF
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
Foundations of Software Testing Lecture 4
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Operational Resilience in Financial Market Infrastructures
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
Testing the Intelligence of your AI
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QA Community Saratov: Past, Present, Future (2019-02-08)
Machine Learning and RoboCop Testing
Behaviour Driven Development: Oltre i limiti del possibile
2018 - Exactpro Year in Review
Exactpro Discussion about Joy and Strategy
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
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-описанию на основе статического анализа кода Смолов Сергей Александрович Камкин Александр Сергеевич Институт системного программирования РАН
  • 2. Схема разработки цифровой аппаратуры Требования HDL-описание проектирование синтез 2 /20
  • 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
  • 8. Промежуточное представление Граф потока управления (на примере модуля АЛУ из ITC’99 Benchmark) 8 /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
  • 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. Пример(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
  • 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