4. Для завершения ввода щелкните левой клавишей мыши на свободном поле.
Рис. П2.19. Окно State Editor с присвоенными значениями выходов автомата
Правила записи выражений
Синтаксис выражений следующий:
-оператор присваивания обозначается составным символом <=,
-константы заключаются в одинарные кавычки, например, ‘0’,
-выражения для каждого выхода отделяются друг от друга сим-
волом точка с запятой «;»,
-в конце последнего выражения никакой символ не ставится (см.
рис. П2.19).
Ввыражениях можно использовать логические операторы, определенные в табл. П2.2.
156
Таблица П2.2
|
Логические операторы |
|
|
not |
Инверсия |
and |
И |
or |
ИЛИ |
nand |
И-НЕ |
nor |
ИЛИ-НЕ |
хоr |
ИСКЛЮЧАЮЩЕЕ ИЛИ |
хnоr |
ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ |
У оператора not самый высокий приоритет, так что можно не заключать в скобки подвыражение типа not А1.
Логические операторы and, or, nand, nor, xor, хnоr имеют одинаковое старшинство и выполняются слева направо в выражениях. В сложных логических выражениях порядок выполнения операторов регулируется скобками.
Пробелы для удобства чтения выражений можно вставлять произвольно.
Задание переходов
Переход это изменение состояния автомата под воздействием входного сигнала. Переход, как правило, осуществляется при выполнении некоторого условия, однако возможны и безусловные переходы.
Переходы конечного автомата из одного состояния в другое задаются ориентированными рёбрами (дугами) графа переходов. Иногда требуется, чтобы автомат остался в данном состоянии при соответствующем условии. В этом случае переход представляется ориентированным ребром, замкнутым на ту же вершину.
Для задания перехода выполните следующие действия.
1.Щёлкните на вертикальной панели инструментов по кнопке Transition. Курсор примет форму перекрестия.
2.Наведите перекрестие курсора на вершину, из которой будет осуществляться переход, и щёлкните мышью. Затем повторите то же самое с вершиной, в которую будет осуществляться переход. Появится кривая со стрелкой, привязанная к двум выбранным вер-
шинам
ребро графа (рис. П2.20).
157
Рис. П2.20. Окно State Editor с заданными переходами автомата
Используйте контрольные точки, чтобы изменить форму кривой
(см. рис. П2.20).
Задание условий переходов
Условие перехода автомата из одного состояния в другое задаётся равенством 1 или 0 логического выражения или переменной, которые соответствуют появлению тех или иных входных сигналов. Выражение заключается в круглые скобки, ставится знак ра-
венства, затем пишется 0 или 1, заключённые в одинарные ка-
вычки. Например:
(not E1 and E2) = ‘1’
В выражениях можно использовать логические операторы, определенные в табл. П2.2.
158
Если условие перехода определяется истинностью или ложностью переменной, то запись такого условия выглядит следующим образом:
E2 = ‘0’
Для задания условия перехода:
1.Щёлкните на вертикальной панели инструментов по кнопке Condition.
2.Наведите перекрестие на ребро перехода, для которого необходимо задать условие, и щёлкните мышью. Появится текстовое поле.
3.Введите условие перехода и щелкните левой клавишей мыши на свободном поле. Над ребром появится условие перехода
(рис. П2.21).
Рис. П2.21. Окно State Editor с заданными условиями переходов автомата
Чтобы изменить введённый код, выделите условие перехода, и дважды щёлкните на нём мышью.
159
Задание сброса автомата в начальное состояние
Как правило, на множестве состояний S автомата выделяется специальное начальное состояние sо S. Переход автомата в начальное состояние реализуется по специальному входу. Этот вход имеет стандартное имя clear (CLR) или reset. Перевод автомата в начальное состояние называют сбросом автомата. Подача определенного сигнала (0 или 1) на этот установочный вход называют условием сброса.
Переход в начальное состояние может осуществляться синхронно или асинхронно. При синхронной установке переход автомата в начальное состояние происходит по активному фронту синхросигнала при наличии разрешающего сигнала на установочном входе. При асинхронном сбросе автомат переходит в начальное состояние сразу при поступлении сигнала на установочный вход.
Для задания сброса автомата в начальное состояние выполните следующие действия.
1.Щёлкните на вертикальной панели инструментов по кнопке Reset. Курсор примет форму чёрного треугольника.
2.Наведите курсор на поле около состояния, которое необходимо объявить начальным, и щёлкните мышью. Появится символ сброса и курсор перейдёт в режим рисования перехода.
3.Подведите курсор к состоянию, которое необходимо объявить начальным, и щёлкните мышью. Появится ориентированное ребро от символа сброса к указанному состоянию (рис. П2.22). Это состояния и будет считаться начальным.
Теперь необходимо задать синхронность или асинхронность сброса.
4. Щёлкните правой кнопкой мыши на символе сброса и в появившемся меню установите галочку напротив Synchronous или
Asynchronous (рис. П2.23).
Условное графическое обозначение синхронного и асинхронного сброса:
синхронный сброс, |
асинхронный сброс. |
160