Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры бис.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
12 Мб
Скачать
☆

Алгоритм 1

  1. Для каждого внутреннего состояния ai, ai € A, согласно (1) определяется множество U(ai).

  2. Обеспечивается выполнение условий (2). Последовательно просматриваются состояния множества A. Если для некоторого состояния ai, ai € A, нарушено условие (2), то выполняется расщепление состояния ai.

Для этого вводится H = |U(ai)| новых состояний ai1,...,aiH. Каждому состоянию aih, h = ¯1,H, ставится в соответствие одно и только одно условие X(aih) множества U(ai). Для каждого состояния aih, h = ¯1,H, определяются множества P(aih) и C(aih) следующим образом: P(aih) := P(ai), а C(aih) образуется из всех переходов, которые осуществляются при выполнении условия X(aih). Полагается: A := A \ {ai} и A := A {ai1,...,aiH}.

Пункт 2 выполняется для всех состояний ai множества А.

  1. Вводятся дополнительные внутренние переменные для обеспечения ортогональности кодов внутренних состояний автомата класса E. Для этого строится троичная матрица W. Строки матрицы соответствуют внутренним состояниям множества A, а столбцы - переменным g1,...,gL. На пересечении строки i и столбца j матрицы W ставится единица, если входная переменная xj входит в условие X(ai) в прямом значении; ноль - в инверсном; и неопредел╦нное значение (дефис), если переменная xj не входит в условие X(ai).

Решается следующая задача: добавить в матрицу W минимальное число столбцов, соответствующих дополнительным переменным e1,...,eR, и закодировать строки матрицы W двоичными значениями переменных e1,...,eR таким образом, чтобы все строки матрицы W были взаимно ортогональны. Алгоритм решения последней задачи приводится в [1].

  1. Определяются коды внутренних состояний автомата класса E. При этом код K(ai) каждого состояния ai, ai € A, будет определяться содержимым соответствующей строки матрицы W.

  2. Строится структурная таблица переходов конечного автомата, составляются логические уравнения функций переходов и выходов.

  3. Конец.

Пример 1. В качестве примера рассмотрим синтез автомата Мили класса E, таблица переходов которого представлена в табл. 1. Отметим, что поскольку |A| = 5, то при синтезе автомата Мили класса A потребуется не менее тр╦х элементов памяти для хранения кодов внутренних состояний. Множества U(ai), ai € A, сформированные в результате выполнения пункта 1, приведены в табл. 2. Поскольку для состояний a4 и a5 нарушены условия (2), то согласно пункту 2 выполняется их расщепление, прич╦м состояние a4 расщепляется на два состояния, состояние a5 - на три. Построенная в пункте 3 матрица W показана в табл. 3 (первые четыре столбца). Для обеспечения ортогональности кодов внутренних состояний конечного автомата введены две дополнительные переменные e1 и e2, а также выполнено кодирование строк таблицы W (пятый и шестой столбец табл. 3). В результате определены следующие коды внутренних состояний:

K(a1) = ¯g4·¯e1·¯e2; K(a2) = g1·¯e1·e2; K(a3) = ¯g1·¯e1·e2; K(a41) = g1·¯g2·e1·¯e2; K(a4²) = g3·e1·e2; K(a51) = g1·g1·e1·¯e2; K(a5²) = ¯g3·e1·e2; K(a5³) = g4·¯e1·¯e2.

Таблица 1. Исходная таблица переходов автомата Мили

am

X(amas)

as

Y(amas)

a1

x1 ¯x1

a2 a3

y3,y4 y3,y4

a2

x1 x2 x1 ¯x2 ¯x1

a5 a4 a3

y4 y3 √

a3

x3 ¯x3

a4 a5

y3 y4

a4

x4 ¯x4

a5 a1

y2 √

a5

x4 ¯x4

a5 a1

y1 √

Таблица 2. Множества U(am)

am

U(am)

a1

¯x4

a2

x1

a3

¯x1

a4

x1 ¯x2; x3

a5

x1 x2; x3; x4

Таблица 3. Матрица W

 

g1

g2

g3

g4

e1

e2

a1

-

-

-

0

0

0

a2

1

-

-

-

0

1

a3

0

-

-

-

0

1

a41

1

0

-

-

1

0

a4²

-

-

1

-

1

1

a51

1

1

-

-

1

0

a5²

-

-

0

-

1

1

a5³

-

-

-

1

0

0

Структурная таблица переходов представлена в табл. 4, на основании которой составляются следующие логические уравнения функций переходов и выходов:

d1 = g1·e1·e2·x1·x2 + g1·e1·e2·x1·x2 + g1·e1·e2; d2 = ¯g4·¯e1·¯e2 + g1·¯e1·e2·¯x1 + ¯g1·¯e1·e2; y1 = g1·g2·e1·¯e2·x4 + ¯g3·e1·e2·x4 + g4·¯e1·¯e2·x4; y2 = g1·¯g2·e1·¯e2¯x4 + g3·e1·e2·x4; y3 = ¯g4·¯e1·¯e2 + g1·­e1·e2·x1·¯x2 + ¯g1·¯e1·e2·x3; y4 = ¯g4·¯e1·¯e2 + g1·¯e1·e2·x1·x2 + ¯g1·¯e1·e2·¯x3.

Таблица 4. Структурная таблица переходов автомата класса E

am

K(am)

X(am,as)

as

K(as)

Y(am,as)

D(am,as)

a1

¯g4╥¯e1╥¯e2

x1 ¯x1

a2 a3

g1╥¯e1╥e2 ¯g1╥¯e1╥e2

y3,y4 y3,y4

d2 d2

a2

g1╥¯e1╥e2

x1 x2 x1 ¯x2 ¯x1

a51 a41 a3

g1╥g2╥e1╥¯e2 g1╥¯g2╥e1╥¯e2 ¯g1╥¯e1╥e2

y4 y3 √

d1 d1 d2

a3

¯g1╥¯e1╥e2

x3 ¯x3

a4² a5²

g3╥e1╥e2¯g3╥e1╥e2

y3 y4

d1,d2 d1,d2

a41

g1╥¯g2╥e1╥¯e2

x4 ¯x4

a5³ a1

g4╥¯e1╥¯e2 ¯g4╥¯e1╥¯e2

y2 √

- -

a4²

g3╥e1╥e2

x4 ¯x4

a5³ a1

g4╥¯e1╥¯e2 ¯g4╥¯e1╥¯e2

y2 √

- -

a51

g1╥g2╥e1╥¯e2

x4 ¯x4

a5³ a1

g4╥¯e1╥¯e2 ¯g4╥¯e1╥¯e2

y1 √

- -

a5²

¯g3╥e1╥e2

x4 ¯x4

a5³ a1

g4╥¯e1╥¯e2 ¯g4╥¯e1╥¯e2

y1 √

- -

a5³

g4╥¯e1╥¯e2

x4 ¯x4

a5³ a1

g4╥¯e1╥¯e2 ¯g4╥¯e1╥¯e2

y1 √

- -

Окончательная реализация конечного автомата класса E показана на рис. 2.

Рисунок 2. Реализация на ПЛИС автомата класса E

Отметим, что в данном примере при синтезе автомата класса E, по сравнению с автоматом класса A, удалось на единицу сократить число макроячеек ПЛИС, необходимых для построения памяти конечного автомата.