EFSM Building (Related Work) » History » Version 20
Sergey Smolov, 03/28/2017 08:04 PM
1 | 1 | Sergey Smolov | h1. EFSM Building (Related Work) |
---|---|---|---|
2 | |||
3 | 2 | Sergey Smolov | Алгоритмы извлечения EFSM-моделей из исходного кода HDL-описаний. |
4 | |||
5 | 17 | Sergey Smolov | h2. Giomi J.-C. 1995 Finite State Machine Extraction From Hardware Description Languages |
6 | 16 | Sergey Smolov | |
7 | 17 | Sergey Smolov | Алгоритм строит FSM-модели - частный случай EFSM-моделей - по HDL-описанию. |
8 | 10 | Sergey Smolov | |
9 | 19 | Sergey Smolov | *Шаг 1* |
10 | 20 | Sergey Smolov | HDL-описание подается на вход парсеру, который выполняет лексический и синтаксический анализ и строит _граф потока управления_ (Control Flow Graph, CFG). Выражения парсер представляет в виде ориентированных ациклических графов, внутренние вершины которых помечены операциями, а конечные вершины - переменными или значениями. |
11 | 19 | Sergey Smolov | |
12 | 1 | Sergey Smolov | h2. Cheng K., Krishnakumar A. 1996 Automatic generation of functional vectors using the extended finite state machine model. |
13 | 10 | Sergey Smolov | |
14 | 7 | Sergey Smolov | На вход алгоритму подается описание на языках VHDL или C (BESTMAP-C - см. Jou, J-Y., Rothweiler, S., Ernst, R., Sutarwala, S., and Prabhu, A. 1989. BESTMAP: Behavioral Synthesis from C. In International Workshop on Logic Synthesis (Research Triangle Park, NC, May).) |
15 | 4 | Sergey Smolov | |
16 | *Шаг 1* |
||
17 | 8 | Sergey Smolov | Промежуточное представление кода строится с помощью Bridge AT & T Behaviour Synthesis System. По синхронной части кода (synchronous section) строится _дерево операторов_ (statement tree) _T_. Листовыми вершинами дерева являются базовые блоки (последовательности присваиваний). Ветви дерева снабжены атрибутами. Атрибуты - это выражения булева типа, соответствующие ветвям условных операторов в исходном коде. Не указано, каким образом выбираются переменные состояния (state variables), однако на *Шаге 3* они считаются уже определенными. |
18 | 5 | Sergey Smolov | |
19 | *Шаг 2* |
||
20 | 7 | Sergey Smolov | Строится список всех возможных комбинаций условий на входные сигналы. Условия извлекаются из дерева операторов. Извлеченные комбинации проходят процедуру _ортогонализации_, такую, что каждая исходная комбинация оказывается представимой в виде суперпозиции нескольких ортогональных условий. В результате строится множество ортогонализованных условий _I_. |
21 | 1 | Sergey Smolov | |
22 | *Шаг 3* |
||
23 | 7 | Sergey Smolov | Предыдущий шаг повторяется для всех условий, содержащих переменные состояния. В результате строится множество ортогонализованных условий _C_. |
24 | |||
25 | *Шаг 4* |
||
26 | 11 | Sergey Smolov | Собственно, построение EFSM по дереву T, и множествам C и I. Данный шаг в статье написан в весьма общем виде, псевдокод отсутствует. Результатом данного шага является _граф переходов между блоками_ (block transition graph), формальное определение которого в статье не приводится. |
27 | 7 | Sergey Smolov | |
28 | *Шаг 5* |
||
29 | 1 | Sergey Smolov | Стабилизация графа переходов между блоками. Алгоритм стабилизации приводится в статье с использованием псевдокода. Идея алгоритма состоит в расщеплении слишком общих условий на более частные и не пересекающиеся, что позволяет исключить недетерминированные переходы в модели (Lee, D., Yannakakis, M. 1992. Online minimization of transition systems). Однако допускаются так называемые _частично стабильные переходы_ (semi-stable transitions). В таких переходах 1) действия (update functions) имеют вид x := x + c, где c - константа, а x - переменная состояния; 2) мощность множества конечных вершин равна 2; 3) одной из конечных вершин является начальная вершина, т.е. имеется цикл. В статье показывается, что для таких вершин в процессе обхода можно вычислить количество итераций, которое потребуется, чтобы выйти из цикла. Утверждается, что это допущение сокращает потребление вычислительных ресурсов (времени и памяти), по сравнению с алгоритмом _стабилизации_. |
30 | 10 | Sergey Smolov | |
31 | 18 | Sergey Smolov | h2. Guglielmo G.D., Guglielmo L.D., Fummi F., Pravadelli G. 2011 Efficient Generation of Stimuli for Functional Verification by Backjumping Across Extended FSMs. |
32 | 12 | Sergey Smolov | |
33 | Целью метода является построение EFSM-моделей, которые легко обходить (easy-to-traverse). Обход EFSM-модели является основной техникой для генерации тестов. |
||
34 | 13 | Sergey Smolov | |
35 | *Шаг 1* |
||
36 | Построение "эталонной" EFSM-модели (Reference EFSM, REFSM). |
||
37 | 16 | Sergey Smolov | На вход алгоритму подается HDL-описание в виде _конечного автомата с потоком данных_ (FSM with Datapath, FSMD). FSMD-модель - это комбинация FSM (control path) и _конвейера данных_ (data path). Как правило, FSM-компонент осуществляет прием входных сигналов, чтение переменных состояния и формирование запроса на обработку данных. Запрос передается конвейеру, который его выполняет и возвращает результат FSM-компоненту. FSMD-модель строится методом Giomi ( Giomi J. 1995 Finite state machine extraction from hardware description languages). |
38 | 13 | Sergey Smolov | |
39 | 1 | Sergey Smolov | *Шаг 2* |
40 | 14 | Sergey Smolov | Построение "наибольшей" EFSM-модели (Largest EFSM, LEFSM). На данном шаге выполняется преобразование переходов REFSM, содержащих условные операторы, в переходы LEFSM, не содержащие таковых. Процесс завершается построением LEFSM, количество состояний в которой является наибольшим среди всех шагов алгоритма. |
41 | |||
42 | *Шаг 3* |
||
43 | Построение "наименьшей" EFSM-модели (Smallest EFSM, SEFSM). На данном шаге выполняется группировка совместимых переходов LEFSM. Процесс завершается построением SEFSM, количество состояний в которой является наименьшим среди всех шагов алгоритма. |
||
44 | |||
45 | *Шаг 4* |
||
46 | Дополнительные оптимизации, приводящие к построению "полу-стабилизированной" EFSM (Semi-Stabilized EFSM, (S^2)EFSM) |