Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 159
Текст из файла (страница 159)
На рис. 7.89(а) показана карта Карно для схемы возбуждения 0-защелки, представленный на рнс. 7.88(Ь). Из карты следует, что имеется единичный статический источник опасности, когда сигналы 0 и 0 равны ! и изменяется сигнал С. К сожалению, петля обратной связи в этой зашел ке не может удержать хранимое ею значение, если из-за задержек при переходном процессе возникает короткий паразитный импульс. Рассмотрим, например, что случится, если 0 и 0 равны ! н С изменяется от ! до О; схема должна остаться за щелки утай со значением 1. Однако это будет не так, если только инвертор не является каким-то сверхбыстродействующим: на выходе верхнего вентиля И ноль появится раньше, чем единица появится на выходе нижнего вентиля И, поэтому сигнат на выходе вентиля ИЛИ станет равным О н петля обратной связи сохранит нулевое значение.
(Ь) С ~СО ;Ь ОО Оз И зс- (а) С чСС оо о! з! !о 0 0 0- = С Ь в С' 0 ь 0 0 0" =- С. 0 ь С' 0 Рис. 7.88. Карты Карно для функций возбуждения 0-защелок: (а) в первоначальной схеме с единичным статическим источником опасности; (Ь) в схеме, где источник опасности исключен 7 10.
Проеюнрование поспедовательностных схем с обратной связью 719 кяетодами, описанными в параграфе 4.5. источники опасности можно устра- , В случае 0-защелки мы просто добавляем в уравнение возбуждения консенсусны й терм; О*=С.0+С.О+О О Соответствующая исправленная схема 0-защелки без источников опасности показана на рис. 7. 88(с) Представим себе теперь, что нам нужна специализированная "0"-защелка с тремя входами данных 01-03, которая запоминала бы 1 только в том случае, когда 01 03 = ()!О.
Это словесное описание можно преобразовать в уравнение возбуждения, которое по форме подобно уравнению возбуждения простой 0-защелки: О* =С (01' 02 03')+ С' О. устраняя источники опасности, получим: О* = С 01' 02 03'+ С' О+ 01' 02. 03' О. Это уравнение возбуждения без источников опасности можно реализовать на дис- кретных вентилях или в ПЛУ, как будет показано в разделе 8.2.6. БУРНЫЙ РОСТ ЧИСЛА ТЕРМОВ-ПРОИЗВЕДЕНИЙ В некоторых случаях необходимость устранения источников опасности может приводить к быстрому росту числа термов-произведений при двухуровневой реализации логики возбуждения. Предположим, например, что нам нужна специализированная защелка с двумя управляющими входами С1 и С2 и тремя входами данных, как в приведенном выше примере. Защелка должна быть «открыта» только в том случае, когда на оба управляющих входа подана 1, и сохраняет единичное значение, если хотя бы один из сигналов на входах данных равен !.
Тогда минимальное уравнение возбуждения имеет вид: О* = С1 С2 (01+ 02+ 03) + (С1 С2)' О = С1 С2 01+ С1 С2 02+ С1 С2. 03+ С1'. О+ С2' О. Однако для устранения источников опасности в этом случае потребуется шесть консенсусных термов (см. задачу 7.76).
*7.10.2. Составление таблицы потока для схемы классическогообразца Первое, что необходимо сделать при проектировании более сложных, чем защелка, последовательностных схем с обратной связью, это преобразовать словесное описание в таблицу потока. Имея таблицу потока, можно посредством рутинных действий (которые, впрочем, могут потребовать заметных усилий) получить саму схему. При составлении таблицы потока для последовательностной схемы с обратной связью мы даем каждому состоянию смысловое название, вытекающее из ~остановки задачи, практически так же, как это делалось нами при проектировании тактируемых конечных автоматов. Однако при составлении таблицы потока 720 Глава 7.
Принципы проектирования последовательиостных схем для последовательностной схемы с обратной связью легче оказаться сбитым с толку, поскольку не каждое состояние в целом устойчиво. Поэтому рекомендуемая процедура заключается в составлении примитивной таблилы потока (рг!т!г!те71ои гаые), то есть такой таблицы, у которой в каждой строке имеется только одно устойчивое состояние в целом Если это условие выполнено, то можно показать, что выходной сигнал является функцией только состояния. В примитивной таблице потока каждое состояние имеет более точный «смысл», нежели это могло бы быть в другом случае, а самой структурой таблицы подчеркивается основной принцип действия схем классического образца: каждый раз может меняться только один из входных сигналов, и интервал времени между изменениями достаточен для того, чтобы в схеме установилось новое устойчивое состояние.
В примитивной таблице потока, как правило, есть избыточные состояния, но вслед за тем, как мы ее составили и убедились в ее правильности, к ней можно будет применить рутинную процедуру минимизации числа состояний. Для демонстрации того, как составляется таблица потока, мы воспользуемся следующим примером, а именно схемой для «отлавливания импульсовж Построить последовательностную схему с обратной связью с двумя входами Р (рц!зе, импульс) и й (тезей сброс) и одним выходом 2, сигнал на котором нормально равен О.
Единичный сигнал должен возникать на выходе, когда на входе Р происходит переход от О к 1; сброс схемы должен осуществляться в тот момент, когда сигнал Р становится равным 1. Типичные временные диаграммы приведены на рис. 7,90. Примитивная таблица потока для такой схемы представлена на рис. 7.91, Сейчас мы пройдем по всему пути составления этой таблицы.
Рис. 7.90. Типичные временные диаграммы дпя ловушки импульсов Предположим, что вначале ловушка импульсов не занята, а сигналы Р и й равны О; это состояние 10ЕЕ с 2 = О. Находясь в этом состоянии, схема могла бы оставаться в нем с приходом сигнала сброса (й = 1), но поскольку мы хотим составить примитивную таблицу потока, мы вводим новое состояние йЕ81, чтобы в одной строке не было двух устойчивых состояний в целом. С другой стороны, если схема находится в состоянии !О!.Е и приходит импульс (Р = 1), мы определенно хотим перейти в другое состояние, которое мы назовем Р! 81, поскольку импульс пойман и мы должны выработать иа выходе единичный сигнал, Комбинацию входных сигналов 11, когда схема находится в состоянии !01 Е, мы не рассматриваем в силу предположения о том, что наша схема является схемой классического образца и каждый раз может измениться только один входной сигнал; мы предполагаем, что схема всегда успевает перейти из состояния !00Е в другое устойчивое состояние до того, как на входе возникнет комбинация 11.
7 10. Проектирование последовательиостиых схем с обратной связью 721 Р Я Значение оо о! !! !О 2 ь!йьет !Оье Ствтояние неванямсти, ожидание импульса !ПЬЕ Рь31 о ЯЕ31 Ев! ЯЕ32 Оо!мс, импульса нет и сглупил импульс, на выходе 1 Сяасс, посчпил импульс о 1,Рь881) ! РЬЕИ О РЬ3! РЬ82 ЯЕ32 ЯЕ81 1~~Е82) ЙЕ82 Импульс закончился, на выходе 1 РЬ32 (Я2 ) Импульс паисутствует, но на выкодв В Р! 8я ЙЕ31 Р!.81 ЯЕ32 !Сьвй) рис. 7.91.
Примитивная таблица потока для ловушки импульсов Заполним теперь места в таблице, предназначенные для указания состояний, следующих за вновь введенным состоянием НЕ81. Когда сигнал сброса закончится, мы можем вернуться обратно в состояние !И.Е. Если возникнет импульс„ то мы должны оставаться в состоянии «сброса», так как, согласно временным диаграммам, переход сигнала Р из 0 в ! при Н = 1 игнорируется. Снова, чтобы таблица потока была примитивной, мы должны ввести для этого случая новое состояние НЕ82. Теперь, когда у нас в каждом столбце имеется по одному устойчивому состоянию в целом, стоит рассмотреть возможные переходы для уже имеющихся состояний, а не вводить все новые и новые состояния.
В самом деле, если схема находится в устойчивом состоянии в целом РЕ81т'!О и сигнал Н становится равным 1, то возможен переход в состояние НЕ82, в котором удовлетворяется требование равенства нулю выходного сигнала. С другой стороны, куда должна перейти схема, если сигнал Р станет равным О? В столбце 00 уже есть устойчивое состояние в целом !ОСЕ, но было бы неправильно сказать, что схема должна перейти именно в это состояние. В состоянии Р1 81 импульс был принят, а сигнала сброса не было видно, поэтому даже с окончанием импульса схема должна оставаться в таком состоянии, при котором все еще 2 = !. Следовательно, для этого случая мы должны ввести новое состояние РС82. Из состояния НЕ82 схема беспрепятственно может перейти в состояние НЕ81, котла импульс заканчивается.
Однако в случае, когда заканчивается сигнал сброса, нам нужно быть осторожнее, как это следует из временных диаграмм. Коль скоро мы уже пропустили переход от 0 к 1 в сигнале Р, мы не можем перейти в состояние РС81, так как в этом случае выходной сигнал оставался бы равным !.
Вместо этого мы вводим новое состояние Рс8м с 0 на выходе. Мы можем, наконец, заполнить строки таблицы, относящиеся к состояниям РЕ82 и РС8!т1, не вводя никаких новых состояний. Заметьте, что из состояния Р! 82 схема может перескакивать в состояние РС81 и обратно, поддерживая на выходе сигнал, равный 1, если приходит последовательность импульсов, а сигнал сброса не возникает. 722 Глава 7. Принципы проектирования последоввтельностиых схем "7.10.3. Минимизация таблицы потокВ Как уже говорилось, в примитивной таблице потока обычно бывает больше состояний, чем это необходимо. Однако существует формальная процедура минимизации числа состояний в таблице потока, описываемая в литературе.
Эта процедура часто оказывается очень сложной, если среди следующих состояний в таблице потока имеются безразличные состояния. К счастью, в нашем примере таблица потока достаточно мала и проста, так что ее можно минимизировать непосредственно. В состояниях10ЕЕ и ЙЕ81 вырабатывается одинаковый выходной сигнал, и у них одни и те же следующие состояния при таких комбинациях входных сигналов, когда следующие состояния указаны.