![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation ИСПОЛЬЗУЙТЕ ИМЕЮЩИЕСЯ ВОЗМОЖНОСТИ ИЛИ ПИШИТЕ ELSE Структура IF-THEN-ELSE языка ABEL исключает неоднозначность переходов, которая может иметь место в диафамме состояний. Однако предложение ELSE в операторе IF является необязательным. Если оно опущено, то следующее состояние для каких-то комбинаций входных сигналов может оказаться не заданным. Как правило, это происходит помимо воли проектировщика. Тем не менее, если вы можете гарантировать, что не упоминаемые комбинации входных сигналов никогда не наступят, то можно сократить запись, касающуюся логики переходов. При наличии директивы @ DCSET ABEL-kom-пилятор фактует отсутствие указания на переход для не заданной комбинации состояние/вход как сообщение о переходе в безразличное состояние. Кроме того, он воспринимает все переходы из неиспользуемых состояний как переходы в безразличное состояние. Согласно определению, состояние QSTATE кодируется вектором состояния, состоящим из трех переменных. Определениями INIT-XTRA3 задаются кодовые имена отдельных состояний. Использованы вложенные операторы IF-THEN-ELSE. В предложении с вложенными операторами IF-THEN-ELSE одно и то же следующее состояние может фигурировать во многих местах (например, состояния ОКО и OKI). Выражения вида (В==1) * (А==0) использованы вместо эквивалентных им выражений вида В* ! А только потому, что первая из этих форм является чуть более наглядной. Первым оператором IF в каждом из состояний INIT-0K1 обеспечивается переход автомата в состояние INIT при поступлении сигнала RESET. Записи, относящиеся к состояниям XTRA1-XTRA3, гарантируют переход автомата в безопасное состояние, если он вдруг так или иначе попадет в неиспользуемое состояние. Единственным равенством в разделе профаммы equations определяется тип автомата по тому, от чего зависит выходной сигнал; в данном случае это автомат типа Мура. В табл. 7.26 приведены результирующие уравнения возбуждения и выхода, составленные ABEL-компилятором (уравнения обратной полярности не показаны). Обратите внимание на имена переменных в правых частях равенств типа Q1. FB . Здесь признак-суффикс . FB указывает, что это - сигнал обратной связи ( feedback ), поступающий в решетку И-ИЛИ с выхода фиггера, но не с соответствующего вывода ПЛУ, с учетом выбираемого инвертирования в тех ПЛУ, где это возможно. На рис. 7.104 показано, что язык ABEL реапьно позволяет вам, путем использования различных признаков-суффиксов при имени сигнала, выбирать в правой части равенства одно из трех возможных значений сигнала: . Q - фактический сигнал на выходе триггера до профаммируемой инверсии. хо значение сигнала, какое было бы на выходном выводе при наличии разрешения выхода. Q1 := (1Q2.FB fe SQ3.FB к RESET.L # Q1.FB & RESET.L); Ql.C = (CLOCK); Ql.OE = (i); Q2 := (Ql.FB к !Q3.FB к RESET.L к !A # Ql.FB к Q3.FB Ь. RESET.L & A # Ql.FB к Q2.FB к RESET.L & В); Q2.C = (CLOCK); Q2,0E = (1); Q3 ;= (Q2.FB к ?Q3.FB & RESET.L & A # Ql.FB к RESET L & A); Q3.C = (CLOCK); Q3.0E = (i); Z = (Q2 & QI); Табл. 7.26. Сокращенный перечень уравнений для ПЛУ SMEX1 ![]() выходной вывод управляемый плавкими перемычками мультиплексор выбора выхода Рис. 7.104. Возможность выбора выходного сигнала в сложных ПЛУ Несмотря на использование языка высокого уровня , при написании профаммы на языке ABEL (табл. 7.25.) все же пришлось опираться на исходную, составленную вручную таблицу состояний (в данном случае это была таблица, представленная на рис. 7.49). В табл. 7.27 показан другой подход. Эта профамма составляется непосредственно из словесного описания конечного автомата, воспроизводимого здесь еще раз: piN - фактическое значение сигнала на выводе ПЛУ. Если буфер с тремя состояниями на выходе заперт, то этот сигнал задается другим устройством, либо данный выход остается в плавающем состоянии. Очевидно, что значение .PIN не следует использовать в уравнении возбуждения конечного автомата, поскольку в этом случае не гарантируется, что оно всегда будет равно значению переменной состояния. pin; pin istype reg; pin istype com; State variables State encodings Input and output pins CLOCK, RESBT L. A, В LASTA, QI, Q2 Z Definitions QSTATE = [Q1,Q23 IMIT С 0, 0] LOOKING = [0, 1] OK = [ 1, 0] XTRA = С 1, 1] RESET = !RESET L; state.diagram QSTATE state INIT: IF RESET THEN INIT ELSE LOOKING; State LOOKING: IF RESET THEN INIT ELSE IF (A = LASTA) THEN OK ELSE LOOKING; State OK: IF RESET THEN IMIT ELSE IF В THEN OK ELSE IF (A == LASTA) THEN OK ELSE LOOKING; State XTM: GOTO INIT; equations LASTA.CLK - CLOCK; QSTATE,CLK LASTA := A; Z = (QSTATE == OK); CLOCK; QSTATE.DE = 1; END SMEX2 Построить тактируемый синхронный конечный автомат с двумя входами А и В и одним выходом Z, таким что выходной сигнал Z равен I, если - входной сигнал А имел одно и то же значение на каждом из двух предыдущих тактов тактового сигнала ши - входной сигнал В равен 1 с последнего момента времени, когда первое условие было выполнено. В противном случае выходной сигнал должен равняться 0. Табл. 7.27. Более естественная программа на языке ABEL для конечного автомата из раздела 7.4.1 ffiodule SMEX2 title Alternate Version of Example State Machine ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |