43_Ho3 / 8-АВТОМАТЫ С ЖЕСТКОЙ ЛОГИКОЙ
.DOC3.6. УПРАВЛЯЮЩИЕ АВТОМАТЫ С «ЖЕСТКОЙ» ЛОГИКОЙ
Управляющие автоматы с «жесткой» логикой представляют собой логические схемы, вырабатывающие распределенные во времени управляющие функциональные сигналы. В отличие от управляющих устройств с хранимой в памяти логикой у этих автоматов можно изменить логику работы только путем переделок схем автомата.
Рис. 3.14. Структура управляющего автомата с жесткой логикой
Типичная структурная схема управляющего автомата с «жесткой» логикой показана на Рис. 3.14. В состав схемы входят регистр кода операции, являющийся частью регистра команд, счетчик тактов, дешифратор тактов и дешифратор кода операции, а также логические схемы образования управляющих функциональных сигналов.
На счетчик тактов поступают сигналы от блока синхросигналов, и счетчик с каждым сигналом меняет свое состояние. Состояния счетчика представляют собой номера тактов, изменяющиеся от 1 до и. Дешифратор тактов формирует на i-м выходе единичный сигнал при i-м состоянии счетчика тактов т. е. вовремя i-го такта.
Дешифратор кода операции вырабатывает единичный сигнал на j-м выходе, если исполняется j-я команда.
Логические схемы образования управляющих функциональных сигналов для каждой команды возбуждают формирователи функциональных сигналов для выполнения требуемых в данном такте микроопераций.
Принцип построения логических. схем образования управляющих сигналов поясняется на Рис. 3.15. Здесь показан фрагмент схемы, обеспечивающей выработку управляющего сигнала vk в i-м и n-м тактах выполнения j-и команды.В общем случае значения управляющих сигналов зависят еще и от оповещающих сигналов, отражающих ход вычислительного процесса.
Рис. 3.14. Фрагмент схемы образования управляющих функциональных сигналов:
Дш КОп - дешифратор кода операции; ДшТ — дешифратор тактов
Для реализации этих зависимостей элементы, представленные на Рис. 3.14, берутся многовходовыми и на них заводятся требуемые сигналы логических условий.
Рис. 3.8. Фрагмент схемы образования управляющих функциональных сигналов с реализацией зависимости от оповещающих сигналов
Если, например, необходимо, чтобы при исполнении j-й команды управляющий сигнал vk появлялся в 1-м такте только при значениях оповещающих сигналов и1 = 0 и u3 = 1, а в п-м такте всегда, то схема, приведенная на Рис. 3.7, изменится и примет вид, представленный на Рис. 3.8.
Серьезным недостатком рассмотренных схем является одинаковое число тактов для всех команд. Это требует выравнивания числа тактов исполнения команд по наиболее «длинной» команде, что ведет к непроизводительным затратам времени. Чтобы устранить этот недостаток, схемы строят с использованием нескольких счетчиков тактов.
Схема формирования тактовых сигналов (датчик тактовых сигналов) может строиться на основе использования регистра сдвига, по которому двигается одна 1 (регистр с «бегущей единицей»), что не требует использования дешифратора.
Построение управляющих автоматов с «жесткой» логикой формализуется на основе интерпретации микропрограмм автоматами.
Работу операционного блока можно описать микропрограммой, например, на языке микроопераций или в виде графа. По микропрограмме строится соответствующий управляющий автомат типа Мура или Мили.
Рассмотрим способ построения автомата Мура. Пусть микропрограмма работы некоторого операционного блока имеет вид, представленный на Рис. 3.9, а. Блок ожидает возникновения u1 = 1 и затем производит выработку управляющих функциональных сигналов v1 – v6 в определенной последовательности, зависящей от значений сигналов и2 и u3.
Каждой микрокоманде, отдельно представленной на графе, ставится в соответствие отдельное состояние автомата. Состояния автомата отмечаются управляющими функциональными сигналами соответствующих микрокоманд.
Условия перехода от микрокоманды к микрокоманде представляются в виде конъюнкции входных сигналов, влияющих на переход. Каждая конъюнкция выписывается так, чтобы набор значений входных переменных, обращающих конъюнкцию в 1, соответствовал условию перехода. При безусловном переходе конъюнкция заменяется на константу 1.
Начало и конец микропрограммы отображаются начальным состоянием Qo автомата Мура, при этом предполагается, что автомат является циклическим, т. е. допускающим многократную повторяющуюся выработку последовательностей управляющих сигналов.
Рис. 3.9. Микропрограмма, представленная графом (в), и граф автомата Мура (б), интерпретирующего микропрограмму
Рис. 3.10. Микропрограмма (о) и граф автомата Мили (б),
интерпретирующего микропрограмму
Граф автомата Мура, построенного по описанным правилам для рассматриваемой микропрограммы, представлен на Рис. 3.9,6.
Микропрограмму можно интерпретировать не только автоматом Мура, но и автоматом Мили, отличающимся тем, что значение его функции выхода в момент t зависит не только от состояния автомата, но и от набора значений входных сигналов.
Переход от микропрограммы к автомату Мили иллюстрируется на Рис. 3.10, на котором показаны рассмотренный выше граф микропрограммы и граф автомата Мили, интерпретирующего ее. Начало и конец микропрограммы представляются начальным состоянием автомата Q0. Каждая дуга, выходящая из прямоугольника, представляющего собой микрокоманду, отмечается меткой х и символом состояния автомата. Исключение составляют дуги, идущие к конечной или начальной вершине, которые не отмечаются. Если несколько дуг с меткой х входят в один блок графа микропрограммы, то все они отмечаются одинаковым символом состояния.
Условия перехода по микропрограмме от одной метки состояния к другой, соседней, задают функцию переходов автомата. Эти условия записываются в виде конъюнкций так же, как это делалось для автоматов Мура. Для каждого перехода, кроме того, фиксируется набор выходных переменных, принимающих при переходе единичное значение (задание функции выходов).
Автомат Мили, построенный по микропрограмме, имеет число состояний, как правило, меньшее числа состояний эквивалентного ему автомата Мура. С этой точки зрения использование автомата Мили предпочтительно. Однако применение автомата Мили в качестве управляющего автомата не всегда возможно. Объясняется это тем, что УА работает в контуре с операционным блоком ОБ (Рис. 3.11). У автомата Мили переход в новое состояние осуществляется одновременно с формированием выходного сигнала. Поэтому, если ОБ вырабатывает оповещающие сигналы u1, ...,un сразу при возникновении управляющих сигналов, а управляющий автомат является автоматом Мили, возможна следующая недопустимая ситуация: автомат Мили еще не сменил состояние, а на его входы пришли новые значения оповещающих сигналов, требующие выполнения иного перехода.
Для исключения возможных сбоев в работе управляющих автоматов ставятся специальные схемы задержки или, что то же самое, один из двух автоматов (управляющий либо операционный) выполняют в виде автомата Мура, который меняет выходной сигнал после смены состояния (перехода).
Рассмотрим, каким образом, имея описание управляющего автомата, можно построить схему автомата.
Зная число состояний автомата r, определяем число элементарных автоматов (двухступенчатых триггеров), требуемых для представления состояний автомата. Это число равно k = ] log2 r[. Затем поставим в соответствие наборы значений состояний триггеров состояниям автомата. Пусть, например, нулевое состояние всех триггеров представляет собой Q0, набор состояний триггеров 00...001 соответствует Q1 и т. д. Далее можно построить схему из k триггеров и дешифратора с r выходами. Единичный сигнал на одном из выходов дешифратора указывает соответствующее состояние автомата. Выбрав для определенности D-триггеры, получаем схему выделения состояний управляющего автомата, показанную на Рис. 3.12.
Рис. 3.11. Взаимодействие управляющего автомата и операционного блока
Рис. 3.12. Схема выделения состояний управляющего автомата
Для реализации схемы формирования управляющих сигналов следует выписать для каждого управляющего сигнала его булеву функцию. Для автомата Мура эти функции (функции выходов) имеют вид vi = j Qij.= Qi1 Qi2 ... Q,iw, где Qij — состояние автомата, отмеченное vi.
Так, для автомата, представленного на Рис. 3.9, имеем следующие функции выходов:
Vl = Q1 Q4; v2 = Q2 Q4;
v3=Ql; v4=Qз;
v5 = Q3; v6 =Q5
По этим функциям легко строится схема формирования управляющих сигналов (Рис. 3.13, а). Выдача выходных сигналов синхронизируется так, чтобы она происходила в то время, когда сигналы не меняются.
Для автомата Мили функции выхода имеют вид vi = j (Qij ( Kj)), где Qij. - состояние, из которого выходит дуга, отмеченная выходным сигналом vj„ а Кj — дизъюнкция всех конъюнкций, записанных на дугах, выходящих из Qij. и отмеченных выходным сигналом.
Для автомата, представленного на Рис. 3.10, функции выходов имеют вид
v1 = Q0(u1) Q3 Q4(ū2 ū3 );
v2 = Q1(u2)Q3Q4(ū2 ū3 ); v3 = Q0 (u1);
v4 = Q1 (ū2) Q2; v5 = Q1 (ū2); v6 = Q4 (ū2 u3 u2 ū3 )
Преобразовав выражения с учетом общих частей формул. получим более простые зависимости:
v1 = v3 ; v2 = Q1 (u2) ; v3 = Q0 (u1)
v4 = v5; v5 = Q1 (ū2) Q2;
v6 = Q4 (ū2u3) Q4 (u2 ū3); = Q3 Q4 (ū2 ū3)
По этим выражениям строим схему, представленную на Рис. 3.13,6. Выходные сигналы здесь синхронизированы, как и в схеме на Рис. 3.13, а.
Автомат содержит схему, реализующую смену состояний триггеров в соответствии с функцией переходов.
При смене состояний автомата QiQj происходит смена состояний отдельных триггеров, так как они представляют собой состояния автомата. Следовательно, для каждого триггера
Рис. 3.13. Схема выработки управляющих сигналов для автоматов Мура (а) и Мили (б)
известно, какими должны быть изменения его состояний на всех переходах. Зная тип триггера, можно определить, какие сигналы должны быть поданы на его входы для получения требуемой смены состояний.
Для каждого перехода (указаны на графе автомата дугами) выписываются исходное состояние перехода, набор исходных состояний триггеров, набор состояний триггеров после перехода, а также конъюнкции входных сигналов, представляющие собой условие перехода. По наборам исходных состояний и состояний после перехода выделяются отдельно для каждого триггера ситуации, при которых значения его входов должны быть единичными. Описав все случаи, требующие выработки единичного сигнала, булевыми функциями состояний автомата и входных сигналов, получаем так называемые функции возбуждения, по которым строятся схемы формирования сигналов на входах триггеров. Поясним сказанное примером. Пусть состояния автомата, заданного графом на Рис. 3.9, представлены следующими наборами состояний триггеров:
Таблица3.1
Состояние автомата |
Состояние триггеров |
Состояние автомата |
Состояние триггеров |
||||
Тг1 |
Tг2 |
Тгз |
Тг1 |
Tг2 |
Тгз |
||
Q0 |
0 |
0 |
0 |
Q3 |
0 |
1 |
1 |
Q1 |
0 |
0 |
1 |
Q4 |
1 |
0 |
0 |
Q2 |
0 |
1 |
0 |
Q5 |
1 |
0 |
1 |
Тогда функции переходов можно представить табл. 7.2, по которой строим булевы функции возбуждения D1, D2 и D3):
D1 = Q3 Q4 ū2 ū3 Q4 ū2 u3 Q4 u2 ū3;.
D2 = Q1 u2 Q1 ū 2 Q2;
D3 = Q0 u1 Q1 ū2 Q2 Q4 ū 2u3 Q4u2 ū3;
Упростив выражения, получим
D1 = Q3 Q4 ū2 Q4 ū3 ;.
D2 = Q1 Q2;
D3 = Q0 u1 Q1 ū2 Q2 Q4 ū 2u3 Q4u2 ū3;
По упрощенным выражениям строим схему (Рис. 3.14).
Объединив схему формирования выходных сигналов (Рис. 3.13,а) и схему формирования функций возбуждения (Рис. 3.14), получим схему, реализующую автомат, представленный на Рис. 3.9.
Рис. 3.14. Схема формирования функций возбуждения
Рис. 3.15. Схема неполного выделения состояний автомата
Для получения более экономных схем выделение состояний автомата часто делается неполным, при этом триггеры разделяются на две или более группы, каждая из которых связывается с отдельным дешифратором.
Число выходов схемы неполного выделения состояний резко сокращается и составляет s = 2(k/l)+1, где l — число групп по k/l триггеров.
Таблица 3.2
Исходное состояние |
Исходное состояние триггеров |
Состояние триггера после перехода |
Условие перехода |
Входные сигналы, вызывающие нужные переходы триггеров |
||||||
|
Тг1 |
Tг2 |
Тгз |
Тг1 |
Tг2 |
Тгз |
|
D1 |
D2 |
D3 |
Q0 |
0 |
0 |
0 |
0 |
0 |
0 |
ū1 |
0 |
0 |
0 |
Q0 |
0 |
0 |
0 |
0 |
0 |
1 |
u1 |
0 |
0 |
1 |
Q1 |
0 |
0 |
1 |
0 |
1 |
0 |
u2 |
0 |
1 |
0 |
Q1 |
0 |
0 |
1 |
0 |
1 |
1 |
ū2 |
0 |
1 |
1 |
Q2 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
Q3 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Q4 |
1 |
0 |
0 |
1 |
0 |
0 |
ū2 ū3 |
1 |
0 |
0 |
Q4 |
1 |
0 |
0 |
1 |
0 |
1 |
ū2 u3 |
1 |
0 |
1 |
Q4 |
1 |
0 |
0 |
1 |
0 |
1 |
u2 ū3 |
1 |
0 |
1 |
Q4 |
1 |
0 |
0 |
0 |
0 |
0 |
u2 u3 |
0 |
0 |
0 |
Q5 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Пример такой схемы с l = 2 представлен на Рис. 3.15.
Для полного выделения состояния в этом случае необходимо сигналы с выходов раздельных дешифраторов подать на элемент И. Это можно делать непосредственно в схемах формирования выходных сигналов и функций возбуждения, что дает в итоге более экономную общую схему.
При синтезе схем автоматов формальным методом приходится решать вопросы оптимального кодирования состояний, минимизации числа состояний автоматов, факторизации выражений, описывающих булевы функции возбуждения и выхода, и ряд других.