момент часу t, а на інші входи цих схем — прямий і інверсний сигнали логічної умови х(t) і x(t).
Рисунок 4.4. Блок-схема мікропрограмного автомата Уїлкса
Рисунок 4.5. Логічний вузол БПЛУ
На виходах схем І з'являється відповідно сигнал:
z’(t+1)=x(t)z(t)
або
z’’t+1) = x(t)z(t),
який через БФМК задає микрокоманду, яка буде виконана у на-ступний момент часу t+1. Потім цикл може бути повторений з іншим логічним вузлом, якщо немає повернення до попередньої мікрокоманди. Якщо після виконання будь-якої мікрокоманди не передбачається розгалуження у програмі, то відповідний логічний вузол буде відсутній і виконується наступна за порядком мікрокоманда, як це було показано у найпростішому мікропрограмному автоматі.
Якщо одна логічна умова пов'язана із другою, друга із третьою і т.д., то z'(t+1) і z"(t+1) будуть визначатися добутком декількох логічних змінних. Можливо також, що у мікропрограмі здійсню-ється звернення до однієї й тієї ж мікрокоманди при організації Різних циклів. Це означає, що декілька логічних добутків повинні бути об'єднані за допомогою операцій логічного складання.
Розглянемо побудову мікропрограмного автомата (МПА) Уїлкса на конкретному прикладі. На рис. 4.6 наведена граф-схема алгоритму (ГСА) із двома логічними умовами, що задаються змінними х1 і х2, які моделюють датчики типу реле, тобто видають сигнал «ввімкнено» або «вимкнено», що відповідно кодуються 1 і 0. Крім того, до ГСА входить логічна умова у вигляді змінної х3, що дорівнює 1 або 0, яка моделює роботу таймера. Також до ГСА входять мікрокоманди z0, z1, ..., z7, кодування яких наведено у таблиці 4.1. Ставиться задача побудувати відповідний вищенаведеній ГСА мікропрограмний автомат Уїлкса.
Рисунок 4.6. Граф-схема алгоритму
Таблиця 4.1. Кодування мікрокоманд
Номер макрокоманди | Макрокоманда | Код мікрокоманди
1 | z0 | 000
2 | z1 | 001
3 | z2 | 010
4 | z3 | 011
5 | z4 | 100
6 | z5 | 101
7 | z6 | 110
8 | z7 | 111
Для цього за заданою ГСА побудуємо кодовану мікропрограму, яка формується таким чином. Визначаємо першу микрокоманду в момент часу t (табл. 4.2). Це буде мікрокоманда z0 (початок). Із ГСА бачимо, що після неї в момент часу t+1 іде микрокоманда z7. Це означає, що із нульової шини дешифратора, яка відповідає мікрокоманді z0, на усі схеми АБО шифратора (БФМК) повинні бу-ти заведені зв'язки (рис. 4.7). В результаті в момент часу t+1 на ви-ходах АБО шифратора з'являється двійкова комбінація 111, яка надходить на входи Dl, D2, D3 регістра RG і за ТІ, що надходить на вхід С в момент часу ж, заноситься у регістр. Після мікроко-манди z2 аналогічно відпрацьовується мікрокоманда z2. Після мі-крокоманди z2 іде логічна умова x1. У випадку, якщо вона дорівнює 1, то виконується команда z3, у противному разі здійснюється по-вернення до команди z2 і цикл замикається. В автоматі на рис/4.7 ця Умова реалізується відповідним логічним вузлом, що складається із двох двовходових схем І. На їх об'єднаний вхід заведений зв'язок із Другого вихода дешифратора z2, а на інші входи подані логічні змінні х1 і х. Як свідчить ГСА, вихід схеми, який відповідає добутку z0х1, необхідно з'єднати із першою і другою схемами АБО шифратора БФМК, що приводить при виконанні логічної умови х1=1 до появи на його вході комбінації 011, яка відповідає мікрокоманді z3. Для випадку х1=0 вихід другої схеми І, на якому утворюється z2*х1, повинен бути з'єднаний із входом другої схеми АБО. В результаті такого з'єднання на виході схем АБО утворюється комбінація 010, яка формує мікрокоманду z2.
Аналогічно формується в автоматі решта зв'язків. Особливим випадком с тільки змінна х3, що моделює таймер, до якого ГСА пе-реходить після виконання умов z3 х2 х3 та z4 * х3. В початковому положенні таймер знаходиться у нулі. В результаті автомат пра-цює у циклі за умовою х3 = 0 до того часу, поки х3 не буде дорівнювати 1. Це означає, що у режимі х3 = 0 автомат зберігає свій «старий» стан — микрокоманду z5 або z4, за якою він увійшов у цикл.
У цьому випадку зв'язки із виходів відповідних логічних схем І на шифратор не заводяться, а самі схеми І у автоматі є надлишко-вими. Положення х3 - 1 виводить автомат із циклу І приводить до виконання мікрокоманди z6.
Подамо викладені результати за кодуванням мікропрограми у таблиці 4.2.
Таблиця 4.2. Кодована мікропрограма
Ном.
мк | t | t+1 | Код
мк
1 | z0 | z7 | 111
2 | z7 | z2 | 010
3 | z2x1 | z3 | 011
4 | z2x1 | z2 | 010
5 | z3x2 | z1 | 001
6 | z3x2x3 | z6 | 110
7 | z3x2x3 | T | 011
8 | z1 | z4 | 100
9 | z4x3 | z6 | 110
10 | z4x3 | T | 100
11 | z6 | z5 | 101
12 | z5 | z0 | 000
На основі цієї таблиці складем логічні рівняння для синтезу Ј>ПЛУ І шифратора БФМК:
Із цих рівнянь виключимо рівняння 7 і 10, які описують роботу таймера Т. Потім проведем логічне об'єднання рівнянь, що мають у лівій частині однакові індекси. Це будуть за індексом два — друге і четверте і за індексом шість — шосте і дев'яте рівняння:
Реалізуючи за цими рівностями БПЛУ і шифратор БФМК, одержимо мікропрограмний автомат, який реалізує задану ГСА (див. рис. 4.7).
ГСА, наведена на рис. 4.6, має неупорядкований набір опера-торів. Так, після оператора z7 іде оператор z2, після z1-z4.