Смекни!
smekni.com

Синтез мікропрограмних автоматів (стр. 2 из 3)



3.1.4 Таблиця кодування мікрокоманд

Складаємо таблицю кодування мікрокоманд. Кожна мікрооперація кодується своєю мікрокомандою. Мікрооперації, які виконуються одна за одною послідовно на протязі одного такту часу, поєднуються до однієї мікрокоманди. У даному прикладі дві мікрооперації (mY1, mY2) виконуються одна за одною послідовно. Тому ми поєднуємо їх в одну мікрокоманду. Таблиця кодування зображена в Таблиці 2.

Таблиця 2

Мікрокоманда Мікрооперація
Y1 mY1, mY2
Y2 mY3
Y3 mY4
Y4 mY5
Y5 mY1
Y6 mY6
Y7 mY7

3.1.5 Закодована мікрокомандна схема алгоритма

Складаємо закодовану мікрокомандну схему алгоритму (Рис.5). Проставляємо мітки внутрішніх станів автомата Мілі таким чином:

мітки ставляться після кожної мікрокоманди (перед блоком після операційного);

початок та кінець мікрокомандної схеми алгоритму відмічається міткою а0;

мітки проставляються згідно з порядковим номером;



3.1.6 Основна таблиця автомата (СІ - синхроімпульс)

Будуємо основну таблицю автомата (Таблиця 3). Ця таблиця складається на основі закодованої мікрокомандної схеми алгоритму (Рис.5) В першому стовпчику таблиці записуються усі стани, в яких може знаходитися наш автомат. В першому рядку таблиці записуються способи переходу автомата з одного стану в інший (вхідні сигнали), тобто, чи то буде СІ (той перехід, в процесі якого на шляху не зустрілась жодна верхівка), чи то при переході автомату буде поставлена умова. В клітинках таблиці фіксується, перехід до якого стану здійснюється, і що буде на виході. Наприклад, із стану а0 автомат може здійснити перехід до стану а1 і в результаті цього переходу на виході автомата буде Y1, тобто, автомат виконає ті мікрооперації, які виконуються на протязі одного такту часу (mY1 і mY2 закодовані мікрокомандою Y1), при чому, цей перехід станеться під синхроімпульсним сигналом.

Таблиця 3

СІ=1 X1
X2
X3
X4
a0 a1/Y1
a1 a2/Y2
a2 a3/Y3 a3/__
a3 a4/Y4
a4 a1/__ a5/Y5
a5 a6/Y6
a6 a7/Y3 a7/__
a7 a8/Y4
a8 a5/__ a0/Y7

3.1.7 Граф-схема переходів

Будуємо граф-схему переходів (Рис.7). Граф-схема будується на основі Рис.5. і Таблиці 3. Кружочками позначаються можливі стани автомата. Стрілки указують на перехід із стану i до стану j. Над стрілкою указується, під яким вхідним сигналом станеться перехід, і, що при цьому буде на виході автомата.


3.1.8 Система рівнянь переходів

Складаємо систему рівнянь переходів. Ця система складається на основі граф-схеми переходів (Рис.7) або основної таблиці абстрактного автомата (Таблиця 3). Сигнал СІ опущений.

3.1 9. Система рівнянь виходів

Складаємо систему рівнянь виходів. Ця система складається на основі закодованої мікрокомандної схеми алгоритму (Рис.5), де Х - вхід,

Y - вихід.

3.1.10 Кодування внутрішніх станів автомата

Для того, щоб закодувати внутрішні стани автомата, визначаємо кількість необхідних для цього тригерів (n). Кількість тригерів розраховується із співвідношення: log2 A ≤ n, де

n - кількість необхідних тригерів;

А - кількість станів аi (a0 - a8)

А = 9log2 9 ≤ nÞn = 4,Нам необхідні 4 тригери, значить внутрішні стани автомата будемо кодувати чотирьох-розрядним двійковим кодом. Процес кодування зображений у Таблиці 4.

