Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 162
Текст из файла (страница 162)
При компиляции схемы в ПЛУ сигнал, задаваемый выражением в правой части, лопается на вход 0 выходного триггера. Действуют те же самые правила, что и в случае комбинационного выхода в отношении управления 7 11. Проектирование пооледоввтельиоотных схем ив языке АВЕЬ 733 ,юлярн остью, генерирования множества вюпоче ний, безразличных значел ий и т д. В , абл 722 биты состоЯниЯ 01-03 ЯвлЯютсЯ сигналами на РегистРовых выходах, поэтому для них используется тактируе мое присваивание ": — ', а в отношении сигналов 1)Ыгк и В1Ыт на выходах автомата Мили, которые являются комбинационными функциями текущего состояния и входного сигнала, применяется нетакгируемое присваивание "=".
Если автомат имеет конвейерный выход !см. Рис, 7.37), то его выходнымм сигналам значения прис ванваются таьтируе мы м оператором. В отношении регистровых выходов может быть использован синтаксис таблицы истинности в языке АВЕЬ !см. табл. 4.16). Единственное отличие состоит в том, что оператор '* — >" между входом и выходом заменяется тактируемым оператором таблиггы истинности (с!ос)гег! ггиг!г-габ!е) ": >".
Последа вател ьностные схемы с обратной связью можно проектировать на языке АВЕЬ и не используя специально предназначенные для этого средства. В разделе 8,2,6 мы покажем, например, как описываются защелки на языке АВЕЬ. 7.11.2. Диаграммы состояний Приведенный в предыдущем разделе пример конечного автомата представляет собой описание на языке АВЕЬ кодового замка, синтезированного нами вручную в разделе 7.4.6. Однако в большинстве языков программирования ПЛУ имеется символика, позволяющая описывать и синтезировать конечные автоматы непосредственно, не прибегая к записи таблиц состояний, переходов или возбуждения и без вывода от ру ки уравнений возбуждения. Эта символика носит название языка описания конечных автоматов (к!иге-тас!згпе г!езсг!рг!оп !алиное).
В языке АВЕЬ роль такой символики играет «диаграмма состояний», исходя из которой АВЕЬ-компилятор выполняет всю работу по генерированию уравнений возбуждения, реализующих заданный автомат. ВязыкеАВЕЬключевымсловом зсасе с)задгамотмечаетсяначалоописания конечного автомата. Табл. 7.23 демонстрирует текстовую структуру «диаграммы состояний» на языке АВЕЬ. Здесь вектор состояния !я!ага-тесто«) представляет собой АВЕЬ-набор, в котором перечислены переменные состояния ланного автомата.
Если в этом наборе и переменных, то автомат имеет 2" возможных состояний, соответствующих 2" различным способам присваивания постоянных значений этим и переменным. В АВЕЬ-программе состояниям обычно лаются символические имена; это позволяет легко перепробовать различные способы присваивания простым изменением определений констант.
ТАК ЛИ ВАЖЕН хворе? В старых схемах типа схем семейства РАЬ16Кх имеется фиксированная, заРанее заданная смесь комбинационных и регистровых выходов и ее нельзя изменить. В таких схемах компилятор узнает о типе каждого выхода по номеру вывода, и в этом случае оператор Тзсуре не обязателен. Даже при наличии конфигурируемых выходов некоторые компиляторы в состоянии сделать правильное закпючение о типе выхода из равенств.
Но лучше все же сообщать эту информацию в предложении з в гуре для страховки и придания проекту большей мобильности. 734 Глава 7. Принципы проектирования последоввтельностных схем Табл. 7.2З. Структура «диаграммы состояний» в языке АВЕ1 . атаев азайтал генг-иггигг втатв гггггг-га!гге 7: ггагггггггт «иггтепг; вкатя «ам * и!«и 2 . ггигьгГгигг пиггпмт; агате пасе тхдиг '": гга»гггяп ггигепггпг; Для каждой переменной состояния на основании информации, содержащейся в «диаграмме состояний», создается множество включений. Если переменная состояния появляется также в левой части равенства в разделе е г1цаСТ с па, то имеет место эффект накопления (см.
текст в рамке в разделе 8.5.9, где объясняется, как этим можно воспользоваться). Ключевое слово агате указывает, что для данного текущего состояния сейчас будут определены следующие состояния и текущие значения выходных сигналов; величина згаге та7ие представляет собой константу, которой определяются значения переменных состояния в текущем состоянии. Оператор !гааз!!!оп гаагегпещ задает возможные следующие состояния для данного текущего состояния.
В языке АВЕЬ чаще всего употребляются два оператора перехода: операгпор бОТО (ООТО згагепгеп!), задающий следующее состояние безусловно, например, "БОТО 1Ы1Т", и оператор 1р (1Е згагетеп!), посредством которого возможные следующие состояния представляются в виде зависимости от произвольных логических выражений. (Существует еще редко используемый оператор САБЕ, который мы не будем рассматривать.) Синтаксис оператора 1Е указан в табл.
7.24. Здесь Тгяебгаге и га7ке5гаге— имена состояний, в которые переходит автомат, когда выражение 1о8!сЕхргезз!оп истинно или ложно соответственно. Эти операторы могут быть вложенными: на месте па!зе5гаге может находиться другой оператор 1Е; оператор 1 Е может находиться также на месте Тгие5гаге, если он заключен в фигурные скобки.
Использование структуры 1Г-ТНЕН-ЕЕБЕ при нескольких возможных следующих состояниях исключает неоднозначности, которые случаются при вычерчивании диаграммы состояний от руки, когда условия переходов из данного состояния оказываются перекрывающимися (см. параграф 7.5). Табл. 7.24. Структуре операторе 1г н языке АВЕ1 1Р ! оуюблрге»ггггп ТНЕН Тгие5гаге; Е~.ЯЕ рабг5мге; Мы продемонстрируем возможности «лиаграмм состояний» языка АВЕЬ на примере конечного автомата, который был сконструирован нами в разделе 7.4З. Таблица состояний для этого автомата была приведена на рис.
7.49. То же самое на языке АВЕЬ представлено в виде табл. 7.25. Следует отметить ряд отличительных особенностей этой программы: ТаОл. 7.25. Пример представления диаграммы состояний на языке АВЕК аобв1з БИЕХ1 стт1в 'РВО увгвхоз ог ехвар1в Бсагв насихзв' 1врзс аао овгрвс рхзв СЬОСК НЕЯЕТ С, А, В 01..0з х рхл ,' Рва хввурв 'гвя'; рхз хвзурз 'соя'; " Ов1х хохова О ТА.Е = (01А2ДЗ); тятТ = ( О, О О АО ( О, О, 11; А1 =(0,1, С); Ока =(0,1, 1); ОК1 = ( 1, О, О); ХТКА1 = " 1, О, 1); ХТВА2 . 1, 1, О); ХТНАЗ .
1, 1, 1); КЕБЕТ = (КЕБЕТ Бга в чагхаЫзв агата огаЕгва ЦБТАТЕ зваге 1И1Т. 1Г РЕЯЕТ ТНЕИ 1И1Т Н.ЯЕ 1Р (А= О) ТНЕИ АО ЕЕЯЕ А1; зтатв АО: 1Г НЕБЕТ ТНЕИ ТИ1Т ЕЬБЕ 1Г (А -"О) ТНЕИ ОКО Е(.ЯЕ А1, втатв А1. 1Г ЕЕЯЕТ ТНЕИ 1И1Т БЕБЕ 1Р (А О) ТНЕИ АО ЕЬЯЕ ОК1; ТГ НЕБЕТ ТНЕИ 1И11 НЕБЕ 1Г (Во=1)А(А==О) ТНЕИ ееяе 1Р (В="1)а(А =1) тнеи ЕСЯЕ 1Р (А=-"О) ТНЕИ ОКО Н.ЯЕ 1Р (А==1) ТНЕИ А1; ОКО ОК1 зтасв ОК1. 1Р БЕНЕТ ТНЕК 1ИХТ ЕсЯЕ 1Р (В =1)А(А"=О) ТНЕИ Е1.БЕ 1Г (В==1)А(А =1) ТНЕК И.БЕ 1Г (А= О) ТНЕИ АО Е1.БЕ 1Р (А= 1) ТНЕИ ОК1; ОКО ОК1 всагв ХТНА1 СОТО 1И1Т; зсавв ХТНА2: 0070 1И1Т„ отава ХТВАЗ. СОТО 1И1Т; вс(завхоза ОБТАТЕ.С(.К СЬОСК; ОЯТАТЕ.ОЕ (ЦЯТАТЕ ОКО) Ф (ОЯТАТЕ ОК1); 7.11.
Проектирование лоследовательностных схем на языке АВВЕ 736 736 Глава 7. Принципы проектирования последовательностных схем ИСПОЛЬЗУЙТЕ ИМЕЮЩИЕСЯ ВОЗМОЖНОСТИ ИЛИ ПИШИТЕ ЕЕЗЕ Структура 1Е-ТНЕН-НЕБЕ языка АВЕ) исключает неоднозначность переходов, которая может иметь место в диаграмме состояний. Однако предложение БЕБЕ в операторе 1Е является необязательным.
Если оно опущено, то следующее состояние для какнх-то комбинаций входных сигналов может оказаться не заданным. Как правило, это происходит помимо воли проектировщика. Тем не менее, если вы можете гарантировать, что не упоминаемые комбинации входных сигналов никогда не наступят, то можно сократить запись, касающуюся ло~ики переходов.
При наличии директивы 6 ВСБЕТ АВИ.-компилятор трактует отсутствие указания на переход для не заданной комбинации состояние!вход как сообщение о переходе в «безразличное» состояние. Кроме того, он воспринимает все переходы из неиспользуемых состояний как переходы в «безразличное» состояние. ° Согласно определению, состояние АЕТАТЕ кодируется вектором состояния, состоящим из трех переменных, ° Определениями 1Н1 Т-ХТНАЗ задаются кодовые имена отдельных состояний.
° Использованы вложенные операторы 1е-тнеу-ееБе. В предложении с вложенными операторами 1 Е-Т НЕЕ-ЕЕБЕ одно и то же следующее состояниЕ может фигурировать во многих местах (например, состояния ОКО и 0К1). ° Выражения вида "(В==1 ~ «(А==О)" использованы вместо эквивалентных им выражений вида "В*! А" только потому, что первая из этих форм является чуть более наглядной.
Первым оператором 1Е в каждом из состояний 1Н1Т вЂ” 0К1 обеспечивается переход автомата в состояние 1Н1 Т при поступлении сигнала НЕ НЕТ. ° Записи, относящиеся к состояниям ХТНА1 — ХТНАЗ, гарантируют переход автомата в «безопасное» состояние, если он вдруг так или иначе попадет в неиспользуемое состояние. ° Единственным равенством в разделе программы 'ег)на с 1опв" определяется тип автомата по тому, от чего зависит выходной сигнал; в данном случае это автомат типа Мура. В табл.