Объявление конечных автоматов
Конечный автомат создается определением его имени, состояний и в необязательном порядке его битами в разделе описания переменных.
Следующий пример демонстрирует описание конечного автомата:
VARIABLE
ss : MACHINE
OF BITS (q1, q2, q3)
WITH STATES (
s1 = B"000",
s2 = B"010",
s3 = B"111");
Имя конечного автомата в данном примере ss. Биты состояний q1, q2 и q3 являются выходами регистров данного автомата. Состояниями данного конечного автомата являются s1, s2 и s3, каждому из которых присвоено числовое значение представленное битами q1, q2 и q3.
Процедура объявления конечного автомата имеет следующие характеристики:
¨ Конечный автомат имеет символическое имя. В примере, показанном выше, именем конечного автомата является ss.
¨ За именем конечного автомата следует двоеточие и далее ключевое слово MACHINE.
¨ Определение конечного автомата должно включать список состояний, а также может включать имена битов состояний.
¨ Необязательное указание имен битов состояний производится с использованием ключевого слова OF BITS, за которым следует список имен битов, отделенных друг от друга запятыми ;список должен быть заключен в круглые скобки. В примере, показанном выше, определены имена битов состояний q1, q2 и q3.
¨ Состояния определяются ключевыми словами WITH STATES, за которым следует список имен состояний отделенных друг от друга запятыми ;этот список также должен быть заключен в круглые скобки. В примере, показанном выше определены имена состояний s1, s2 и s3.
¨ Первое состояние указанное в списке состояний за ключевыми словами WITH STATES является состоянием Reset для конечного автомата.
¨ В необязательном порядке именам состояний могут быть присвоены числовые значения, следующие за знаком (=) после соответствующего имени состояния. В примере, показанном выше, состоянию с именем s1 присвоено числовое значение B”000”, состоянию с именем s2 присвоено числовое значение B”001” и s3 присвоено значение B”010”.
¨ Предусмотрена возможность определения псевдонима имени конечного автомата, объявленного в данном текстовом файле проекта или импортируемого из другого файла.
¨ Символ (;) заканчивает конструкцию определения конечного автомата.
Þ Каждое состояние конечного автомата представляется уникальным набором значений на выходах триггеров, хранящих состояния конечного автомата. Количество состояний связано с количеством битов состояний конечного автомата следующим образом:
<количество состояний> = 2^<количество битов состояний>