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

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

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

Рис.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 не використаються, то на них автоматично подаються логічні рівні, що не перешкоджають нормальній роботі автомата.