6 Основные понятия и определения теории абстрактных авто­матов (лекция №9)



бет3/3
Дата11.06.2016
өлшемі417.03 Kb.
#128461
1   2   3

3. Определяем разрядность кода для кодирования состояний автомата (количество элементов памяти – триггеров). Всего состояний M=5. Тогда

R = ]log2M[ = ]log25[ =3.

Закодируем состояния из первой строки матрицы следующим образом: K2 = K(а2) = 000; K3 = K(а3) = 001.

Для удобства кодирования будем иллюстрировать этот процесс картой Карно:








  1. Вычеркнем из матрицы первую строку, соответствующую закодированным состояниям а2 и а3. Получим матрицу .








i

j

p(i,j)







1

2

2







3

4

2

M’

=

3

5

2







1

3

1







1

5

1







2

4

1







2

5

1

5. В силу упорядочивания п.2 в первой строке закодирован ровно один элемент. Выберем из первой строки незакодированный элемент и обозначим его . (В нашем случае = 1).

6. Строим матрицу , выбрав из строчки, содержащие .















i

j

p(i,j)













1

2

2

M

=

M’

=

1

3

1













1

5

1

Пусть B = {1,...,F} – множество элементов из матрицы , которые уже закодированы. Их коды К1,..., KF соответственно. В нашем случае:



B = B3 = {2,3} K2 = 000 K3 = 001.
7. Для каждого Kf (f=1, ..., F) найдем – множество кодов, соседних с и еще не занятых для кодирования состояний автомата. (Для соседних кодов кодовое расстояние d=1).

K2 = 000 = {100, 010}

K3 = 001 = {011, 101}.

Построим множество



Если оказывается, что , то строим новое множество , где – множество кодов, у которых кодовое расстояние до кода равно 2 и т.д..



8. Для каждого кода из множества D находим кодовое расстояние до кода .
K2 = 000 K3 = 001

d(100, 000) = 1 d(100, 001) = 2

d(010, 000) = 1 d(010, 001) = 2

d(011, 000) = 2 d(011, 001) = 1

d(101, 000) = 2 d(100, 001) = 1

9. Находим значение функции w для каждого кода из множества D.


10. Из множества D выбираем код K, у которого получилось минимальное значение w в п.9. Выбираем код для состояния a1 К1 =100.




11. Из матрицы вычеркиваем строки, в которых оба элемента уже закодированы, в результате чего получим новую матрицу . Если в новой матрице не осталось ни одной строки, то кодирование закончено. В противном случае возвращаемся к п.5. В нашем случае имеем:








i

j

p(i,j)







3

4

2







3

5

2

M’

=

1

5

1







2

4

1







2

5

1





К2 = 000 = {010}

K3 = 001 = {011, 101}

K2 = 000 K3 = 001

d(010, 000) = 1 d(010, 001) = 2

d(011, 000) = 2 d(011, 001) = 1

d(101, 000) = 2 d(101, 001) = 1

Выбираем К4 = 101.






К1 = 100 = {110}

K2 = 000 = {010}

К3 = 001 = {011}

К1 = 100 K2 = 000 K3 = 001

d(110, 100) = 1 d(110, 000) = 2 d(110, 001) = 3

d(010, 100) = 2 d(010, 000) = 1 d(010, 001) = 2

d(011, 100) = 3 d(011, 000) = 2 d(011, 001) = 1

Выбираем К5 = 011.

Т.к. все состояния автомата закодированы, то работа алгоритма заканчивается. Общее количество переключений триггеров:



Минимально возможное количество переключений (если бы состояния были закодированы соседним кодированием)



Коэффициент эффективности кодирования:



Рассмотренный алгоритм кодирования является машино-ориентированным, существуют программы, реализующие этот алгоритм.

Необходимо отметить в заключении, что использование алгоритма кодирования обеспечивает наиболее простую с точки зрения реализации схему, но при этом возможны гонки. Для радикального устранения последних используют аппаратные методы – триггеры с двойной памятью: триггеры, управляемые фронтом и т.д..
9.2 Пример структурного синтеза синхронного автомата
Выполнить синтез синхронного цифрового автомата заданный совмещенной таблицей переходов/выходов.





0

1

y

a0

a2

a1

0

a1

a3

a4

0

a2

a4

a3

0

a3

a5

a0

0

a4

a0

a5

0

a5

a2

a1

1

Шаг 1 - Для упрощения примера кодирование выполняется не эвристическим алгоритмом, а наиболее простым последовательным способом. В лабораторной работе необходимо выполнить кодирование состояний с помощью эвристического алгоритма.






Двоичный код

a0

000

a1

001

a2

010

a3

011

a4

100

a5

101

Шаг 2 – Переписывается таблица переходов в закодированном виде, вместо букв состояний подставляются двоичные коды состояний. Данная таблица показывает как должны переключатся триггеры под влиянием входных сигналов автомата.







0

1

y

000

010

001

0

001

011

100

0

010

100

011

0

011

101

000

0

100

000

101

0

101

010

001

1

Шаг 3 – Записывается подграф переходов для триггера (JK, RS, T, D), на котором будет построен автомат. В данном случае будем строить на Т-триггере.










T






0



0

0



0



1

1



1



1

0



1



0

1












Шаг 4 – Из закодированной таблицы переходов, полученной на шаге 2 и подрафа переходов для триггера (шаг 3) составляется таблица истинности для входных сигналов триггера, т.е. таблица истинности для функции переходов




Q1

Q2

Q3

X=0

X=1




T2

T3

T1

T2

T3

0

0

0

0

1

0

0

0

1

0

0

1

0

1

0

1

0

1

0

1

0

1

1

0

0

0

1

0

1

1

1

1

0

0

1

1

1

0

0

1

0

0

0

0

1

1

0

1

1

1

1

1

0

0

Шаг 5 – По полученной на шаге 4 таблице строят карты Карно для всех входов триггеров. В данном случае три карты Карно для Т1, Т2, Т3



Q3X

Q1Q2



00

01

11

10

00

0

0

1

0

01

1

0

0

1

11

-

-

-

-

10

1

0

1

1

T1=(nQ2Q3X)U(Q1 nX)U(Q2 nX)




Q3X

Q1Q2



00

01

11

10

00

1

0

0

1

01

1

0

1

1

11

-

-

-

-

10

0

0

0

1

T2=(nQ1Q3)U(Q1 nX)U(Q2 nX)






Q3X

Q1Q2



00

01

11

10

00

0

1

1

0

01

0

1

1

0

11

-

-

-

-

10

0

1

0

1

T2=(Q3x)U(nQ1 X)U(Q1 Q3 nX)


Шаг 6 – По таблице выходов строится таблица для получения функции выходов автомата.


Q1

Q2

Q3

y

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

1

y= Q1 nQ2 Q3


Шаг 7 – по уравнениям, полученным на шаге 5 и 6, строится схема автомата, приведенная на рисунке.





Достарыңызбен бөлісу:
1   2   3




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет