Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 154
Текст из файла (страница 154)
В комбинационных ПЛУ типа РАИ ба и ПАН 6Ч8, рассмотренных нами в параграфе 5.3, можно реализовать уравнения возбуждения с числом входов, выхолов и термов-произведений, не превосходящим определенного значения. Лучше все же воспользоваться последовательностными ПЛУ, которые будут представлены в параграфе 8.3; в них на одном кристалле имеются и 0-триггеры и комбинационная решетка И-ИЛИ. При одном и том же числе выводов, используемых в качестве входов и выходов, в посл едовател ьностных ПЛУ можно реализовать конечные автоматы большего объема, нежели в эквивалентных комбинационных ПЛУ, поскольку не нужно выводить сигналы возбуждения за пределы кристалла.
В разделе 9Л.3 мы покажем, как реализуется автомат, управляющий задними огнями автомобиля марки Горб ТЬцпдегЬ|гд, в последовательностном ПЛУ. *7.?. Другой пример проектирования конечного автомата В этом параграфе приводится еще один пример построения конечного автомата по лиаграмме состояний. На этом примере обсуждаются такие вопросы, как неиспользуемые состояния, кодирование состояний выходными комбинациями с чгналов и назначение кодовых имен безразличиям состояниям.
7.7.1. Игра на угадывание Наш заключительный пример конечного автомата — «игра на угадывание»; этот забавный автомат можно построить в качестве лабораторного упражнения: 694 Глава 7, Принципы проектирования последовательиостных схем Построить тактируемый синхронный конечный автомат с четырьмя входами 61-04, подключенными к кнопкам, У автомата четыре выхода 11-1 4, к которым подключены лампочки или светодиоды, расположенные рядом с кнопками с теми же номерами. Имеется также выход ЕВВ, к которому подключена красная лампочка. При нормальной работе на выходах 1 1-1 4 и иди цируется комбинация «1 из 4». На каждом такте комбинация сдвигается на одну позицию; частота тактового сигнала равна 4 Гц.
Задача игрока состоит в том, чтобы вовремя нажать кнопку, соответствующую горящей лампочке. При нажатии /-ой кнопки вырабатывается единичный сигнал 6~ Если подан «неправильный» сигнал, то возникает сигнал на выходе ЕВВ и загорается красная лампочка; зто происходит в том случае, когда автомат на очередном такте обнаруживает сигнал, номер которого не совпадает с номером лампочки, зажженной иа предыдущем такте. Когда кнопка нажата, игра останавливается, и сигнал на выходе ЕВВ сохраняет свое значение в течение одного или нескольких тактов, пока не будет снят удерживаемый вами сигнал И, и тогда игра возобновляется. Ясно, что автомат должен иметь четыре состояния, по одному на каждую конфигурацию зажженных и погашенных лампочек, и, по меньшей мере„еще одно состояние, чтобы указывать, что игра остановлена. Возможная диаграмма состояний приведена на рис.
7,65. Автомат циклически проходит через состояния 81-84, пока не подан ни один сигнал Вь и переходит в состояние ВТОР, когда какая-либо кнопка нажата. В состоянии Ей вырабатывается единичный сигнал на выходе 0. 61'62' 63' 64' Рис. 7.65. Первая попытка нарисовать диаграмму состояний автомата для игры на угадывание 7.7. Другой пример проектирования конечного автомата 695 Чем плоха эта диаграмма состояний, так это тем, что она не обеспечивает «запоминания» в состоянии ЯТОР, правильно вы угадали или нет, и, значит, нельзя узнать, каким должен быть выходной сигнал ЕВВ. Эта проблема решается в диаграмме состояний на рис.
7.66 введением двух состояний «останова»: ЯОК и ЯЕВВ, Если вы не угадали, то автомат переходит в состояние ЯЕВН, в котором вырабатывается единичный сигнал ЕВР; в противном случае, автомат переходит в состояние ЯОК, Хотя словесное описание автомата этого и не требует, в диаграмме состояний предусмозрен переход в состояние ЯЕВВ также в том случае, когда игрок попытаегся обмануть автомат одновременным нажатием двух или большего числа кнопок, а также при попытке сменить нажатую кнопку, когда игра остановлена. Рис.
7.66. Правильная диаграмма состояний автомата для игры на угадывание Список переходов, соответствующий диаграмме состояний на рис. 7.66; представленн в табл.7.18 в предположении, что состояния кодируются 3-разрядными двоичными словами кода Грея в том порядке, в каком они проходятся по циклу: Я1- Я4. Из этой таблицы получаются следующие уравнения переходов для 01 «и СЮ«: 01* = 02' 01'. 00 (О!' 02'. 03' 04') +02' 01 00 (01' 62' 03' 04') =02' 00 01' 02' 03'.04' 00* =02' 01' ОО' (01' 02'.03' 04') + 02' 01' ОО' (02+ 03+04) + 02' 01'.ОО (01'.02'.03'.
04') +02' 01'.00 (01+03+ 04) + 02'. 01 00 (01 + 02 + 04) + 02' 01 ОО'. (01 + 02 + ОЗ) + 02. О1'. ОО (01 + 02+ ОЗ+ 04). С помощью программы минимизации можно свести логическое выражение для О!)* к виду «сумма произведений» с 1! термами-произведениями. Выражение для 02* лучше всего записать, перебирая нули в столбце 02* в табл. 7.18: яюс (пава г. ((ринг4ипы проектирования последовательностных схем 02*'= 02' 01' ОО' (О1' ' 02'. 03' 01') + 02'.01' 00 (01' 02' 03' 04') +02' 01. 00 (О1' 02' ОЗ' 04') +02' 01 00' (01' 02' 03' 04') + 02.
01' ОО' (01'. 02'. 03' 04') + 02 01'. 00. (01' 02' 03у 04') = (02'+ 01') (01' 02' 03' (44'). Табл. 7.18. Список переходов автомата для игры на угадывание Текущее состояние Вь (г ! 0 ! О (код ЬЗ Ь4 ЕВВ Выражение перел(яда в аг а! оо 5 62ь С! ° Ось О О О 0 О 0 О О О о о о ! 0 О О ! О о о О О О О 0 0 0 0 0 О 0 0 О О О 0 О О О 0 О ! О О 0 0 Последние пять столбцов в табл.
7.18 содержат значения выходных сигналов. Следовательно, уравнение выхода можно вывести в значительной степени так же, как выводятся уравнения переходов. Однако в данном примере мы имеем дело с автоматом Мура и поэтому в выходные сигналы выражения переходов не входят; для каждого текущего состояния необходимо рассматривать только одну строку в списке переходов.
Уравнения выхода имеют вид: ЕЙЙ =02 01' 00. 83=02' 01 СЮ (.3=02' 01 00' 1.1 = 02' 01' ОО' Е2 = 02'. 01'. ОО *7.7.2. Неиспользуемзиесостояния В нашей диаграмме состояний для игры на угадывание шесть состояний, но у реального автомата с тремя триггерами восемь возможных состояний. Не упо- миная неиспользуемые состояния в списке переходов, мы тем самым считаем их «безразличными» в следующем ограниченном смысле: ЕЦ О О 0 3( О О О 3( О О О 32 О О ! 32 О 0 ! 32 О О 33 О ! зз о зз о 34 0 ! 0 34 0 ! О 34 О ! О ВОК ! О 0 ЗОК ! 0 0 3ЕЙЙ ! 0 ! 3ЕВЙ ! О 6!' 82' 63' 64' 6! 82' 63' 64' 62+ 83+ 64 81' 82' 63' 84' 6!' 62 63' 64' 8! «83 .84 8!' 82' 63' 64 8(' 62' 63 84 8! 62464 8!' 62' 63' 64' 8!' 62' 6З' 64 81 ~.
62 83 81+62 63464 8! 62' 83' 64' 8! + 62 ь аЗ -84 8!' 62' 83' 64' 32 0 зок ! ЗЕЙВ ! зз о 30к ! ЗЕВВ ! 34 О зок ! ЗЕВВ ! 31 О зок ЗЕЙВ зок 31 О ЗЕВВ 31 О 0 ! О О О ! ! ! 0 0 О ! ! 0 О 0 О ! О 0 О О о 0 0 0 О О 0 0 О О О 0 0 0 ! О 0 О О о о 0 '. 0 0 ! 0 О ! О О О О 7.7. Другой пример проектирования конечного автомата 697 ° При составлении уравнений для 01 «и О0" мы образуем сумму р-термов переходов лля тех комбинаций состояние/выход, которые явным образом отмечены единицами в соответствующих столбцах списка переходов. Хотя мы и не принимаем во внимание неиспользуемые состояния, в этой процедуре неявно считается, что им соответствуют нули в столбцах 01 «и С)0*. ° И наоборот, если мы записываем уравнение для 02*' в виде суммы р-термов переходов для комбинаций состояние(вход, имеющих нули в соответствующем столбце списка переходов, то в отношении неиспользуемых состояний неявно считается, что у иих в столбце О2«стоят единицы Как следствие такого выбора, за всеми неиспользуемыми состояниями автомата для игры на угадывание следуют состояния с кодом 100 при любых входных комбинациях.
Это не страшно; можно позволить автомату сбиться и войти в неиспользуемое состояние, поскольку кодовое имя 100 соответствует одному из нормальных состояний (ЗОК). Если бы мы хотели обрабатывать неиспользуемые состояния как истинные «безразличные» состояния, то нам следовало бы позволить им переходить в любые следующие состояния при какнх-то комбинациях входных сигналов. Это простой принцип, но его реализация на практике может оказаться затруднительной. В конце раздела 7.4.4 мы показали, как можно обойтись с неиспользуемыми состояниями, которые полагаются «безразличными», при выводе уравнений переходов и уравнений возбуждения методом карт Карно. К сожалению, карты Карно слишком громоздки во всех случаях, кроме самых простейших задач. С большими задачами легко справляются имеющиеся в продаже программы логической минимизации, но многие из них не допускают наличия «безразличных» значений, либо требуют от разработчика введения для них специального кода.