Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 205
Текст из файла (страница 205)
Имея в виду то, что говорится в предыдущем замечании, заключенном в рамку, следует помнить, что в программе на языке АВВЕ для конечного автомата операторы перехода пополняют множества включений, относящиеся к переменным состояния. Если какая-то конкретная комбинация битов для неиспользуемого состояния не согласуется ни с каким из состояний, для которых в программе имеются операторы перехода, то никакие множества включений не будут пополнены. Следовательно, единственным переходом из такого состояния будет переход в состояние с кодовым именем, состоящим из одних нулей. Поэтому полезно кодировать начальное нли «безопасное» состояние всеми нулями. Если это невозможно, но имя, состоящее из одних нулей, все же не используется, то можно явно задать переход из состояния, обозначаемого олними нулями, в желаемое безопасное состояние.
9.1.5. Построим заново контроллер светофора! Наш последний пример- из мира автомобилей и дорожного движения. Контроллеры светофоров в Калифорнии пцательно сконструированы таким образом, чтобы максимизировать время простоя автомобилей на перекрестках; особенно это относится к замечательному городу Саннивейл. Здесь на незагруженном перекрестке имеются датчики движения и светофоры, показанные на рис. 9.5 (Если бы это было в Чикаго, то самое большее, чем был бы отмечен такой перекресток, — это 9З6 Глава 9.
Примеры проектирования последовательиостных схем НЗСдВ Сигнал принимает активное значение, если хотя бы один автомобиль находится в поле действия одного из датчиков в направлении лвижения «север-юг» по любую сторону перекрестка. НМСдВ Сигнал принимает активное значение, если хотя бы один автомобиль находится в поле действия одного нз датчиков в направлении движения «восток-запад» по любую сторону перекрестка, ТМ1Оыгз Сигнал принимает активное значение, если с момента начала работы таймера прошло более пяти минут; он остается на активном уровне до тех пор, пока таймер не будет сброшен. ТМЯНОВТ Сигнал принимает активное значение, если с момента начала рабо ты таймера прошло более пяти секунд; он остается на активном уровне до тех пор, пока таймер не будет сброшен.
У этого конечного автомата семь выходных сигналов: ЙЗВЕО, НЯгЕШЭЩ ИЯОВЕЕИ Сигналы, зажнганнцие красный, желтый н зеленый свет в направлении «север-юг» соответственно. Ет«ВЕО, БВЕШЗ«К ЕЬОВЕЕН Сигналы, зажигающие красный, желтый и зеленый свет в направлении «восток-запад» соответственно. Когда этот сигнал принимает активное значение„таймер сбрасыва- ется, а сигналы ТМЗНОВТ н ТМ~ОНО переходят на неактивный уро- вень. Таймер начинает отсчет времени, когда на неактивный уро- вень переходит сигнал ТМ ВЕЯЕТ. ТМВЕЗЕТ Рис. 9.5.
Датчики дорожного движения и сигналы светофоров на перекрес- тке в г.,Саннивейл, шт. Калифорния знак «уступи дорогу».) Светофорами управляет автомат с частотой тактового сигнала 1 Гп; у него имеются таймер и четыре входа: 9.7. Примеры проектирования нв языке АВЕь 937 Табл. 9.9. Программа для светофора в г. Саннивейл пов«1е еза1е»! »«»1е 'я»а»е иасьзпе гог зиппу»а!е, са„ тгам!с ь!Вь»я' ЯУАЬЕП. се»!Се 'РУЯУЯВ'! !прм аса ои»ри» р1пв СЬЗСК, (ОЕ мясан, е)кмн, тияионт, т«алис Оо, О1, О2, тннеяет 1 р«п(, ы; Р«п 2, Я, а, В! Р«п 17, 1Я, 1Ь, !4 !з»УРе 'тез'; Я»а»е гсг1акаев З»а»ея в»асе ияе117« Сота ИВМА!72; ' уе11ои 1!Яь» 1з оп Уог »ъо т«сзв 1от вате»у.
оса»е ияаА1т2: Оата мяаеььу! " Ыт!»етв яо 70 прь со са»сь »ь1в сгьеу Ртееп!) всм ИЯОЕЫ!У: СОта Емаа! - Б а «и ЬмЬ З«гесс«опя от аваев затесу. е»асе ВМОО: " Вая»-иев» ятеяв; вса»ез аегьпед апа!окопе »о М-Я 17 ((тквиант) тяян Еваа Есан 17! (тНЫИО) тНЕМ Еняятт ЕЫЕ 1Г (ИЯСАБ А !ЕМСАР) ТНЕИ Б!СО е' яе 1Р (иясАБ А емсаь) тнея е(гза17 ЕЬЯЕ 1Г (!ЕМСАН) ТИЕМ ЕМОО Е(,ЯЕ БИМА!7! в»асе ггма«т: Сото евм1172! в»а»е еми1т2: сОтО емэеььу! зсагв БИО!злу: сото ьзоо; ениа»!опв ЬятАТБ.О!к = сыск; тнняяет !..с1к с«аск; .'ТИВЕЯЕТ « : — (1ЛТАТЕ МЯМА1ТО) " ьезе» ЬЬе »гает зьоа яо1он «мо - с зтзте - еиммтю; " ма»е ияое!Ау о- »асс ььт)е(зу.
\ав я»а1е»1 Программой на языке АВЕ(., приведенной в табл. 9.9, реализуется типичный, одобренный местными властями алгоритм управления светофорами. Этот алгоритм обеспечивает два часто наблюдаемых режима работы нашего «проворного» светофора. Ночью, при малой интенсивности движения, он удерживает автомобиль в состоянии ожидания до пяти минут, если только не появляется автомобиль на поперечной улице; в этом случае светофор переключается так, чтобы остановить движение в поперечном направлении и пропустить ожидающий автомобиль. Оеггп!»1оаз штате = (аялыао); мяао (о, о, о)! ИЯЗАТ (С, О, 1)! ИЯМА1Т2 = ( О, 1, 1); ИЯОЕЬАУ ( О, 1, О); БМСО ( 1, 1, О..:, ЕММА1Т -' ( 1, 1, !); БМЪА1Т2 ( 1, О, 1); ЕКОЕЬАУ " ( 1, О, О]; маге з!антея ьятАте ма»е ЧЯОО: 17 ((тнянант) тнеи зяоа е.яе 17 (тжлка) тнеи мямыт ЕЫЕ 1Р (БМСАБ А !МЯСАЮ тнек ияас ЕЬЯЕ 1Р ИМСАБ А ИЯСАВ) тяни ияматт ЕЬЯЕ ТР (ШЯСАЮ тнеи зяга н яе иямь!т; " Иот»Ь-вои»Ь ягееп " Н!п1вип ятееп 1з Ь весопвз.
" Иаз«иоа ятееи 1я Я п1пи»ев. 11 Е-М са«. «в иа«»«пя апа по оае 1я со»«пн М-з, ваге Е И ият»! ' саге соз1пя «и ьо»ь Я1гесс«ом» ть уп ' иоьоау соыпя и-я апз по» »Аяез оо»» " Коор М-з ягаеп. " е!яе !е! е м Ваго !с. 938 Глава 9. Примеры проектирования последоаательностных схем Еьгзнсгк ОЧЕВЯЮЕ МЗСАР ЕЧ!САЯ сиэск Пг«1 ЗАЫ 6ЧЗС ЗАг! ЗЧЗР и !2 О! 1з юг и юз 15 Ю4 !6 Ю5 !7 Юв 1В ЮТ 19 06 Нв ськ и ю! 1г юг 1З ЮЗ И Ю4 15 Ю5 16 Ю6 и ки 1В ЮВ ОЕ МЗВЕО мече!Аочг МЗЕВЕЕМ О1 Ог РЕЗТАЯТ ЕИРЕО евтеысч! ЕИЕРЕЕМ зноят ЬО!ЧЕ О! ТИЯЕЗЕТ Ь ЗЧА!.ЕТ1.0 Рис. 9.6. Контроллер светофора в г. Самнивейл на двух ПЛУ (Датчик «раннего оповещения» установлен достаточно далеко, чтобы сигналы светофора успели измениться до того, как приближающийся автомобиль достигнет перекрестка.) Днем, при напряженном движении всегда имеются автомобили, ожидающие проезда в обоих направлениях; тогда светофор переключается каждые пять секунд, чтобы минимизировать пропускную способность перекрестка и максимизировать время ожндания для всех, подталкивая тем самым возмущенную общественность к мысли о необходимости повышения налогов для решения этой проблемы.
Заслуживают внимания равенства для сигнала ТМ ВЕЗЕТ. Этот выходной сит пал принимает активное значение во время состояний 1ЧВВЕ1 Ау и ЕУЧС!Е1АУ («двойной красный свет»), когда происходит сброс таймера и его подготовка к следующему циклу с зажженным зеленым светом. Желаемый выходной сигнал можно было бы сформировать на выводе, предназначенном для комбинационного выхода, обнаруживая данные два состояния; но вместо этого мы выбрали регистровый выход и предусмотрели обнаружение состояний, предиесл!Еуюмгих этим двум состояниям. В программе на языке АВЕ1. в табл.
9.9 определены только переменные состояния для контроллера светофора и один выход типа Мура. Из того, что остается в ИС 16У8, нельзя образовать шесть других выходов типа Мура, необходимых для зажигания нужного света. Поэтому для формирования этих выходных сигналов применено отдельное комбинационное ПЛУ. Конструкция в целом представлена на рис. 9.6.
Программа на языке АВЕЕ для выходного ПЛУ приведена в табл. 9.10. Мы воспользовались имевшейся возможностью и добавили контроллеру вход ОУЕВВ10Е. Подавая сигнал на этот вход, полицейский может заблокировать работу контроллера и заставить светофор мигать красным светом (с частотой тактового сигнвла Р1.АЗНС1 К), и тогда у него появляется возможность вручную растаскивать пробки, возникающие благодаря этому удивительному изобретению.
9.1. Примеры проектирования на языке АВЕЕ 939 Табл. 9.10. Выхозввая логика кпитРоллеРа свЕтофора в г. Саниивейл аоен1а втатвв)о 1111а 'ОнВРиа 1оЕ1с тос Зинатиата, СА, тга111с 11НЬсв' "ячйьетьо иоииса 'Р1бчзс' „ " Торин р1нв РЬАЗНС).Н, ОЧЕННТОЕ, ОО, 01, 02 р1и 1, 2, 4, Б, Оисрио рван нзнео, изтеььоч. Изснееи ЕЧНН), ЕЛЕП,ОИ, ЕЧОНЕП( рии 19, 18. 17 1воура 'соа'; рти 14, 13. 12 1воурв 'соа'," Оаттиасвонв (ваяв ав 1н ввавв насупив зчйьеть) аяиаойаив иянев = !Оченр10е й (ьятйте ! НЯОО) й С.ятАте != НБНА1т) й сьятАте ! ННИАХт2) В ОЧЕНН10Е й РААБНСЬК; ивтекс.ОЧ = !Оченн1РН й ((1.ятАте = изьА1т) в 0 ятАте НБНАТт2)); ИЯОНЕЕИ !ОЧЕЭНТОЕ й (ЬЯТАТЕ НЯСО); ЕИНЕО = !ОЧЕНН10Е й Ц БТАТЕ ! ЕИОО) й 0ЯТАТЕ ! ЕИИА1Т) й И.ЯТАТЕ ) ЕИИАТТ2) В ОЧЕНН10Е й РААЗНСЬН; еиуеььОН '- !Оченн10е й ((ьятАте = еииАтт) в (йятйте еичА112)); ЕасНЕЕВ = ~ОЧЕНН10Е й (ЬЯТАТЕ = гасо).
вии вта1ас1о Если перейти к записи состояний в форме выходного кода, то конечный автомат для управления светофором вместе с выходной логикой можно построить на одном ПЛУ (рис. 9.7). Как видно из табл. 9.11, для этого необходимо изменить только определения в исходной программе, приведенной в табл. 9.9.
У этого ПЛУ нет входа ОУЕйг)1()Е и соответствующего режима работы; эти вопросы вынесены в задачу 9.7. хтна иа Одй» ) Рис. 9.7. Конечный автомат для управления светофором на одном ПЛУ с записью состояний в форме выходного кода МЗСАН ЕИСАН сьоск (1(и ) МБНЕО МЗЧЕГЬОЧЧ МБЙНЕЕМ ЕЧЧНЕО ЕФЧЕГЬОЧЧ ЕЧЧЕНЕЕМ 940 Глава 9. Примеры проектирования послвдовательностных схем Табл. 9.11. Определения для автомата, управляющего светофором в г.
Сан- нивейл, с записью состояний в форме выходного кода аоии1е вса1еи1Ь саи1е 'Ои1рис-соева 91асе насРдпе Тот яиппуса1е тгатт1с 11яьив' "ЯТАСЕТЬВ аеогсв 'Р1БУБН'~ " 1ирис аиа осирис рзие Сьосх, !ОЕ ИЗСАН, ЕЪСАН, ТНЗНОРТ, Т1Н.ОНО ивнев, иятеььои, ЯБонееи ЕКНЕО, ЕИТЕЬЬОЪ, ЕИОРЕЕИ ТННЕБЕГ„1., ХТНА Рти 1, 11; рзи г, З, В, 9; р1и 19, 1Б, 17 1веуре 'гва'; рта 16, 15, 14 Авгуре 'геБ'; р1п 13, 1г 1асуре 'геБ'; Оет Ап11 хопв 1 ЗТАТЕ = ГИЗНЕО, ИЗУЕШЖ, ИЗОНЕЕИ, ЕИНЕО, ЕЪТЕШЖ, ЕНОНЕЕИ, ХТКА3; " зсасе саге ИЯОО 1 О, О, о, о, о1; "зсас ияиатт = 1 о, 1, О.
1, о, о, о!; ИЯНА1тг" 1 О, 1, О, 1, О, О, 11; ИБОЕ1.АТ 1 1, О, О, 1, О, О, 01; еисо 1 1, О, о, о, о, 1. о1; ЕИИАТТ = 1 1, О, О, О, 1, О, 91; еъиА1тг 1 1, О, О, О, 1. О, 11; ЕЫОЕЬАТ = 1 1, О, О, 1, О, О, 13; 9.2. Примеры проектирования на языке ЧН01. 9.2.1. Несколько простых автоматов В разделе 7.4.1 мы проиллюстрировали процедуру создания автомата по таблице состояний на примере следующей простой задачи: Построить тактируем ый синхронный конечный автомат с двумя входами А и В и одним выходом 2, сигнал на котором равен 1, если сигнал на входе А имел одно и то же значение на двух последних тактах или сигнал на входе В оставался равным 1 с тех пор, когда в последний раз бьшо выполнено первое условие. В противном случае выходной сигнал должен равняться О.