Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 203
Текст из файла (страница 203)
В табл. 7,25 проект, относящийся к первому из них, был представлен на языке АВЕ1. в расчете на реализацию в ПЛУ, а затем в табл. 7.27 было показано, как лучше воспользоваться особенностями языка АВЕЬ, чтобы поведение автомата сделать более понятным, Наш второй пример — «автомат для подсчета числа единиц», к которому предъявляются следующие требования: 9.1. Примеры проектирования иа языке АВЕ1. 927 ОТКАЖЕМСЯ ОТ ДУРНЫХ ПРИВЫЧЕК! В главе 7 мы начали проектирование автоматов с помощью таблиц состояний, не включая явно вход сброса. у этого были две причины: во-первых, с каждым дополнительным входом, в принципе, удваивается работа, которую необходимо вы пол нить для синтезирования конечного автомата вручную, а во-вторых, с педагогической точки зрения, это давало бы небольшой эффект. Но в реальных проектах практически всегда требуется вход сброса, сигнал на котором обеспечивает возврат автомата в известное состояние. Поэтому теперь, переходя к разработке конечных автоматов путем описания на том или ином языке и с помощью автоматизированных средств, мы должны отказаться от дурной привычки и обеспечивать наличие входа сброса в явном виде.
Другой пример нз параграфа 7.4 — конечный автомат для кодового замка (в дальнейшем опущен выход НйЧТ, имевшийся в исходном варианте): Построить тактируемый синхронный конечный автомат с одним входом Х и одним выходом (!1Ч(.К. Сигнал на выходе ОН! К должен равняться 1 тогда и только тогда, когда сигнал Х равен 0 и последовательность его значений на предыдущих семи тактах имела вид: 0110111. Нами была составлена таблица состояний для такого автомата (табл.
7.14) и написана эквивалентная программа на языке АВЕС (табл. 7.31). Однако мы снова применим другой подход, который легче понять. Заметим, что в этом примере сигнал на выходе автомата в любой момент времени полностью определен значениями входного сигнала на последних восьми тактах. Следовательно, мы можем воспользоваться так называемым «принципом конечной памяти», когда явно отслеживаются семь предыдущих значений входного сигнала и выходной сигнал формируется как комбинационная функция этих значений.
Программа на языке АВЕЬ в табл. 9.2 является реализацией принципа конечной памяти. В ней используются наборы, благодаря чему ее легко настраивать на другие кодовые комбинации. Заметьте, однако, что и в данном случае сформировать сигнал Н1ИТ было бы так же трудно, как и в исходной версии этого автомата (см, задачу 9.
2). ПРИНЦИП КОНЕЧНОЙ ПАМЯТИ Возможно следующее обобщение идеи построения автомата с конечной памятью. Сигналы на выходах такого автомата полностью определяются текущими значениями входных сигналов и значениями выходных сигналов на последних л тактах, где л — конечное, ограниченное целое число. Автоматом с конечной памятью является любое устройство, которое можно реализовать так, как показано на рис. 9.3. Заметьте, что автомат с конечным числов состояний не обязательно представляет собой автоматс конечной памятью. Например, у автомата, считающего число единиц, всего четыре состояния, но он не является автоматом с конечной памятью: его выходной сигнал зависит от всех значений Х ну с момента запуска.
928 Глава 9. Примеры проектирования последовательностных схем Табл. 9.2. Программа дпя конечного автомата с конечной памятью, управля- ющего кодовым замком вобп)е совс)скт" стс1е 'Сов)г1пас1оп-1осН Бсесе иасп1пе' "СОМБЬСКЕ деттсе 'Р16УББ'; еопавтопв ХНТБТОКУ.СЕК = СЫСК; ХНТБТОБУ := гКЕБЕТ Ф БНТгТХ; ОН К !БЕБЕТ в 1Х " О) и 1ХНТБТОБУ ~0,1,1,0,1 ° 1,13); ЕНО совЬТсИ и триперов гн Сот 01ОСК птриггеров Рис. 9.3. Общая структура автомата с конечной памятью Терев епс опсрсс ртов СЕОСК„ ВЕБЕТ, Х Х1..Х7 "си 1,К " Бесе ХН1БТОКУ ~Х7 .Х13; БНТУТХ " [Хб.,Х1, Х3 ' р1п 1, 2, Б; ртп 12.. 1Б твтуре 'теБ'; ртп 19; 9.1 ° Примеры проектирования на языке АВЕЬ 929 9.1.3 Задние огни автомобиля марки Рогкз ТгзопдегЬ>гкг аооп?е сЬ1тйва с1с?е 'ясасе Маек?ее тот т-Я1та Та11 ь1япсв' ТЗ1КОЯО аеч?се 'Р16ЧЯК'; ?прас апа опсрпс р?пв С?.ОСК, ЬЕРТ.
К1ОНТ, НАК, КЕЯЕТ рка 1, 2, 3, 4, Б; ЦО, Ц1, Ц2 р1п 14, 16, 16 Авсуре 'тее'; " Ое1зп1Сзопв ЦЯТАТЕ Щ2, Ц1, Ц03; ?ОЬЕ " Г О, О, 01; Ь1 =ГО,0,11; Ь2 =ГО,1,13' 13 - "10, 1, 01; К1 Г 1, О, 13; К2 =Г1,1,13; КЗ "[1, 1, 01~ ЬКЗ = ~ 1, О, 03~ ЯСаСе тагзао?ев " Ясасев еяпасзспв ЦБТАТЕ.СЬК = СЬССК; есасе 41аЕгаш ЦЯТАТЕ втасе 10ЬЕ: 1Р ВЕЗЕТ ТНЕИ 10ЬЕ еьБе 1Р АБАЯ а ?,еРт А к?снт) тнеи ькз ЕЬЯЕ 1Р ЬЕРТ ТНЕИ 1.1 ЕЬЯЕ 1Р К10НТ ТНЕИ К1 ЕЬ«Р 10ЬЕ всасе Ь?: 1Р КЕЯЕТ ТНЕМ 10ЬЕ ЕЬБЕ 1Р НА2 ТНЕМ ЬКЗ ЕЬЯЕ Ь2; всасе 02: 1Р КЕБЕТ ТНЕИ 10?.Е ЕЬБЕ 1Р НАК ТНЕМ ?ЯЗ ЕЬБЕ ?,3; вСаСе ЬЗ; СОТО 10ЬЕ; всасе к1: 1Р кеБет тнеи 10ье еьБе 1Р нАК тнеи ькз еьяе к2; вСаСе К2: 1Р КЕЯЕТ ТНЕИ 10ЬЕ ЕЬЯЕ ?Р НАК ТНЕИ ЬКЗ ЕЬЯЕ КЗ; втаСе КЗ: СОТО 10ЬЕ; всесе ЬКЗ: СОТО 10ЬЕ' епо сьатава В параграфе 7.5 был описан и построен конечный автомат для управления «задними огнями автомобиля марки Гол ТйппдегЫгй». В табл.
9.3 приведена эквивалентная «диаграмма состояний» такого автомата на языке АВЕК. Существует тесная связь между этой программой и диаграммой состояний, показанной на рис. 7,64, при кодировании состояний согласно табл. 7. 1 6. За исключением добавленного здесь входа ВЕЗЕТ, программа выдает точно такие же приведенные уравнения, какими являются непосредственные уравнения переходов, полученные нами в параграфе 7.6 на основании списка переходов.
Табл. 9.3. Программа на языке АВЕЬ для автомата, управляющего задними огнями автомобиля марки Рого ТНипбегЬ~гб 930 Глава 9. Примеры проектирования последовательностных схем Программа в табл. 9.3 оперирует только переменными состояния данного автомата. Для выходной логики необходимы шесть комбинационных выходов, но у ПЛУ 16Ч8, указанного в программе, имеется только пять свободных выходов. Для декодирования состояний можно было бы воспользоваться еще одним ПЛУ, осуществив разбиение, подобное тому, какое показано на рис. 9.2.
Альтернативой этому является применение большего ПЛУ, например 22Ч!0, у которого достаточно выходов, чтобы устройство можно было построить на одной ИС. Оль! еуан СЬОСК ьегт нюнт нле Табл. 9.4. Запись состояний в форме выходного кода для автомата, управ- ляющего задними огнями автомобиля марки Еогд ТбипсегЫгб аоааЬе Е1х1тсвас е111е 'Оиерас-соеес т-81гз та11 818нсв Беате иаслхпе' ТВ1ВОБОО ает1се 'г16УЗВ',' Тарас аае острие рхав СЫСК, ЬЕЕТ, 81ОНТ, НАЕ, ВЕЗЕТ рхп 1, 2, 3, 4, Б; ЬЗЕ, Ь22, Ь1Е, 81Е, 822, ВЗЕ рха 18..13 хасуре 'ге8'; " Ое11в1схоав АЕТАТЕ = [ЬЗЕ,ЬЕЕ,Ь12,81Е,ВЕЕ,ВЗЕ~; 10ЬЕ [ О. О, О, О, О, 03; 1.3 = [ 1, 1, 1, О, О, 03; ' 2 " [ О, 1. 1, О.
О. 03; ' 1 = [ О, О, 1, О, О, 03; 81 = [ О, О, О, 1, О, 03; 82 = [ О, О, О, 1, 1, Оз,; ВЗ - "[ О, О, О, 1, 1, 11; ЬВЗ = [ 1, 1, 1, 1, 1, 13; Бсасе тагхаЬЬев Беасее Однако возможно лучшее решение, основанное на том, что различным состояниям автомата соответствуют разные комбинации сигналов на его выходах. Это позволяет применить запись состояний в форме выходного кода.
В этом случае потребуется только шесть регистровых выходов ПЛУ 16Ч8, как показано на рис. ЬЗЕ 12Е ые нхе ЮЕ нзе Рис. 9.4. Устройство управления задни- ми огнями автомобиля марки РогЬ Тйцпс1егЬ1гс1 на одном ПЛУ ы.1. Примеры проектирования на языке АВЕЬ 931 9.4, и не понадобятся комбинационные выходы. Чтобы реализовать такой подход необходимо в предыдущей программе изменить только назначение выводов и определения состояний; в результате получим программу на языке АВЕЬ для устройства с новым именем, приведенную в табл. 9.4. В каждом из шести результирующих уравнений возбуждения используются только четыре терма-произведения. 9.1.4. Игра на угадывание В разделе 7.7.1 было дано следующее описание автомата для игры на угадывание: Построить тактируемый синхронный автомат с четырьмя входами 61-Сз4, подключенными к кнопкам.
У автомата четыре выхода Ь1-1 4, к которым подключены лампочки или светодиоды, расположенные рядом с кнопками с теми же номерами. Имеется также выход Ейй, к которому подключена красная лампочка. При нормальной работе на выходах Ь1-Ь4 индицируется комбинация «1 из 4». На каждом такте комбинация сдвигается на одну позицию; частота тактового сигнала равна 4 Гц. Задача игрока состоит в том, чтобы вовремя нажать кнопку, соответствующую горящей лампочке. При нажатии 1-ой кнопки вырабатывается единичный сигнал И. Если подан «неправильный» сигнал, то возникает сигнал на выходе Ейй и загорается красная лампочка; это происходит атом случае, когда автомат на очередном такте обнаруживает сигнал, номер которого не совпадает с номером лампочки, зажженной на предыдущем такте. Когда кнопка нажата, игра останавливается, и сигнал на выходе Ейй сохраняет свое значение в течение одного или нескольких тактов, пока не будет снят удерживаемый вами сигнал Я, и тогда игра возобновляется.
Как мы видели в разделе 7.7.1, этому автомату необходимы шесть состояний: по одному состоянию на каждую зажженную лампочку и два состояния для тех случаев, когда игра остановлена после правильного или неправильного нажатия на кнопку. В табл. 9 5 приведена программа на языке АВЕЬ для игры на угадывание.