Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Узагальнена структурна схема кінцевого автомата...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
337.41 Кб
Скачать

Узагальнена структурна схема кінцевого автомата

Кінцевий автомат - пристрій з пам'яттю, вихідні сигнали якого залежать від передісторії надходження вхідних сигналів.

Рис.1.

Узагальнена структурна схема автомата наведена на рис. 1, де позначені наступні сигнали:

  • X[N..l] - вхідні сигнали;

  • Y[k..l] - вихідні сигнали;

  • Q[K..1] - розряди пам'яті, які визначають стан автомата;

  • D[n..l] - дані для запису на згадку;

  • М - пам'ять автомата (набір тригерів);

  • КС1 - комбінаційна схема, що забезпечує формування даних для запису на згадку;

  • КС2 - комбінаційна схема, що породжує вихідні сигнали.

Дана структура є різновидом узагальненої схеми цифрового автомата, запропонованої Хаффманом. Відмінність складається лише в тім, що комбінаційно-логічний пристрій (КЛП) розбито на два самостійних блоки, що виконує функції формування сигналів керування елементом пам'яті й вихідних сигналів.

Синхронний кінцевий автомат (СКА) - автомат, пам'ять якого реалізована на синхронних тригерах. СКА переходить зі стану в стан тільки при активному перепаді (фронту або спаду) тактового сигналу синхронізуючі тригери в його блоці пам'яті.

Залежно від способу формування вихідних сигналів виділяють два класи кінцевих автоматів:

  • Автомат Мура - автомат, вихідні сигнали в якому залежать тільки від поточного стану автомата.

  • Автомат Милі - автомат, вихідні сигнали в якому залежать як від поточного стану автомата, так і від поточних значень вхідних сигналів (пунктирна лінія на рис. 3.31).

Число тригерів (nт,), використовуваних для реалізації модуля пам'яті автомата, визначається числом станів автомата (Nс.) і способом їхнього кодування:

  • Двійкове кодування (Binary coding). При цьому nт=]log2Nc[, де ] [ — операція округлення до найближчого більшого цілого (nт=CEIL(log2Nc),).

  • Кодування за принципом: один стан — один тригер (One Hot State). При цьому nт = Nс..

Для НВІС програмувальної логіки сімейств МАХ, що містять відносно невелике число макроосередків, у кожній з яких є багатовходова програмувальна матриця «И», матриця «АБО» і тригер, прийнятні обидва способи кодування. Тому для таких НВІС пакет MAX+plus II за допомогою опції One Hot State Machine Encoding (меню Assign Global Project Logic Synthesis) дозволяє вибирати спосіб кодування (за замовчуванням застосовується двійкове кодування).

Для НВІС програмувальної логіки сімейств FLEX, що містять багато логічних елементів, у кожному з яких є чотиривходова таблиця перекодувань і тригер, оптимальним є кодування за принципом: один стан - один тригер. При цьому істотно спрощується комбінаційна схема КС1. Тому для НВІС сімейств FLFX у пакеті MAX+plus II завжди застосовується, даний спосіб кодування станів.

Використання мови AHDL для опису алгоритму роботи автомата дозволяє автоматизувати процедуру синтезу, включаючи вибір числа розрядів пам'яті й кодування станів автомата.

Задання кінцевого автомата

У мові AHDL кінцевий автомат - це змінна. Для її задання в розділі змінних (Variable Section) використовується наступна конструкція:

__machine_name : MACHINE OF BITS (__state_bit, __state_bit)

WITH STATES (

state_name =__state_value,

state name =__state value,

state_name =__state_value);

Вона в загальному випадку визначає:

  • ім'я змінної - символічне ім'я автомата (machine_name);

  • число розрядів пам'яті автомата й символічне ім'я кожного з розрядів (OF BITS (__state_bit, __state_bit));

  • символічні імена станів автомата і їхні коди (WITH STATES (state_name = state_value, state_name = state_value)).

Указувати число розрядів пам'яті і їхніх символічних імен, а також коди станів автомата необов'язково. Тому в найпростішому випадку для задання кінцевого автомата використовується наступна конструкція:

__macnine_name : MACHINE

WITH STATES ( state_name, __state_name, __state_name);

У цьому випадку компілятор, оптимізуючи комбінаційні схеми КС1 і КС2, самостійно вибере як розрядність блоку пам'яті, так і коди станів автомата.

У рамках мови AHDL кінцевий автомат, а, отже, і змінна що його позначає, має три керуючих входу:

  • CLK - вхід тактового сигналу (активний - фронт);

  • Reset - вхід асинхронного скидання автомата (активний рівень - логічна одиниця);

  • ENA - вхід дозволу роботи автомата (активний рівень - логічна одиниця).

Обов'язкове використання тільки входу CLK. Якщо входи Reset і/або ENA не використаються, то на них автоматично подаються логічні рівні, що не перешкоджають нормальній роботі автомата.