Лабораторна робота №9
Проектування цифрових автоматів з пам'яттю.
Мета роботи: навчитися проектувати цифрові автомати з пам'яттю. Програмне забезпечення: MAX-plus II.
1. Теоретичні відомості
Вузли і пристрої, які містять елементи пам'яті відносяться до класу автоматів з пам'яттю.
Цифровий автомат - це пристрій, який здійснює приймання, зберігання і перетворення дискретної інформації за деяким алгоритмом.
Абстрактний цифровий автомат A визначається сукупністю п'яти об'єктів {X, S, Y, , ,},
де X = {xi}, i - множина вхідних сигналів автомата А (вхідний алфавіт автомата А);
S = { sj}, j - множина станів автомата А (алфавіт станів автомата А);
Y = {yk}, k - множина вихідних сигналів автомата А (вихідний алфавіт автомата А);
- функція переходів автомата А, яка відображає (XS) → S, тобто ставить у відповідність будь-якій парі елементів добутку множин (XS) елемент множини S;
- функція виходів автомата А, яка задає відображення (XS) → Y або
S → Y.
За способом формування функції виходів розрізняють наступні типи автоматів: автомат Мілі та автомат Мура (рис.9.1).
В абстрактному автоматі Мілі функція виходів задає відображення (X S) → Y.
Автомат Мілі характеризується системою рівнянь:
Автомат Мура - системою рівнянь:
Процес заміни букв алфавітів X, Y, S цифрового автомата двійковими векторами називається кодуванням і може бути описаний таблицею (табл. 3, табл. 4, табл. 5). В лівій частині таблиці перераховуються всі букви (наприклад вхідного алфавіту), а в правій - двійкові вектори, які ставляться у відповідність цим буквам.
Рис 9.1 – Структурні схеми автоматів з пам’яттю
Таблиця 1 - Таблиця переходів Таблиця 2 - Таблиця виходів
Стан автомата |
Вхідні сигнали |
|
X1 |
X2 |
|
S1 |
S2 |
S1 |
S2 |
S2 |
S1 |
S3 |
S3 |
S2 |
Стан автомата |
Вхідні сигнали |
|
X1 |
X2 |
|
S1 |
Y1 |
Y3 |
S2 |
Y2 |
Y4 |
S3 |
Y1 |
Y2 |
Функція переходів - ; Функція виходів -
Розглянемо кодування букв алфавітів S, X,Y
Таблиця 3. Таблиця 4. Таблиця 5.
Вхідні сигнали |
Код вхідних сигналів |
X1 |
0 |
X2 |
1 |
Стан |
Код стану |
S1 |
00 |
S2 |
01 |
S3 |
10 |
Вихідні сигнали |
Код вихідних сигналів |
Y1 |
00 |
Y2 |
01 |
Y3 |
10 |
Y4 |
11 |
У мові AHDL кінцевий автомат - це змінна. Для її задання в розділі змінних (Variable Section) використовується наступна конструкція:
__machire_name MACHINE OF BITS (__state_bit, __state_bit) WITH STATES (
state_name = state_value,
state_name = state_value,
state_name = s:ate_value):
Вона в загальному випадку визначає:
- ім'я змінної - символічне ім'я автомата (machinename);
- число розрядів пам'яті автомата і символічне ім'я кожного з розрядів (OF BITS (__state bit, __state_bit));
- символічні імена станів автомата та їх коди (WITH STATES (state_name = state_value, state_name = state_value)).
Вказувати число розрядів пам'яті та їх символічні імена, а також коди станів автомата необов'язково. Тому в простому випадку для завдання кінцевого автомата використовується наступна конструкція: machine_name: MACHINE WITH STATES (state_name.__state_name. __state_name);
У рамках мови AHDL кінцевий автомат, а. отже, і змінна, яка його позначає, має три керуючих входи:
- CLK - вхід тактового сигналу (активний - фронт);
- Reset - вхід асинхронного скидання автомата (активний рівень - логічна одиниця);
- ENA - вхід дозволу роботи автомата (активний рівень - логічна одиниця).
Обов'язкове використання тільки входу CLK. Якщо входи Reset і/або ENA не використовуються, то на них автоматично подаються логічні рівні, що не перешкоджають нормальноій роботі автомата.
З таблиць 1-5 отримуємо таблицю 6
Таблиця 6 – Спільна таблиця переходів і виходів(заданих двійковими векторами)
Стан автомата |
Вхідні сигнали |
|
0 |
1 |
|
S1 |
00/S1 |
10/S3 |
S2 |
01/S2 |
11/S1 |
S3 |
00/S3 |
01/S2 |
За таблицею 6 складаємо програму для функціонування цифрового автомати Мілі(рис. 9.2). Його часові діаграми на рис. 9.3
Рис.9.2 – Програма в AHDL для автомату Мілі
Рис.9.3 – Часові діаграми для автомату Мілі