Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 150
Текст из файла (страница 150)
Теперь мы, наконец, готовы реализовать наш проелт конечного автомата. Если мы собираемся построить конечный автомат на дискретных триггерах и вентилях, то заключительный этап состоит в рисовании принципиальной схемы. С другой стороны, если мы используем программируемое логическое устройство, то нам необходимо только ввести уравнения возбуждения и выхода в компьютерный файл, которым задается, как именно будет запрограммировано устройство; пример таких действий рассматривается в разделе 7,11.1. Но если бы мы подумали заранее, то с самого начала сформулировали бы наши пожелания на языке описания конечных автоматов типа языка АВЕЕ !см. раздел 7.!! .2) и компьютер выполнил бы за нас всю работу, которую мы проделали в этом разделе! РЕШЕНИЕ МИНИМАЛЬНОЙ СТОИМОСТИ Если выбрать в нашем примере сзратегию минимальной стоимости при выводе уравнений возбуждения, то в качестве элементов, выражающих состояния, следующие за неиспользуемыми состояниями, надо было бы указывать «безразличные состояния».
Результатом такого выбора стали бы цветные символы с! на рис. 7 53. Получаемые из этих карт уравнения возбуждения немного проще, чем то, что было у нас ранее: 01 =1 02 =01 03' А'+03 А+02 В 03 = А. Значение выходного сигнала 2 при неиспользуемых состояниях в этом случае также «безразлично», что приводит к еще более простой функции выхода: 2 = 02. Принципиальная схема автомата, построенного в соответствии со стратегией минимальной стоимости, приведена на рис. 7.54. 7.оЗ.
Проектирование тактируемьы синхронных конечных автоматов 673 юою ю о 1 1о рис. 7.63. Карты возбуждения для сигналов 01, 02 и 03 в предположении, что состояния, следующие за неиспользуемыми состояниями, «безразличны» ю оо ююо оо оо а.о а аюо т аооЬ ю о а о юю оо о1 1 о о оо ао ю о о о о ,о, а со о 01 о ао о ооо о оо о 'оо о о ю о о ао-о а а~о а навет г рис. 7.54. Принципиальная схема автомата, описываемого картами, приве- денными на рис. 7.53 *7.4.5. Синтез с использованием дК-триггеров Одно время ~К-триггеры были популярным средством реализации конечных автоматов на основе дискретных ИС матей степени интеграции, поскольку ~К-триггеры позволяли обеспечить ббльшие функциональные возможности, нежели 0- триггеры, в пересчете на один корпус одинаковых размеров.
Под «ббльшими функциональными возможностямил мы понимаем большее разнообразие комбинаций сигналов, подаваемых на входы д и К для управления дК-триггером по сравнению с тем, что можно делать с единственным входом 0-триггера. Как следствие зтого, логика возбуждения в конечном автомате на дК-триггерах может быть проще, чем при использовании 0-триггеров, что приводит к уменьшению числа корпусов, когда логика возбуждения реализуется с помощью вентилей в ИС малой степени интеграции. 674 Глава 7. Принципы проектирования последовательностных схем ТОЛЬКО ЧТОБЫ ПОУПРАЖНЯТЬСЯ Во времена ИС малой степени интеграции минимизация логики возбуждения была важным делом, но с переходом на ПЛУ и специализированные ИС акцент сместился.
Как вы можете догадаться, зная структуру И вЂ” ИЛИ комбинационных ПЛУ, необходимость наличия отдельных решеток И вЂ” ИЛИ для д- и К-входов ВК-триггеров была бы очевидным недостатком последовательностных ПЛУ. С точки зрения технологий, применяемых в специализированных ИС, 0К- триггеры также нежелательны. Например, в случае БИС ЕСА500К фирмы Еоя1с Созр., представляющих собой решетку КМОП-вентилей, макроячейка 0-триггера Е01ОР строится из 7 «вентильных элементов», а макроячейка 0К-триггера Р) К1ОР состоит из 9 вентил ьных элементов, то есть занимает на 25 4 ббльшую площадь кристалла.
Поэтому проект оказывается более рентабельным, если отдать предпочтение 0-триггерам н использовать дополнительную площадь кристалла для реализации более сложной логики возбуждения в тех случаях, конечно, когда это действительно нужно. Мы все же рассмотрим в этом разделе синтез на основе )К-триггеров, но только для того, «чтобы поупражнятьсяж До этапа кодирования состояний включительно процедура разработки с использованиемм 0К-триггеров, в основном, такая же, как и в случае с 0-триггерами. Единственное различие состоит в том, что разработчик может остановиться на слегка отличающемся способе назначения состояниям двоичных комбинаций, имея в виду возможности, легко реализуемые на ЗК-триггерах (например, переключение в противоположное состояние при наличии единиц иа входах 0 и К).
Значительное отличие возникает при составлении таблицы возбуждения по таблице переходов. В случае 0-триггеров этн две таблицы тождественны; характеристическое уравнение 0-триггера 10* =- О) позволяет в каждом элементе таблицы произвести замену 0 = 0*. В случае дК-триггеров на каждом месте в таблице возбуждения вдвое больше двоичных разрядов, нежели в таблице переходов, так как у каждого триггера имеется два входа, на которые нужно подавать сигналы.
Характеристическое уравнение ВК-триггера О* = 0 О'+ К' 0 нельзя преобразовать таким образом, чтобы получились два независимых уравнения для входов 0 и К. Вместо этого требуемые значения сигналов 0 и К находят как функции состоян ий О и 0* по таблице использовании аК-гприггера 1,)-К аррйеабап габ)в), приведенной в табл. 7.10. Согласно первой строке, при нулевом текущем состоянии триггера все, что нужно для того, чтобы следующее значение О также равнялось нулю, — это подать 0 на вход ); значение сигнала К не играет никакой роли, Аналогично, согласно третьей строке, при единичном текущем состоянии триггера следующее значение О будет нулевым, если сигнал К равен 1 независимо от значения сигнала ).
Каждый желаемый переход можно осуществить, подавая на входы 0 и К одну из двух различных комбинаций сигналов, поэтому в каждой из строк таблицы использования мы имеем «безразличные» значения. 7.4. Проектирование тактируемых синхронных конечных автоматов 678 Табл. 7.10. Таблица использования дК-тригге!зов 12 17» 0 К 0 0 0 д 0 1 1 д 1 0 д ! ! 1 д 0 Чтобы составить таблицу возбуждения в случае применения,1К-триггеров, разработчик должен посмотреть в таблицу переходов на значения каждого бита текущего состояния и желаемого следующего состояния и подставить соответствующую пару значений д и К из таблицы использования.
Для таблицы переходов, приведенной в табл. 7.8, эти подстановки дадут таблицу возбуждения, представленную в табл. 7.11. Пусть, например, автомат находится в состоянии! 00 и на входах действует комбинация сигналов 00; значение С!! равняется ! и требуемое значение О1* также равняется 1, поэтому для пары сигналов Л К! мы помещаем в таблицу возбуждения "дО". При той же когабинации «состояние/вход» О2 равно О, требуемое значение 02* равно 1, так что пара сигналов д2 К2 должна иметь значение "1д". Очевидно, что требуются определенное терпение и аккуратность при заполнении таблицы возбуждения (лучше всего оставить эту работу компьютеру).
Табл.7.11. Таблица возбуждения и значений выходного сигнала для конечного автомата с табл. 7.8 в качестве таблицы переходов при использовании ЗК-триггеров с!7 Й2 !73 00 О1 Уу Уо г 000 1д,(х!. Од Ы, Од. Од Ы, Од, 1д !д. Од, 1д О !00 д0.1д,!!д д0, !д,Од ~10,!х1,!д д0,0д.
Ы 0 !О! дО,Ос!.д1 д1).Од.д1 д0.1д,дО дО.!д,дО 0 1К! да.дО.Од 00.00,!Ы Щ О, Ы дб,д!. Ы <!О, д1. д1 д01, д0. д1 дО. д0. д0 дО. д0. д0 1 Л К1, 02К2, ЗЗКЗ Как и в случае синтеза на основе 0-триггеров в предыдущем разделе, таблица возбуждения является почти таблицей истинности для функций возбуждения. Эту информацию мы переносим на карты Карно, как показано на рис. 7.55. В таблице возбуждения не оговорены состояния, следующие за неиспользуемыми состояниями, так что снова мы должны выбирать между подходами с позиций минимального риска и минимальной стоимости.
Содержимое клеток в картах Карно, указанное на рис, 7.55 цветным шрифтом, — это результат выбора стратегии минимального риска. 676 Глава 7. ПРинципы проектирования последоввтельностных схем «в Озаз' оа а и ю а «в сиса оо а и о «в « ОС«В Ю О С О Ю ав а со си оа о ю аз о а о а о о о о ОЗ за а а о сов а о а ~- (' а а а а а (иао о о '(за о о а о ю а м.а в а-з в Ос «з «в СВОЗ«, Ов а в о а са ос и о ав Озаз со аз и са ав « асса са ас сз ю маза соз зов оса о и о с а о со о си о а о о аз а о а а -[ и а сов а а о ~ ОЗ ОС ОЗ « ас Оою о о о а азю в Озз в ОЗ«а Оои О «з ов' Оа ОЗ' «в Озаз со ос и за *а свм'з ю а и со в А ° о ос сз ю оао о ю а о .[ о а о юа о а о « оса о оса о и а а о а за о а ~ ОЗ ОС О В ОС С Й Оз о Рис.
7.55. Карти возбуждения для сигналов Л, К1, 02, К2, 33 и КЗ в предпо- ложении, что из неиспользуемых состояний автомат переходит в состояние 000 Заметьте, что даже несмотря на наличие «безопасного» состояния 000, следующего за неиспользуемыми состояниями, мы все же не вписали нули в соответствующие клетки карт, как мы могли сделать это в случае 0-гримеров.
Вместо этого мы должны продолжить работу с таблицей использования, чтобы найти надлежащие комбинации сигналов 0 и К, необходимые для того, чтобы имело место равенство О* = 0 во всех ситуациях, относящихся к неиспользуемым состояниям; надо сказать еше раз, что это утомительный и сопровождающийся ошибками процесс. На основании карт, представленных на рис.
7.55, можно вывести уравнения возбуждения с правыми частями вида «сумма произведений»: Л =О2' ОЗ' 12юО! ОЗ' А'+ 01 ОЗ А 33 =О2' А+О1 А К1 = 0 К2=О1'+ОЗ' А.В'+ОЗ А' В' КЗ= О1'+ А'. Для реализации этих уравнений требуется на два вентиля больше, чем при ис- пользовании 0-триггеров согласно стратегии минимального риска, так что мы ничего не сэкономили на применении ЗК-триггеров и менее всего в отношении времени, которое затрачено на проектирование.