
- •7. Синтез структурного автомата
- •7.1. Етапи канонічного методу структурного синтезу автоматів
- •7.2. Кодування станів
- •7.3. Побудова канонічної таблиці структурного автомата
- •7.4. Вибір елементів пам’яті автомата
- •7.5. Побудова таблиці збудження тригера
- •7.6. Побудова рівнянь функцій збудження і виходів автомата
- •7.7. Побудова функціональної схеми автомата
7. Синтез структурного автомата
7.1. Етапи канонічного методу структурного синтезу автоматів
Якщо синтез комбінаційних схем зводиться до реалізації аналітичних виразів булевих функцій за допомогою логічних елементів, то синтез цифрових автоматів з пам’яттю не настільки очевидний. У загальному випадку задача структурного синтезу автоматів з пам’яттю зводиться до знаходження загальних прийомів побудови структурних схем складних автоматів на основі композиції деяких елементарних автоматів, тобто зводиться до пошуку певних способів їх з’єднання між собою. Слід підкреслити, що далеко не при всякому виборі системи елементарних автоматів можна побудувати (шляхом їх композиції) будь-який структурний автомат. У тому випадку, коли це можливо, говорять, що задана система елементарних автоматів структурно повна. Але і на основі структурно повних систем елементарних автоматів ефективно вирішити задачу структурного синтезу довільного автомата з пам’яттю поки удається тільки для структурно повних систем елементарних автоматів деякого спеціального виду. Розглянемо один з таких методів синтезу, який дозволяє звести задачу структурного синтезу довільного автомата з пам’яттю до задачі синтезу комбінаційних схем. Метод синтезу, в основу якого покладений вказаний принцип, отримав назву канонічного методу структурного синтезу автоматів з пам’яттю. Канонічний метод структурного синтезу оперує з елементарними автоматами, які діляться на два великих класи. Перший клас складають елементарні автомати з пам’яті, які називають елементами пам’яті. Другий клас складають елементарні комбінаційні автомати – логічні елементи. Для зведення задачі структурного синтезу довільного автомата з пам’яттю до задачі синтезу комбінаційних схем накладають обмеження на тип елементів пам’яті. Результатом роботи методу являються рівняння булевих функцій автомата в канонічній формі подання. Необхідними даними для початку роботи методу служить абстрактний цифровий автомат з пам’яттю.
Канонічний метод структурного синтезу умовно можна розділити на такі етапи:
1) кодування станів;
2) побудова канонічної таблиці структурного автомата;
3) вибір елементів пам’яті автомата;
4) побудова таблиці збудження тригерів;
5) побудова рівнянь булевих функцій виходів і збудження автомата;
6) побудова функціональної схеми автомата.
7.2. Кодування станів
Довільний
цифровий автомат з пам’яттю A
на абстрактному рівні подання може бути
описаний у вигляді A
= {X,
Y, S , δ, λ}.
Під
час переходу на структурний рівень
подання кожна буква xi
вхідного алфавіту X
автомата подається як двійковий вектор,
тобто двійковий набір, кількість
компонентів якого дорівнює кількості
фізично реалізованих вхідних каналів
структурного автомата. Іншими словами,
кожна буква
i
X
кодується двійковим вектором. Очевидно,
що мінімальна кількість необхідних
фізично реалізованих вхідних каналів
kвх
в автоматі може бути підрахована за
формулою kвх
>log2|Х|,
де |Х|
–
потужність алфавіту входів
X.
Наприклад,
якщо X
=
{
1,
2,
3},
то kвх
2.
Іншими словами, кожну букву
i
X
можна закодувати двійковим вектором,
який складається не менш ніж з двох
компонентів, наприклад Х
= {00, 01, 10}.
Кожна буква yi
вихідного алфавіту Y
автомата також подається як двійковий
вектор, кількість компонентів якого
дорівнює необхідній кількості фізично
реалізованих вихідних каналів автомата.
За аналогією, мінімальна кількість
виходів автомата kвих
визначається
за формулою kвих
log2
|Y|,
де |Y|
–
потужність алфавіту виходів
Y.
Кожна буква si алфавіту станів S автомата подається двійковим вектором, мінімальна кількість компонентів якого kст визначається за формулою kст log2 |S|. Процес заміни букв алфавітів X, Y, S абстрактного автомата двійковими векторами називається кодуванням і може бути описаний таблицями кодування. Таблиця кодування будується так: в лівій її частині вказуються всі букви (наприклад, вхідного алфавіту абстрактного автомата), а в правій – двійкові вектори, які ставляться у відповідність цим буквам.
Розглянемо кодування станів для прикладу 1.
Приклад 1. Автомат заданий основною таблицею абстрактного автомата (табл. 7.1). Синтезувати структурний автомат.
Таблиця 7.1 – Основна таблиця абстрактного автомата
Внутрішні стани |
Вхідні стани | |
x0t |
x1t | |
s0 (t-1) |
s1 t / y0 t |
s1 t / y0 t |
s1 (t-1) |
s2 t / y0 t |
s0 t / y1 t |
s2 (t-1) |
s3 t / y0 t |
s2 t / y0 t |
s3 (t-1) |
s0 t / y1 t |
s3 t / y0 t |
Кодуємо стани автомата. Позначимо буквою А вхідний алфавіт, буквою В – алфавіт внутрішніх станів, буквою С – вихідний алфавіт. Визначаємо кількість біт kвх, необхідних для кодування вхідних станів, як kвх ≥ log2 X, де X – кількість станів. Кількість вхідних станів Х = 2, тому кількість біт, необхідних для кодування вхідних станів kвх = log2 2 = 1. Складаємо таблицю кодування вхідних станів (табл. 7.2). Визначаємо кількість біт kст, необхідних для кодування внутрішніх станів, як kст = log2 4 = 2. Складаємо таблицю кодування внутрішніх станів (табл. 7.3). Визначаємо кількість біт kвых, необхідних для кодування вихідних станів: kвых = log2 2 = 1. Складаємо таблицю кодування вихідних станів (табл. 7.4).
Таблиця 7.2 – Кодування вхідних станів | |
Стан |
Код |
x0t |
0 |
x1t |
1 |
Таблиця 7.3 – Кодування внутрішніх станів | |
Стан |
Код |
s0 (t-1) |
00 |
s1 (t-1) |
01 |
s2 (t-1) |
10 |
s3 (t-1) |
11 |
Таблица 7.4 – Кодування вихідних станів | |
Стан |
Код |
y0 t |
0 |
y1 t |
1 |