SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Метод построения расширенных конечных автоматов по 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

Mais conteúdo relacionado

Mais procurados

TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...Iosif Itkin
 
Probabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignProbabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignIosif Itkin
 
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
 
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...Iosif Itkin
 
A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...Iosif Itkin
 
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияДракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияPlatonov Sergey
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activityArvids Godjuks
 
Конструирование алгоритмов
Конструирование алгоритмовКонструирование алгоритмов
Конструирование алгоритмовAndrey Dolinin
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Platonov Sergey
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Olga Maksimenkova
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыcorehard_by
 
Александр Тарасенко, Использование python для автоматизации отладки С/C++ код...
Александр Тарасенко, Использование python для автоматизации отладки С/C++ код...Александр Тарасенко, Использование python для автоматизации отладки С/C++ код...
Александр Тарасенко, Использование python для автоматизации отладки С/C++ код...Sergey Platonov
 
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...corehard_by
 
Догнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_castДогнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_castRoman Orlov
 
Программирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереПрограммирование как этап решения задач на компьютере
Программирование как этап решения задач на компьютереAndrey Dolinin
 
Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Yauheni Akhotnikau
 
Запись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальЗапись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальAndrey Dolinin
 
Развитие технологий генерации эксплойтов на основе анализа бинарного кода
Развитие технологий генерации эксплойтов на основе анализа бинарного кодаРазвитие технологий генерации эксплойтов на основе анализа бинарного кода
Развитие технологий генерации эксплойтов на основе анализа бинарного кодаPositive Hack Days
 
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptСергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptSergey Platonov
 

Mais procurados (20)

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

Destaque

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

Destaque (11)

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

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

Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
 
Функциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridФункциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridАрсений Жижелев
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)Smolensk Computer Science Club
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Alex Tutubalin
 
Formal verification of operating system kernels
Formal verification of operating system kernelsFormal verification of operating system kernels
Formal verification of operating system kernelsDenis Efremov
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыPositive Development User Group
 
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsIosif Itkin
 
20090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-0720090222 parallel programming_lecture01-07
20090222 parallel programming_lecture01-07Computer Science Club
 
Автоматизированная разработка генераторов тестовых программ для микропроцессо...
Автоматизированная разработка генераторов тестовых программ для микропроцессо...Автоматизированная разработка генераторов тестовых программ для микропроцессо...
Автоматизированная разработка генераторов тестовых программ для микропроцессо...CEE-SEC(R)
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevIosif Itkin
 
Subprograms in VHDL, Procedures in VHDL
Subprograms in VHDL, Procedures in VHDLSubprograms in VHDL, Procedures in VHDL
Subprograms in VHDL, Procedures in VHDLvitaliykulanov
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Ontico
 
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Yandex
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3Eugeniy Tyumentcev
 

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

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

Mais de Iosif Itkin

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Iosif Itkin
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...Iosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesIosif Itkin
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolIosif Itkin
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresIosif Itkin
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday SeasonIosif Itkin
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AIIosif Itkin
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresIosif Itkin
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...Iosif Itkin
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiIosif Itkin
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenIosif Itkin
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...Iosif Itkin
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...Iosif Itkin
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)Iosif Itkin
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop TestingIosif Itkin
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in ReviewIosif Itkin
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyIosif Itkin
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesIosif Itkin
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)Iosif Itkin
 

Mais de Iosif Itkin (20)

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test Oracles
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market Infrastructures
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AI
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
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 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop Testing
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in Review
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
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