Скачиваний:
148
Добавлен:
10.12.2013
Размер:
801.79 Кб
Скачать

3.3. Построение реализуемой таблицы переходов

Этап построения реализуемой таблицы переходов часто еще называют этапом кодирования таблицы.

На этом этапе должно быть определено число элементов памяти автомата, которое позволит реализовать заданные условия функционирования, а также должно быть произведено кодирование внутренних состояний автомата.

Минимальное число элементов памяти определяется числом состояний, которое имеет каждый элемент памяти, и потребным числом состояний памяти синтезируемого ДУ.

Для двоичных элементов памяти их минимальное число Кmin определяется из выражения

,

где N– число состояний памяти ДУ, то есть число строк вторичной (минимизированной) таблицы переходов.

Так, для примера 2 вторичная таблица переходов (табл. .3.7) содержит N=3 строки. Значит, память автомата может быть построена не менее чем на двух элементах, т.е. Кmin=2. ЕслиN=5, то очевидно, Кmin=3 и т.д.

Кодирование внутренних состояний автомата заключается в сопоставлении каждому состоянию памяти (каждой строке таблицы переходов) некоторой комбинации состояний элементов памяти, причем различным состоянием памяти должны соответствовать различные комбинации состояний элементов памяти.

Задача кодирования решается неоднозначно и в принципе может быть выполнена произвольно. Однако на практике в качестве критериев, которым должно удовлетворять кодирование автоматах, выбирают сложность реализации автомата, быстродействие, трудоемкость самой процедуры кодирования, устойчивость работы автомата, т.е. отсутствие состязаний элементов памяти, и т.д.

Наибольшее распространение получило так называемое противогоночное кодирование состояний памяти автомата и, в частности, соседнее кодирование, которое исключает состязание памяти, как критические, так и некритические, путем кодирования соседних состояний автомата (отличающихся только состоянием одного элемента памяти) соседними кодовыми комбинациями (отличающимися только в одном разряде).

Для выполнения дискретным устройством заданных условий работы без состязаний необходимо, чтобы переход от одной строки таблицы переходов к другой (вдоль столбцов) происходил при изменении состояния только одного элемента памяти. Следовательно, в реализуемой таблице переходов для каждой из строк должны быть выбраны такие комбинации состояний элементов памяти, которые обеспечивают переходы от одной строки таблицы к другой ее строке за счет изменения состояния только одного из элементов памяти.

На этом этапе производится кодирование строк таблицы, т.е. приписывание каждой определенной строке комбинации состояний элементов памяти, исключающей состязания.

В результате кодирования строится реализуемая таблица переходов, на которой указываются все переходы. Реализуемая таблица обычно имеет такое же или большее число строк, как и минимизированная таблица переходов. Этап построения реализуемой таблицы переходов, в свою очередь, подразделяется на следующие 4 подэтапа.

А. Определение всех переходов

Переходы могут быть обязательные и возможные.

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

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

Условием существования возможных переходов является наличие в одном столбце таблицы нескольких неустойчивых тактов одного и того же порядкового номера (или прочерка).

Для каждой строки таблицы по каждому столбцу (с неустойчивым тактом) выписываются все переходы: обязательные и возможные.

Для примера 1 (табл. 3.6.) имеются только обязательные переходы:

ab– по столбцу 10, такт 2 переходит в (2);

в а – по столбцу 01, такт 4 переходит в (4).

Для примера 2 (табл. 3.7) также имеются лишь обязательные переходы:

а в – по столбцу 11, такт 3(3);

в c– по столбцу 01, такт 6(6);

с а – по столбцу 00, такт 1(1).

Пример 3. Пусть получено минимизированная таблица переходов некоторого ДУ (табл. 3.10). Выпишем все переходы. От строки а по столбцу 01 имеется обязательный переход к строке в (4(4)). Запишем а в. От строки в по столбцу 10 имеется обязательный переход к строке с (5(5)) и по столбцу 00 возможный переход к строке а либо непосредственно, либо через строку с (сначала переходит в с, а затем с переходит в а). Это записывается следующим образом:

Таблица 3.10

N

x1x2

00

10

11

01

a

(1)

(2)

(3)

4

b

1

5

-

(4)

c

1

(5)

3

(6)

Переходы в одном столбце соединяются знаками дизъюнкции (а v ac), а переходы разных столбцов соединяются знаками конъюнкции. От строки с по столбцу II имеется обязательный переход к строке а и по столбцу 00 – возможный переход в а v aв.

Запишем:

Итак, получили все переходы:

Б. Построение диаграммы переходов.

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

Диаграмма переходов должна удовлетворять для каждого столбца всем обязательным переходам и хотя бы одному из возможных. Вначале она строится только для обязательных переходов. Точки, соответствующие строкам, желательно первоначально выбирать на одной прямой. Каждому переходу должна соответствовать линия. Далее необходимо проверить, удовлетворяет ли построенная диаграмма хотя бы одному из возможных переходов для каждого столбца. Если для какой-либо пары строк ни один из возможных переходов не удовлетворен, то необходимо ввести один из них в диаграмму, т.е. провести дополнительную линию.

