Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 186
Текст из файла (страница 186)
На рис 8 72 приведены вре-, менные диаграммы колебаний, подобных рассмотренным выше, но отличающихся тем, что выходные сигналы Ев 1„посредством которых отмечаются разные фазы, удерживаются на активном уровне только в пределах одного периода тактового сигнала в каждой из фаз. Это небольшое отличие может быть очень важным для проекта в целом. В исходном варианте мы воспользовались б-разрядным кольцевым счетчиком и одной дополнительной переменной состояния Т1, с помощью которой отображались два состояния в пределах каждой фазы. В случае новых колебаний так поступить нельзя.
В состояниях, которые имеют место между импульсами г низким активным уровнем (ЯТАТЕ = О, 2. 4 н т.д. на рис. 8.72), все выходные сигьалы пРинимают неактивное значение, так что по ним уже нельзя судить о том, в какое следующее состояние следует перейти. Необходимо что-то другое для отсле- живанияцепочкисостояний 854 Глава 8. Практическая разработка схем последовательной логики шсаа1е ТТМЕОИЗА гтт1е '31х-разве Наваяет Т1шгаБ Оевегатсг' Тарав вао Острит ргаз МСЕК, КЕЯЕТ, ВОМ, ВЕБТАВТ Т1. Р1 1, Р2 Б, РЗ„1, Р4 Б, РБ 1, Р6 1. Рха Р1а 1зтуре 'геЗ' " Ясасе Ое11а141сав ТБТАТЕ [Т1, Р1 1, Р2 Б, РЗ 1, Р4 Б, Рб 1, РЯ„И; ЯКЕЯЕТ [1, 1, 1, 1, 1, 1, 13; РАГ - [1. О, 1, 1, 1, 1, Л; Р13 = [О, О, 1, 1, 1, 1, 11~ Р2Г = [1, 1, О, 1, 1, 1, а; Р23 = [О, 1, О, 1, 1, 1, 13; РЗГ [1, 1, 1, О, 1, 1, 1]; РЯБ = [О, 1, 1, О, 1, 1, 13; Р4Г [1, 1, 1, 1, О, 1, 13; Р43 - [О, 1, 1, 1, О. 1.
1~; РЗГ = [1, 1, 1, 1, 1, О, 13; РЬЯ [О, 1, 1, 1, 1, О, 13; РБГ [1 1 1 1 1 1 03 3 РБЯ[0,1,1,1,1,1,03; ейиат1овз ТБТАТЕ.С1 К = МС[К; ИНЕИ ВЕЗЕТ ТНЕИ ТЯТАТЕ '= ЯКЕЯЕТ„ въаФе 41аБгаш ТБТАТЕ втате БВБЯБТ: 1Г КЕЯЕТ ТКЕМ ЯВЕБЕТ 31.ЯЕ Р1Р; ваксе Р1Г: 1Г ВЕЗЕТ ТНЕИ ЗВЕЯЕТ ЕБЯЕ 1Г ВЕЗТАКТ ТНЕИ Р1Р Е1.ЯЕ 1Р ВОИ ТНЕИ Р13 Е1ЯЕ Р1Г; квасе Р13: 1Г КЕЯЕТ ТНЕИ ЗКБЯЕТ Е[,БЕ 1Р ВБЗТАВТ ТНБИ Р1Г Е1.ЯЕ 1Г ВОИ ТНЕИ Р2Г Е1.3Е Р1Б; квасе Р2Г: 1Г ВЕЯЕТ ТНЕМ ЯКЕЯЕТ ЕБЯЕ 1Г ВЕБтАКТ ТНЕИ РТГ ЕЫБ 1Г ВОМ ТКЕМ Р23 ЕБЯБ Р2Г; азате Р23: 1Г ВЕЗЕТ ТНБМ ЯВЕЗЕТ Е13Е 1Р ВЕЯТАКТ ТНЕИ Р1Г Е|ЯЕ 1Г КОИ ТНЕМ РЗР Е1.БЕ Р23; агате РЗГ: 1Г КЕЯЕТ ТНЕМ ЗКЕЯЕТ ЕБЗБ 1Г ВЕЯТАКТ ТНБМ Р1Р ЕБЯЕ 1Г ВОИ ТНЕИ РЗЯ Б[.ЗЕ РЗР; зсаге РЗЯ: 1Р ВЕЗЕТ ТНЕМ БКЕЯЕТ Е13Е ХГ ВЕЯТАКТ ТНЕИ Р1Г ЕЕБЕ 1Р ВОИ ТНЕИ Р4Г Е1.3Е РЗЯ; азате Р4Г: 1Г ВеЯЕТ ТКЕМ ЗВЕБет Е1.3Б ТР ВеБтАВт ТНЕИ Р1Г Е13Е 1Г ВОИ ТНЕИ Р43 Е1.ЯЕ Р4Г; Табл.
8.27. Альтернативный вариант программы для генератора шестифаз- ных колебаний 8.5. Регистры сдвига 855 Табл. 8.27. Альтернативный вариант программы для генератора шестифаз- ных колебаний 1пРОдалжЕниЕ) квасе Р48: 1Р ВЕЗЕТ ТНЕИ БКЕБЕТ ЕЬБЕ 1Р ВЕЯТАКТ ТНЕИ Р1Р ЕЬЯЕ 1Р КПИ ТНЕИ РБР ЕЕЯЕ Р48; веаее РЬР: 1Р ВЕЗЕТ ТНЕИ ЯКЕБЕТ БАЗЕ 1Р ВЕЯТАКТ ТНЕИ Р1Р ЕЬБЕ 1Р КОИ ТНЕИ РЯБ БЕБЕ РЬР; левее РБЯ: 1Р ВЕЗЕТ ТНЕИ ЯКЕБЕТ Е1.ЯЕ 1Р КЕБТАКТ ТНЕИ Р1Р ЕЕЯЕ 1Р КПИ ТНЕИ Р6Р ЕЬБЕ РБЯ; азате РЯР: 1Р ВЕЗЕТ ТНЕИ ЯКЕБЕТ ЕьБЕ 1Р КЕБТАКТ ТНЕИ Р1Р Е1.ЯЕ 1Р В))И ТНЕИ РББ Е).БЕ РБР; веете РББ: 1Р КЕЯЕТ ТНЕИ ЯКЕЯЕТ ЕЬБЕ 1Р КЕБТАКТ ТНЕИ Р1Р ЕьЯЕ 1Р АПИ ТНЕИ Р1Г ЕьБЕ Р66; епд 11ИЕБИЯА НАДЕЖНЫЙ СБРОС Заметьте, что в табл. 8.27 значение присваивается набору ТЯТАТЕ в разделе ес)паСАопа, а результат используется в разделе зсаге с)Аадгаьъ Мы сейчас объясним, что зто сделано с вполне определенной целью: обеспечить в программе переход в состояние ЯКЕЯЕТ из любого не определенного состояния, Программа АВЕ).
пополняет множество включений, относящееся к данному выходу, всякий раз, когда сигнал на этом выходе встречается в левой части равенства (см. раздел 4.6.3„где этот вопрос был рассмотрен применительно к комбинационным выходам). В случае регистровых выходов множество включений для каждого состояния в векторе состояний увеличивается наединицу прикаждомупоминании "эсасе" вразделе лсаге аАацгага. Всякая комбинация входных сигналов, которая вызывает появление! на выходе для каждой переменной состояния, добавляется в множество включений очередным предложением, начинающимся с ключевого слова ес асе. У конечного автомата, задаваемого программой в табл. 8,27, всего 2 = 128 состояний, из которых явно определены только 13, и только для них указаны переходы в состояние БЕЕ БЕТ. Но равенства, содержащие операторы ИНЕЕ, гарантируют переход автомата в состояние япеяет, когда бы ни возник сигнал КЕяет.
Это справедливо независимо от определений эсасе в разделе егаге с)Талгат. Когда сигнал ВЕЯЕТ переходит на активный уровень, содержащее одни единицы кодовое имя состояния БКЕБЕТ, в действительности, объединяется по правилу ИЛИ со следующим состоянием, если только оно задаемся в разделе есасе г)1адгам. При таком подходе нельзя обеспечить надежный сброс, если кодовое имя состояния янеяет содержит, например, только нули.
856 Главе 8. Практическая разработка схем последовательной логики мосх я! як !. яз с Р5 !. яе с Рио. 8.72. Временные диаграммы для видоизмененных многофазных колебаний Эту проблему можно решить многими способами. Одна из идей состоит в том, чтобы выбрать в качестве отправной точки исходный проект (табл. 8.26), испол ьзуя фазовые сигналы Р1 ~, Р2 Е и тд.
только в качестве указателей на внутренние состояния. Тогда можно считать, что каждый фазовый сигнал й! ~ является комбинационным выходом автомата Мура, принимающим активное значение, когда соответствующий сигнал Р! ~ имеет активный уровень и схема находится на втором такте в пределах данной фазы. Для реализации этого первого подхода программу на языке АВЕ). нужно дополнить строками, приведенными в табл. 8.28. Табл. 8.28.
Добавления в программу, содержащуюся в табл. 8,26, для модифицированного генератора щестифазных колебаний шсвв1е Т1ис012К К1 Е, К2 Е, КЗ Ь, К4„1., КБ 1. Кб Е рзп твсуре 'сои'; 00ТРНТЯ "- ~К1 1., К2 Е, К3„1., 84 Е, Кб 1., Кб 1.); еоиасзопа !ОСТР0ТЯ !РНАБЕЯ в !Т1; епл ТТИЕ012К Этот первый подход легко реализовать и он дает прекрасные результаты„если мы собираемся использовать сигналы Нй Е только в качестве сигналов разрешения или других управляющих входных сигналов. Но это плохая идея в том случае, когда данным сигналам предстоит играть роль тактовых сигналов, поскольку, как мы сейчас объясним, у них могут быть паразитные импульсы. Сигналы Р! Е и Т1 являются выходными сигналами триггеров, переключающнхся одним и тем же основным тактовым сигналом МС1.К. Хотя сигналы изменяются на выходах триггеров примерно в одно и то же время, это никогда не происходит точно 8.8. Регистры сдвига 857 одновременно.
Один из них может изменяться быстрее, а другой — медленнее; это обстоятельство называется расхоожденнем выходных сигналов по времени (ои(риг 1(агн8 зАего). Предположим, например, что при переходе из состояния 1 в состояние 2 на рис. 8.71 низкий уровень появляется в сигнале Р2 Е раньше, чем уровень сигнала Т! становится высоким. В этом случае в выходном сигнале В2 Е может возникнуть короткий паразитный импульс. Чтобы обеспечить отсутствие паразитных импульсов, мы должны разработать схему, у которой каждый фазовый сигнал был бы регистровым выходным сигналом.
Один из способов достичь этого заключается в применении 12-разрядного кольцевого счетчика; для получения сигналов желаемого вида используются выходы только каждого второго триггера. Программа на языке АВЕ1., реализующая этот подход, приведена в табл. 8.29. Табл. 8.29. ПРогРамма на языке АВЕН для модифицированного генератора шестифазных колебаний аова1е Т1РЕО12 оьа1е 'Нов 1геб вхх-рьаве Иааоег Тьаапя бепвгааог' " 1прпо апп Опгрео ргпв ЗСЬК, РЕВЕТ, 1ШИ, ВЕЗТАВТ Рг„ъ, РЯ„Ь, РЗ Ь. Р4 Ь, РЬ Ь, Рб 1.
Р1', Р2А, РЗА. Р4А, РВА, РбА реп; ргп гвауре 'гея'; р кур ' Е'' " Яеаее бегапгогопь РнАзеЯ 1Р1А. Р1 ь, Р2А, Р2 ь, РЯА, Рз ь, Р4А, Р4 ь, иехтрн = (РВ ь, Р1А, Р1 ь, Р2А, Р2 ь, РзА, Рз ь, Р4А, Ввезет - 11, 1, г, 1, 1. 1, г, 1, г, 1, 1, 11; РБА, Рб 1., Р6А, Рб ь1; Рв Ь, РЗА, РЯ Ь, РВА!; ечеаоаопв РНАЗЕВ.С1.К НС1.Х; ИНЕИ ВЕЗЕТ ТНЕК РНАЗЕЯ : ВВЕЗЕТ; Е1.ЯЕ ННЕН ВЕЯТАВТ В (РНАЗЕЯ = ВВЕЗЕТ) ТНЕИ РНАЗЕЯ еьзе инеи Вви тнеи рнкяез ;- иехтрн1 ЕЬЗЕ РРАЗЕЗ := РНАЯЯЗ; епб Т1НЕВ12 Еше один очевидный возможный путь — с учетом того, что в пределах цикла совокупность колебаний проходит через 12 состояний, — это построение двоичного счетчика по модулю 12 и дешифратора состояний такого счетчика, В табл.
8.30 представлена программа на языке АВЕ(., в которой испазьзован данный подход. Состояниям счетчика соответствуют значения переменной "ЗТАТЕ" на рис. 8.72. Поскольку фазовые выходные сигналы объявлены как регистровые, в них нет паразитных импульсов. Заметьте, что для компенсации задержки при декодировании на один такт предусмотрено декодирование на один период тактового сигнала раньше. Кроме того, при сбРосе счетчик переводится в состояние 15, а 858 Глава 8. Практическая рааработка схем последовательной логики не в состояние О, чтобы при осуществлении сброса не возникло активное значе- ние сигнала Р1 1..
Табл. 8.30. Программа для генератора шестифазных колебаний на основе счетчика воав1е ТХИЕО12А гаеТе 'Соввсег-Ьаеед в1х-РЬаве шаетег .1в1пН Кепегаеог' Тпрвт апа Овервг рыгв ИСЬК„ НЕЯЕТ, НОИ, ВЕЯТАНТ Р1 Ь, Р2 Ь, РЗ„Ь, Р4 Ь, Рб Ь, Рб 1. СИТЗ..СИТО ртп; р1п Авгуре 'геК'; рзп 1втуре 'геЕ'; Овтзп1Е1опв СИТ = (СМТЗ..СИТО); Р Ь = [Р1 Ь, Р2 Ь. РЗ Ь, Р4 Ь„ РЯ„Ь, Рб Ь); ейват1овв СИТ.СЬК "- ИС1.К; Р Ь.С1.К = ИС1.К; ИНЕИ НЕЯЕТ ТНЕИ СИТ := 15 ЕЬЯЕ ИНЕИ НЕЯТАНТ ТНЕМ СМТ := 0 Е1.ЯЕ МНЕМ (РЛИ А (СМТ < 11)) ТНЕМ СМТ := СМТ + 1 ЕЬЯЕ ИНЕИ НУИ ТНЕМ СИТ := О ЕЬЯЕ СИТ := СМТ' !(СИТ !(СМТ !(СИТ !(СИТ !(СИТ := ~(СИТ == О) Р1 1. Р2„' РЗ 1.
Рч 1. РБ„Ь Рб 1. == 2); == 6;; -"= 6) ' 10) „' епс Т1НЕО12А 8.5.1 О. Описание регистров сдвига на языке ЮНОЕ На языке УНРЬ регистры сдвига можно задавать структурно и в поведенческом стиле; мы рассмотрим несколько поведенческих описаний и их применение. Табл. 8.3 1 представляет собой описание работы 8-разрядного регистра сдвига с рас ширенным набором функций. Помимо хранения, загрузки и сдвига, выполняемых ИС 74х194 и 74х299, в данном регистре осуществляются операции циклического и арифметического сдвига. При ни«ли«ее«ам сдвиге (с!гси!аг зй())) бит, «теряющийся» в результате сдвига с одного конца регистра, поступает на другой его конец. при арифметическогк сдвиге (аг(йтеггсз)л))) значение бита, «заталкиваемого» в регистр, устанавливается из соображений умножения или деления на 2: при сдвиге влево на правый вход подается О, а при сдвиге вправо повторяется крайний левый (знаковый) бит.
8.8. Регистры сдвига 889 табл. 8.31. Описание работы Я-разрядного регистра сдвига с расширенны- ми функциями Следующее сосговиие Вкодаг Фуиацив ва ш во ог. аа ое аю аэ аг. ог- кю ат аб 05 04 ОГ Об 05 Оа Ийя 02 аб ао Об 05 04 ОЗ ао ат аб 05 аб 05 04 аз ат 02 аб 05 05 05 04 ОЗ аз аг оз ог 04 аз 02 О! см аз 02 а! 04 аз 02 СП О О! ао с, оо 02 О' ао ын 02 О! ао О? 02 О! ао о Храиеиие Загрузка О ! О Сдвигвправо Сдвигвлево О О циклическии сдвигвпраао ! циклический сдвигелево ! Арифмегический сдвиг вправо ! Арифмегический сдвиг влево ~! ! о ! ° Введен внутренний сигнал 185 который в конце концов становится выходньпл сигналом О, но таким, что его могут читать и писать операторы процесса. Можно было бы поступить и иначе, определив тип выходного сигнала О как "Ь011ег'1 Вход СЬЕ является асинхронным; поскольку этот сигнал входит в список чувствительности процесса, он проверяется всякий раз, когда претерпевает изменение.
Операторам 1 Г придана такая структура, что учет значения СЬН предшествует анализу любого другого условия. Для определения операций, реализуемых регистром сдвига при восьми возможных значениях входных сигналов выбора я ! 2 аавгпс а 0 ), применен оператор САЯЕ. В операторе сАЕЕ необходимо предусмотреть случай "гчгэеп осбека", чтобы предотвратить предупреждение компилятора о том, что примерно 2 слу- 32 чаев остаются не принятыми во внимание. Оператор ипц11и указывает, что в некоторых случаях никаких действий производить не надо. Заметьте, что ничего не нужно делать в случае !); бездействие зарезервировано в качестве сигнала удержания сохраняемых регистром данных до тех пор, пока не будет велено поступить иначе.