Синтез микропрограммных автоматов с жесткой логикой
Управляющие автоматы с жесткой логикой являются самыми быстродействующими, но схемные решения автоматов будут зависеть от их функций. Результатом синтеза автомата на жесткой логике является функциональная схема автомата, реализованная на логических элементах.
Элементная база автоматов на жесткой логике состоит из простейших логических элементов: конъюнкторов (элементы «И»), дизъюнкторов (элементы «ИЛИ»), инверторов (элементы «НЕ»), их комбинаций (элементы «И-НЕ», «ИЛИ-НЕ», «И-ИЛИ-НЕ» и т.п.), а так же включает в себя и более сложные элементы: дешифраторы (DC), мультиплексоры (MS), элементы памяти (триггера).
Простейшие логические элементы реализуют вычисление простейших булевых функций. Примеры некоторых элементов, их обозначение и реализуемые ими функции приведены на рисунках (Рис.3.5).
Символ «Ø» - обозначает инверсию, «&» - конъюнкцию, «Ú» - дизъюнкцию. Часто вместо символа «&» используют «*», а в случае однобуквенных переменных – вообще его опускают, например, функции, приведенные на рисунке можно записать так: y = a b; y = Ø (a b Ú c d Ú e).
Используя простейшие логические элементы можно строить функциональные схемы, реализующие сложные булевы функции. Например, построить функциональную схему, реализующую вычисление следующей системы булевых функций
y1 = x2 Ø x1 x0 Ú Ø x2 x1 x0 Ú Ø x2 Ø x1 Ø x0 ;
y2 = x2 Ø x1 x0 Ú Ø x2 x0 Ú x2 Ø x0 ;
y3 = x2 Ø x0 Ú Ø x2 x0 Ú Ø x1;
В приведенном примере в функциях y1 , y2 , y3 встречаются одинаковые конъюнкции, которые обозначим через вспомогательные переменные Z i и выразим через x i.
Z1 = x2 Ø x1 x0; Z2 = Ø x2 x1 x0; Z3 = Ø x2 Ø x1 Ø x0 ;
Z4 = Ø x2 x0; Z5 = x2 Ø x0;
Выразим функции y1 , y2 , y3 через дизъюнкцию Z i :
y1 = Z1Ú Z2 Ú Z3; y2 = Z1Ú Z4 Ú Z5; y3 = Z5Ú Z4 Ú Ø x1 ;
Функциональные схемы строятся по следующим правилам:
1. Входы схемы (переменные x i) – с левой стороны схемы, выходы (переменные y i) – с правой стороны;
2. Входы схемы (переменные x i), значения которых используются в функциях с инверсиями, соединяются с входами инверторов, на выходах которых формируются значения Ø x i;
3. Схемы, вычисляющие значения Z i , строятся на конъюнкторах, на входы которых подаются соответствующие переменные x i или Ø x i;
4. Схемы, вычисляющие значения y i , строятся на дизъюнкторах, на входы которых подаются соответствующие переменные xi ,Ø xi или Z i ;
5. Чтобы схема была легко читаема, при ее изображении используют «шины». Шина изображается более толстой линией на схеме, в которую входят и из которой выходят тонкие линии, отображающие связи между элементами. Для идентификации этих связей непосредственно у шины ставятся либо обозначения соответствующих переменных, либо номера этих связей (первое предпочтительней). На рисунке приведена функциональная схема, реализующая функции y1 , y2 , y3 .
Дешифратор (DC) преобразует позиционный двоичный код (двоичное число) в унитарный. Унитарный код содержит «1» только в одном разряде. Входы дешифратора (в отличие от входов простейших логических элементов) характеризуются своим весом (как разряды двоичного числа): младший разряд имеет вес 1, следующий разряд вес 2, n - разряд имеет вес 2 n-1. Веса разрядов указываются на входах дешифратора. Полный дешифратор имеет 2 n выходов, имеющих нумерацию от 0 до 2 n –1. Таким образом дешифратор с двумя входами имеет 4 выхода, с тремя входами – 8 выходов и т.д. На рисунке приведено изображение дешифратора с двумя входами x1 x0 . Значения x1 x0 - двоичное число, указывающее номер выхода дешифратора, на котором будет сформирован сигнал «1». Функции yi, на выходе дешифратора имеют вид:
y0 = Ø x1 Ø x0 ; y2 = x1 Ø x0 ;
y1 = Ø x1 x0 ; y3 = x1 x0 ;
Функцию дешифратора можно пояснить так же следующей таблицей истинности:
Таблица 3.3
x1 | x0 | y0 | y1 | y2 | y3 |
Многие дешифраторы имеют еще один дополнительный вход – «разрешение работы дешифратора». На рисунке приведен пример такого дешифратора, который называется дешифратор - демультиплексор.
Если на вход V подается «0», то на всех выходах дешифратора – нули; если на вход V подается «1», то дешифратор работает в соответствии с приведенной таблицей истинности, а функции yi, на выходе дешифратора имеют вид:
y0 = S (Ø x1 Ø x0 ); y2 = S (x1 Ø x0 );
y1 = S (Ø x1 x0 ); y3 = S (x1 x0 );
Мультиплексор (MS) выполняет функции электронного переключателя, позволяющего выбрать один из нескольких источников сигнала для одного приемника. Пример простейшего мультиплексора приведен на рисунке 3.9. У этого мультиплексора один управляющий вход (Х) и два информационных (a и b). Если на управляющий вход Х подать «0», то на выходе MS значение y = a, если на Х подать «1», то значение y = b. Другими словами, приведенный на рисунке MS – это переключатель на два положения, которым выбирается один из двух источников информации (a и b) для приемника У. Функцию MS можно описать выражением:
y = Ø х a Ú х b.
Количество управляющих входов у MS может быть 2, 3 и более. В этом случае MS – это переключатель не на два, а на 2 n положений (где n – количество управляющих входов), позволяющий выбирать один из 2 n информационных входов. Номер этого информационного входа задается двоичным числом, подаваемым на управляющие входы: хn-1 ...х1 х0. На рисунке приведен пример MS с четырьмя информационными входами (a, b, c, d) и двумя управляющими (x1x0). Функцию MS такого можно описать выражением:
y = a (Ø x1 Ø x0 ) Ú b (x1 Ø x0 ) Ú c (Ø x1 x0 ) Ú d (x1 x0 );
Используя описанные выше функциональные элементы, можно строить так называемые комбинационные логические схемы (или цифровые автоматы комбинационного типа, автоматы без памяти), т.е. схемы, реализующие булевы функции. В микропрограммных автоматах, как правило, используются элементы памяти, на которых строится память состояний автомата.
Простейшим элементом памяти является статический асинхронный RS – триггер. RS – триггер – это элемент, имеющий два устойчивых состояния, которые обычно обозначают как «0» и «1». Для установки RS – триггера в одно из устойчивых состояний «0» или «1» у него имеется два входа: R – для установки в состояние «0» и S – для установки в состояние «1». Выходы RS – триггера обычно обозначаются как Q – (прямой выход) и ØQ – (инверсный выход). Значение на выходе Q («0» или «1») обычно отождествляют с состоянием триггера «0» или «1». Если через Qt обозначить значение на выходе Q в момент времени t, а через Qt+1 - обозначить значение на выходе Q в момент времени t+1, то поведение RS – триггера можно описать следующей таблицей:
Таблица 3.4
R | S | Qt | Qt+1 | Комментарий |
Хранение «0» | ||||
Хранение «1» | ||||
Установка в «1» | ||||
Установка в «1» | ||||
Установка в «0» | ||||
Установка в «0» | ||||
Х | Запрещенная комбинация R и S | |||
Х | Запрещенная комбинация R и S |
Из таблицы видно, что при R=0 и S=1 происходит установка триггера в состояние «1» (Qt+1 = 1), при R=1 и S=0 происходит установка триггера в состояние «0» (Qt+1 = 0). Эти установки происходят независимо от предыдущего состояния триггера Qt. При R=0 и S=0 триггер сохраняет свое состояние, а комбинация R=1 и S=1 является недопустимой, так как одновременно установить триггер в состояния «0» и «1» невозможно. На рисунке приведено изображение статического асинхронного RS – триггера.
Недостатком асинхронного RS – триггера является то, что изменение его состояния возможно в произвольный момент времени сразу же после изменения сигналов на его входах R и S. Поэтому асинхронный RS – триггер часто используют как элемент памяти для построения синхронных триггеров. В синхронных триггерах изменение состояния возможно только в момент подачи на специальный вход «С» импульса синхронизации. Существуют триггера, синхронизируемые импульсом С и фронтом импульса С. Фронтом импульса синхронизации называют переход значения С из «0» в «1» (положительный фронт) или из «1» в «0» (отрицательный фронт). Триггера, синхронизируемые фронтом импульса С нашли наибольшее применение в цифровых устройствах.
На рисунке приведено изображение двух RS – триггеров, синхронизируемых фронтом импульса синхронизации С. Наклонная черта на входе С показывает, по какому фронту импульса С – положительному (/) или отрицательному (\) происходит переход триггера из одного состояния в другое.
Кроме RS – триггеров широкое применение в цифровых устройствах нашли D - триггера и JK – триггера (так же синхронизируемые фронтом импульса С).
D – триггер, в отличии от RS – триггера, имеет всего один информационный вход – D. Синхронный D – триггер изменяет свое состояние так же в момент поступления на его вход «С» импульса синхронизации С. Новое состояние Qt+1 не зависит от предыдущего Qt , а зависит только от значения на входе D в момент поступления импульса С на вход С триггера. JK – триггер называется универсальным, так как на его основе можно реализовать функции других триггеров. Закон его функционирования можно представить в виде таблицы 3.5.
На рисунке приведены изображения D – триггера, синхронизируемого положительным фронтом импульса С и JK – триггера, синхронизируемого отрицательным фронтом импульса С.
Таблица 3.5
K | J | Qt | Qt+1 | Комментарий |
Хранение «0» | ||||
Хранение «1» | ||||
Установка в «1» | ||||
Установка в «1» | ||||
Установка в «0» | ||||
Установка в «0» | ||||
Изменение состояния на противоположное | ||||
Изменение состояния на противоположное |
Автоматы с жесткой логикой обычно строятся или как автоматы Мура, или как автоматы Мили. Поскольку функционирование и тех и других зависит не только от входных сигналов (логических условий Xi), но и от текущего состояния автомата, необходимым элементом УА является память состояний. В качестве элементов памяти обычно используются триггера различных типов: RS-, D-, JK-, T – триггера, синхронизируемые фронтом (положительным или отрицательным) импульса синхронизации С. По фронту импульса С автомат переходит из одного состояния в другое. Выходные сигналы автомата – микрокоманды, так же вырабатываются синхронно с импульсом С.
Различие автоматов Мура и Мили следующее: в автомате Мура вырабатываемая автоматом микрокоманда Yi зависит только от текущего состояния автомата, а в автомате Мили – от текущего состояния и значений логических условий на входе автомата.