Диаграмма переходов для примера I (рис. 3.5) отражает 2 обязательных перехода. Диаграмма переходов для примера 2 (рис. 3.6) отражает 3 обязательных перехода. Для примера 3 строим диаграмму для обязательных переходов (рис. 3.7) и проверяем, удовлетворяет ли она возможным переходам. Убеждаемся, что удовлетворяет, дополнительных линий в диаграмму вводить не нужно.

В. Кодирование строк.

Так как переходы от строк к строке для исключения состязаний должны осуществляться при изменении состояния только одного элемента памяти, то комбинации состояний элементов памяти тех строк, между которыми есть переходы, должны быть соседними.

Так, для примера 2 комбинация состояний ЭП для строки «в» должна быть «соседней» (отличатся состоянием только одного элемента) для строк а и с, а строки с – для строки а.

Для выбора соседних комбинаций состояний элементов памяти, т.е. для кодирования строк таблицы переходов, наиболее удобно пользоваться картой Карно, которая является матрицей соседних состояний. Напомним, что карта Карно состоит из столбцов и строк, которым соответствует определенная комбинация состояний переменных, или свой код. Каждый квадрат карты имеет также свой код – совокупность кодов строки и столбца, на пересечении которых он находится, т.е. каждый квадрат соответствует определенной комбинации состояний всех переменных матрицы. Квадраты карты, расположенные рядом (с любой стороны), являются соседними. Они отличаются состоянием только одного элемента.

Карты Карно могут быть на различное число элементов, например, на 1, на 2, на 3, на 4 и т.д. (рис. 3.8). Каждый квадрат карты Карно имеет свой код (определенное состояние элементов) при выбранной базе. Соседние квадраты имеют соседний код.

Чтобы выяснить, на сколько элементов нужно брать карту Карно, следует рассмотреть диаграмму переходов. Максимальное число переходов из одной точки соответствует минимальному числу элементов карты.

Для «вхождения» диаграммы переходов в карту Карно необходимо в клетках карты расставить номера строк (а, в, с, …) таким образом, чтобы строки, между которыми есть переходы, были соседними (в соседних квадратах). Строку а целесообразно помещать в исходный квадрат (с ВС, равным 0). Если обеспечить все переходы «соседством» не удается, то нужно вводить дополнительные строки. Количество элементов карты Карно определяет и количество элементов памяти. Так, для примера 1 очевидно, что карта Карно нужна на один элемент (рис. 3.9,а).

Из матрицы Карно очевидно, что ДУ должно иметь 1 ЭП и кодировка строк таблицы должна быть такой: а  0, в  1. Для примера 2 берем карту Карно на два элемента (рис. 3.9, б). Видим, что тремя строками а, в, с «войти» в матрицу, обеспечив соседство нужных строк, не удается. Для обеспечения перехода с  а необходимо ввести дополнительную строку d. Получаем при базе у1 у2 код строк:

а 00;

в 01;

с 11;

d 10.

Таким образом, в результате этапа кодирования выбрано число элементов памяти и все строки таблицы (в том числе и дополнительные) закодированы, т.е. каждой строке поставлено в соответствие такое состояние элементов памяти, которое обеспечивает отсутствие состязаний при любых переходах. Любой переход осуществляется при изменении состояния только одного элемента памяти.

Г. Построение реализуемой таблицы переходов

Заполненная карта Карно позволяет построить реализуемую таблицу переходов. Она имеет такой же вид, как и минимизированная таблица, но в ней дополнительно указываются элементы памяти, их состояния (в соответствии с кодом строк) и все переходы.

Для примера 1 число строк реализуемой таблицы (как следует из карты Карно) равно числу строк минимизированной – дополнительных строк нет (табл. 3.11). Расставим в полученной таблице все переходы от а к b (по такту 2) и от b к а (по такту 4).

Для примера 2 реализуемая таблица перехода содержит два элемента памяти – у1 и у2 (табл. 3.12) и будет иметь 4 строки. Строки а, b, с совпадают с одноименными строками минимизированной таблицы. Строка d служит для обеспечения перехода от с к а по столбцу 00. Значит, в строке d, в столбце 00, нужно поставить неустойчивый такт 1.

Таблица 3.11

Y

ab

00

10

11

01

a

0

(1)

2

-

(4)

b

1

(3)

(2)

-

4

Таблица 3.12

Y1Y2

x1x2

00

10

11

01

00

(1)

(2)

3

-

01

(5)

(4)

(3)

6

11

1

(8)

(7)

(6)

10

1

-

-

-

После этого расставим все переходы (стрелки) от неустойчивых тактов.

Соседние файлы в папке Конспект лекций по теории автоматов-Коган