Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
автомат с жёсткой логикой.doc
Скачиваний:
20
Добавлен:
18.03.2016
Размер:
293.38 Кб
Скачать

автомат с жёсткой логикой

Теория управляющих абстрактных и конечных автоматов – очень обширная наука, описывающая понятие автоматов, их поведение, формализацию, различные модели и пр. Здесь не будут рассматриваться все эти теоретические аспекты, рассмотрим лишь две практических варианта УА с жёсткой логикой. Название «автомат с жёсткой логикой» проистекает из того, что алгоритм функционирования такого автомата жёстко задан его схемой. Для внесения даже незначительных изменений в алгоритм необходимо полностью (или почти полностью) пересинтезировать всю схему автомата. «Отделаться» какими-то мелкими изменениями возможно далеко не всегда.

Обобщённая структурная схема УА с жёсткой логикой имеет вид – рис. 2.

Рис. 2. Обобщённая структурная схема УА с жёсткой логикой

На рис. 2: X – множество входных сигналов автомата, Y – множество выходных сигналов, D – сигналы управления памятью,  T – сигналы состояния. УА состоит из 2-х функциональных блоков:

1. КС – комбинационная схема, формирующая выходные сигналы автомата и сигналы управления памятью.

2. Память автомата – просто набор триггеров (регистр). Кол-во триггеров n определяется кол-вом k требуемых состояний автомата. k определяется по-разному для разных автоматов. k равно ближайшему целому (в большую сторону) числу из значений выражения 2n. Т.е. n=]log2k[. Например, если у нас 5 состояний, то мы должны поставить 3 триггера (23=8>5), а если 8, то 4 (24=16>8).

Функционирование УА может задаваться графом переходов либо таблицами истинности. Можно описать его поведение и формулами: Y=ƒ1(X,T), D=ƒ2(X,T).

Очевидно, что при использовании одновходовых триггеров (D и Т) КС получается проще (для каждого триггера формировать надо только один сигнал вместо 2, как для RS или JK триггеров). На практике, если, например, в наличии есть только RS-триггеры, то можно несколько «схитрить», сделав D-триггеры из RS и синтезировать КС в расчёте на D.

Следует также отметить, что всегда следует применять триггеры с синхронизацией. Если использовать триггеры без синхронизации, например, асинхронные RS-триггеры, то полученный автомат будет «перещёлкивать» все свои состояния очень быстро, со скоростью, определяемой скоростью работы элементов, входящих в КС и самих триггеров. Кроме того, на выходе могут появляться какие-то другие, случайные и «незапланированные» комбинации состояний выходов.

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

УА с жёсткой логикой бывают 2-х видов – Мили и Мура.

1.1 Управляющий автомат Мили

Автомат Мили имеет структуру, на 100% совпадающую с рис. 2. И поведение его описывается теми же общими формулами – Y=ƒ1(X,T), D=ƒ2(X,T). Поэтому иногда говорят, что этот автомат генерирует (в смысле изменяет) выходные сигналы при переходах из одного состояния в другое. Здесь подчёркивается тот факт, что Y непосредственно зависит от X.

Рассмотрим синтез автомата Мили на примере.

Допустим, нам необходимо построить автомат, имеющий 2 входных сигнала (x1, x2) и 4 выходных (y1-y4):

x1

x2

y1

y2

y3

y4

0

1

1

0

1

1

1

1

0

0

0

1

1

0

0

1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

0

1

0

1

1

1

Т.к. мы имеем 6 состояний, то нам понадобится 3 триггера. Используем для простоты D-триггеры. Построим теперь полную таблицу истинности автомата:

Сост.

T1

T2

T3

x1

x2

y1

y2

y3

y4

D1

D2

D3

0

0

0

0

0

1

1

0

1

1

0

0

1

1

0

0

1

1

1

0

0

0

1

1

0

0

2

1

0

0

1

0

0

1

1

1

1

1

1

3

1

1

1

1

1

0

0

0

0

1

1

0

4

1

1

0

0

0

1

1

1

1

0

1

1

5

0

1

1

0

1

0

1

1

1

0

0

0

Здесь мы:

  1. Пронумеровали все состояния автомата.

  2. Закодировали все 6 состояний автомата сигналами текущего состояния триггеров Tx. Кодировать можно как угодно, единственное требование – все коды состояний д.б. уникальны. Т.е. не должно быть 2-х и более состояний с одинаковыми кодами.

  3. Дополнили исходную таблицу сигналами Tx и сигналами Dx управления  триггерами для того, чтобы автомат мог переходить из одного состояния в другое.

Также подразумевается, что состояния меняются по кругу. В разделе 1.2 показано, как реализовывается переход их одного состояния в 2 других в зависимости от разных входных сигналов.

По этой таблице уже можно синтезировать КС автомата. Но перед тем, как перейти непосредственно к синтезу, отметим небольшую особенность использованного кодирования состояний: сигнал T1 повторяет x1 со сдвигом на один такт. Это позволяет не строить какие-то формулы и схемы для сигнала D1, а сразу пустить x1 на D1. Подобные «уловки» в ряде случаев позволяют упростить схему и ускорить её быстродействие.

КС должна формировать 7 сигналов: y1-y4 и D1-D3. Составим формулы для каждого сигнала:

По формулам можно нарисовать схему автомата. Мы этого делать не будем, здесь и так всё понятно.

Следует отметить, что у автомата Мили теоретически возможна ситуация, при которой окажется, что какой-то yi зависит только от xj и не зависит от Tn. Т.е. автомат изменяет выходные сигналы, не изменяя своего состояния. Учесть это при синтезе сложно, гораздо проще после него ввести какие-то «ненужные» зависимости yi от каких-то Tn.

1.2 Управляющий автомат Мура

Автомат Мура отличается от Мили тем, что он описывается формулами Y=ƒ1(T), D=ƒ2(X,T). Т.е. его выходные сигналы зависят только от состояния триггеров. Поэтому его КС фактически распадается на 2 независимые КС – рис. 3.

Рис. 3 Структура автомата Мура

КС1 реализует функцию D=ƒ2(X,T), а КС2 - Y=ƒ1(T).

Построим автомат Мура для того же примера:

Сост.

x1

x2

y1

y2

y3

y4

0

0

1

1

0

1

1

1

1

1

0

0

0

1

2

1

0

0

1

1

1

3

1

1

0

0

0

0

4

0

0

1

1

1

1

5

0

1

0

1

1

1

Сразу отметим, что состояния 2 и 5 для Мура полностью эквивалентны, т.к. они генерируют идентичные наборы выходных сигналов. Поэтому состояние 5 можно выбросить и добавить дополнительный переход из состояния 2 по сигналам x1x2=01 в состояние 0. Это действие заменит выброшенное 5-е состояние в плане переходов.

Исключение эквивалентных состояний в общем случае может сократить число триггеров автомата.

ТИ для КС1 (таблица переходов автомата):

Сост.

T1

T2

T3

X1

x2

D1

D2

D3

0

0

0

0

0

1

0

1

1

1

0

1

1

1

1

1

1

0

2a

1

1

0

1

1

1

1

1

2b (5)

1

1

0

0

0

0

0

0

3

1

1

1

1

1

1

1

0

4

0

1

0

0

0

0

1

1

Правила кодирования состояний те же, что и автомате Мили.

Коды состояний  001, 100, 101 и сочетание входных сигналов x1x2=10 не используются, это можно учитывать при минимизации.

Обратите внимание, что в таблице 2 строки, соответствующие состоянию 2. Строка 2b соответствует выброшенному состоянию 5. Видно, что из неё автомат переходит в состояние 0.

Получим минимальные формулы сигналов D1, D2 и D3 КС1:

Карта Карно для сигнала X1 – рис 4.

Рис 4. Карта Карно для сигнала X1.

Из карты следует, что D1 = x1. Это же видно из ТИ.

Аналогично: D2 = x1 + T2 + T1 T2 T3 x2 D3 = T1 T2 T3 x2 + T2 + T1 T2 T3 x1

ТИ для КС2 автомата:

Сост.

T1

T2

T3

y1

y2

y3

y4

0

0

0

0

1

0

1

1

1

0

1

1

0

0

0

1

2

1

1

0

0

1

1

1

3

1

1

1

0

0

0

0

4

0

1

0

1

1

1

1

Сигналы:

Рис.5 Карты Карно для сигналов y1-y4

Из анализа формул видно, что y3 и y4 можно формировать, используя уже готовые y1 и y2. Это может дополнительно упростить КС2, но на практике такое решение снижает нагрузочную способность схемы на выходах y1 и y2.

Также, можно упростить реальную схему, если в каком-то смысле объединять схемы КС1 и КС2, формируя общие для них внутренние сигналы (например, T1 T3) и использовать их одновременно в обоих схемах. Конечно, обращая внимание на длину получаемых цепочек элементов и на их быстродействие (при увеличении длины цепочки падает её быстродействие).

Даже несмотря на то, что при рассмотрении автомата Мили мы не минимизировали его формулы, можно заметить, что автомат Мура проще уже потому, что для формирования Y не нужны сигналы X.