Таблиця 4

S1 S2 S3 S4
a0 0 0 0 0
a1 0 0 0 1
a2 0 0 1 0
a3 0 0 1 1
a4 0 1 0 0
a5 0 1 0 1
a6 0 1 1 0
a7 0 1 1 1
a8 1 0 0 0

3.1.11 Побудова схеми операційного автомата

Операційний автомат складається з п’яти (5) частин (Рис.5).

У вхідній частині розташовані чотири (4) RS-тригери, чотири (4) логічних елементи АБО, на які подається вхідний сигнал, декодер та дві шини, одна з яких необхідна для передачі сигналів, які надходять з декодера, а інша - для сигналів з виходів компаратора.

У перехідній частині автомата виконується перетворення сигнала на протязі одного такту часу. Пройшовши через логічні елементи І та (або) АБО, чи того не роблячи, сигнал змінюється і результат надходить на шину (at), відкіля продовжує передаватися до програмованої логічної матриці (ПЛМ). Перехідна частина будується на основі системи рівнянь переходів.

Вихідна частина. Ця частина будується на основі системи рівнянь виходів. Тут виконується той самий процес, що й у перехідній частині, тільки сигнали подаються на вихідну шину Yt, з якої сигнал надходить до вихідної матриці.

3.1.12 Схема операційного автомата


3.2 Синтез мікропрограмного автомата за схемою Уілкса-Стрінжера у вигляді автомата Мура

Побудувати операційний автомат, який знаходить максимальний парний елемент в кожному рядку масива (A [n,n]).

Мікропрограмний автомат необхідно реалізувати за схемою Уілкса-Стрінжера у вигляді автомата Мура.

Оптимальну функціональну схему керуючих частин автомата синтезувати на елементах І, НЕ, RS-, D - тригерах.

3.2.1 Змістовна схема алгоритму

До складу змістовної схеми алгоритму (Рис.1) входять операційні та умовні верхівки. Наш алгоритм виконує знаходження максимального парного елементу кожному рядку масива, використовуючи при цьому чотири (4) умовні верхівки і вісім (8) операційних верхівок. Позначення операційних верхівок показано на Рис.2. Позначення умовних верхівок на Рис.3.



3.2.2 Змістовна таблиця кодування операційних та умовних верхівок

Кожна верхівка, чи то операційна чи умовна, кодується. При чому, якщо, мікрооперації повторюються і умовні верхівки повторюються, вони кодуються однаково. В даному прикладі три мікрооперації повторюються двічі, тому, однакові верхівки ми можемо кодувати одним кодом. Таблиця кодування верхівок зображена у Таблиці1.


Таблиця 1

Код Зміст Примітки
mY1 j = 1
mY2 i = 1
mY3 max = 0
mY4 A [i,j] Ввід A [i,j]
mY5 max = A [i,j]
mY6 i = i + 1
mY7 max Вивід max
mY8 j = j + 1
X1 A [i,j]% 2 так - 1, ні - 0
X2 A [i,j] > max так - 1, ні - 0
X3 i < n так - 1, ні - 0
X4 j < m так - 1, ні - 0

3.2.3 Закодована мікроопераційна схема алгоритма

Закодована мікроопераційна схема алгоритму будується на основі змістовної схеми алгоритму (Рис.1) і таблиці кодування операційних та умовних верхівок (Таблиця 1), шляхом заміни відповідних блоків. Схема алгоритму зображена на Рис.4.



3.2.4 Таблиця кодування мікрокоманд

Складаємо таблицю кодування мікрокоманд. Кожна операція кодується своєю мікрокомандою. Мікрооперації, які виконуються одна за одною послідовно на протязі одного такта часу, об’єднуються в одну мікрокоманду. В даному прикладі двічі по дві мікрооперації ( (mY2, mY3) и (mY7, mY8)) виконуються послідовно. Тому ми об’єднуємо їх в одну мікрокоманду. Таблиця кодування зображена в Таблиці 2.