МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ВИВЧЕННЯ МЕТОДІВ АНАЛІЗУ ТА СИНТЕЗУ РЕГІСТРІВ
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 5
з курсу «Обчислювальна техніка»
для студентів спеціальностей
7.160102 “Захист інформації з обмеженим доступом та автоматизація її обробки”
7.160103 “Системи захисту від несанкціонованого доступу”
7.160104 “Адміністративний менеджмент в сфері захисту інформації з обмеженим доступом”
7.160105“Захист інформації і комп'ютерних системах і мережах”
Львів 2008
Мета роботи: вивчення схемних різновидів регістрів, методів їх аналізу і синтезу.
1. ОСНОВНІ ВІДОМОСТІ
Загальні поняття
Регістром називають впорядкований набір елементів пам’яті, призначений для зберігання слів (наприклад двійкових) і виконання мікрооперацій над ними.
Мікрооперація - це елементарна машинна дія, результатом якої є або зміна значення слова, або його пересилання (зсув).
Узагальнену структурну схему n - розрядного регістра подано на Рис.1. Схема містить n елементів пам’яті (тригерів) і комбінаційну схему КС. На КС з входу регістра подають: керуючі сигнали - вони ідентифікують мікрооперацію, яка має виконатися регістром у вказаний момент часу; тактовий сигнал регістра Т- вказує моменти часу, коли мають виконуватися мікрооперації; інформаційні сигнали - задають вхідну інформацію, над якою регістром виконуються ті чи інші мікрооперації. Крім того, на входи КС подаються вихідні сигнали регістра , які визначають стан регістра (як цифрового автомату) в даний момент часу і також можуть бути аргументами функцій збудження елементів пам’яті. Аналізуючи значення згаданих аргументів, КС формує тактуючі сигнали тригерів С і (на кожному такті) значення функцій збудження елементів пам’яті . Функції збудження забезпечують перехід регістра в заданий (сигналами на його керуючих входах) наступний стан. Для вибраних типів тригерів функції збудження - це функції J, K (для JK - тригера); R, S (для RS - тригера); D (для D- тригера); T (для T- тригера).
Крім функцій формування тактових сигналів і сигналів збудження елементів пам’яті, КС може в загальному випадку здійснювати (при необхідності) попередню обробку вихідної інформації.
Число розрядів (тригерів) n називають довжиною регістра. Регістр може знаходитися в станах, тобто в нього можна записати різних двійкових слів.
Рис.1
В тих чи інших регістрах може не бути деяких елементів, зображених на узагальненій структурній схемі (наприклад, асинхронні регістри не містять тактових входів Т і С.
Розрізняють синхронні та асинхронні регістри. В синхронних регістрах мікрооперації виконуються у визначені тактуючим сигналом Т моменти часу. При цьому якщо регістр будують на синхронних тригерах, сигнал Т подають безпосередньо на тактові входи С тригерів. Якщо ж синхронний регістр будують на асинхронних тригерах - синхронізуючий сигнал Т подають на комбінаційну схему. Настроювання синхронного регістра на виконання тої чи іншої мікрооперації здійснюється встановленням на його керуючих входах позиційного двійкового коду цієї мікрооперації (тут - j - тий розряд цього коду). Число розрядів в коді мікрооперації визначають із співвідношення , де k - кількість мікрооперацій, для виконання яких синтезують регістр.
В асинхронних регістрах тактуючий вхід Т відсутній. Настроювання асинхронного регістра на виконання тої чи іншої мікрооперації здійснюється встановленням на його керуючих входах унітарного коду мікрооперації (нагадаємо, що k - кількість мікрооперацій, для виконання яких синтезують регістр). Іншими словами на кожну мікрооперацію відводиться свій керуючий сигнал, за яким регістр виконує саме цю мікрооперацію і саме в цей момент часу, коли цей сигнал набуває активного значення. Причому в згаданий момент часу всі інші керуючі сигнали регістра не повинні набувати активного значення. Очевидно, що кількість розрядів в унітарному коді мікрооперації асинхронного регістра більша, ніж в позиційному коді мікрооперації синхронного регістра.
При виконанні мікрооперацій у всіх розрядах регістра здійснюються однакові перетворення інформації. Характер мікрооперації прийнято описувати станами тригерів регістра в двох моментах часу: в тому, що передує виконанню мікрооперації (момент часу s) і в момент завершення мікрооперації (момент часу s+1).
Найчастіше на регістрах виконують мікрооперації занесення (тобто приймання, запису) двійкового слова паралельним кодом, зсуви слова, а також встановлення початкового (як правило нульового) стану.
Запис слова здійснюється через інформаційні входи регістра, які прийнято позначати Di (тут індекс i вказує на номер розряду регістра, тобто Di - це інформаційний сигнал i - ого тригера регістра). Мікрооперацію запису слова паралельним кодом можна описати рівнянням: , тобто при виконанні цієї мікрооперації в i - ий розряд регістра в момент часу s+1 буде записане значення, яке мав інформаційний сигнал цього-ж розряду в момент часу s.
Регістри, на яких виконуються мікрооперації зсуву, називаються регістрами зсуву. Зсув слова може бути здійснено вліво (тобто в бік старших розрядів), або вправо (тобто в бік молодших розрядів) на задану кількість розрядів. Регістри, які мають кола як лівого, так і правого зсуву, називають реверсивними. Мікрооперацію зсуву слова на один розряд вліво описують рівнянням: (за умови, якщо індекс старшого розряду має більше значення, ніж індекс молодшого розряду регістра). За цієї ж умови мікрооперацію зсуву слова на один розряд вправо описують рівнянням: .
Встановлення початкового стану регістра (зокрема нульового) здійснюються як правило через асинхронні установчі входи тригерів.
За допомогою регістрів виконують також інші перетворення інформації, наприклад порозрядні логічні операції: кон’юнкція (); диз’юнкція (); нерівнозначність (); рівнозначність (); інвертування розрядів (); тощо. Переважно порозрядні логічні операції здійснюють над двома аргументами: станом розряду регістра і значенням інформаційного сигналу цього розряду.
Виходами регістра бувають виходи тригерів, але часто комбінаційна схема регістра (див. Рис.1) містить елементи, які здійснюють видачу інформації.
Видача слова може здійснюватися в прямому, оберненому, або в парафазному коді. Може забезпечуватися також третій (високоомний) стан виходів регістра. Для видачі слова в прямому коді до виходів регістра під’єднують прямі виходи тригерів ; в оберненому коді - інверсні виходи тригерів ; в парафазному коді - і прямі і інверсні.
Рис.2
Як приклад на Рис.2 подано два варіанти організації кіл видачі інформації регістром. Схема на Рис.2а забезпечує видачу прямого коду значення i-го розряду регістра при високому рівні сигналу на керуючому вході . При високому рівні сигналу на керуючому вході забезпечується видача інформації в оберненому коді. При низькому або високому рівні сигналу на обох керуючих входах, на всіх виходах регістра також будуть встановлені відповідно або низький, або високий рівень сигналів. Схема на Рис.2б забезпечує видачу прямого коду при низькому рівні сигналу на керуючому вході . При високому рівні сигналу на вході забезпечується видача оберненого коду інформації, що зберігається в регістрі.
Синтез синхронних та асинхронних регістрів
Проектування регістрів зводиться до вибору типу тригерів і синтезу КС.
Для побудови регістрів можуть використовуватися тригери, різні за функціональною ознакою (наприклад, тригери RS-, JK-, T-, D - типу) і за організацією (асинхронні чи синхронні з статичним або динамічним управлінням).
Як правило в регістрах всі розряди будують однаковими.
На Рис.3 подано дві основні структури, за якими будують схеми розрядів синхронних регістрів.
Рис.3
Обидві структури містять елемент пам’яті і комбінаційну схему, призначе-ну для формування функції збудження елемента пам’яті.
За структурою, наведе-ною на Рис.3а будують розряди синхронних регістрів на синхронних тригерах. В такій структурі тактовий сигнал регістра подають безпосередньо (або після підсилення) на тактові входи тригерів. Аргументами функції збудження тригера, яку формує комбінаційна схема, є позиційний двійковий код мікрооперації та множина сигналів X, яка містить інформаційний сигнал Di і (якщо цього вимагає система мікрооперацій) вихідні сигнали i - ого та інших розрядів регістра: .
За структурою, наведеною на Рис.3б будують розряди синхронних регістрів на асинхронних тригерах. На відміну від структури на Рис.3а, тактовий сигнал регістра подають як аргумент на комбінаційні схеми формування функцій збудження тригерів - адже асинхронні тригери не мають тактового входу. Результатом є те, що необхідне значення функції збудження тригера формується комбінаційною схемою саме в той момент, коли тактовий сигнал регістра набуває активного значення.
На Рис.4 подано дві основні структури, за якими будують схеми розрядів асинхронних регістрів.
Рис.4
За структурою на Рис.4а будують розряди асинхронних регістрів на синхронних тригерах. Застосовують таку структуру як правило в випадку, якщо регістр призначено для виконання лише одної мікрооперації. В такому випадку керуючий сигнал y цієї мікрооперації подають безпосередньо на тактовий вхід тригерів - за активним значенням цього сигналу тригери регістра переключаються у відповідності до значення функції збудження, тобто виконується задана мікрооперація. Аргументами комбінаційних схем є ті самі сигнали, що і в структурі на Рис.3а, за винятком коду мікрооперації.
За структурою на Рис.4б будують розряди асинхронних регістрів на асинхронних тригерах. Аргументами комбінаційних схем, що формують функції збудження в таких структурах, є унітарний код мікрооперації і множина сигналів X, до якої можуть входити ті самі сигнали, що були згадані стосовно структури на Рис.3а
Синтез схем для формування функцій збудження тригерів виконується так:
складають таблицю переходів i - ого розряду регістра, в якій відображають всі можливі комбінації стану i - ого тригера і сигналів з множини X в момент часу s. Для кожної такої комбінації (тобто для кожного набору аргументів функцій збудження) вказують новий стан тригера в момент часу s+1;
у відповідності з таблицею переходів тригера, що використовується для побудови регістра, для кожного переходу (для кожного рядка таблиці істинності) записують необхідні значення функцій збудження тригера. Таблиці переходів для D-, T-, RS-, JK- тригерів подано у вигляді Таблиць 1, 2, 3, 4 відповідно;
Таблиця 1
00
01
10
11
0
1
0
1
Таблиця 2
00
01
10
11
0
1
1
0
Таблиця 3
00
01
10
11
*
0
1
0
0
1
0
*
Таблиця 4
00
01
10
11
0
1
*
*
*
*
1
0
виконують синтез комбінаційної схеми в заданому елементному базисі.
Зауваження: якщо після синтезу КС виявиться, що аргументами функцій збудження є вихідні сигнали тригерів, то для побудови такого регістра необхідно вибрати синхронні тригери з динамічним управлінням.
Складність і швидкодія комбінаційної схеми при заданому наборі мікрооперацій визначається функціональним типом тригерів. Якщо для побудови регістра можна використати тригери різного типу, то доцільно отримати декілька варіантів схем (для різних тригерів), а далі вибрати ту схему, яка має необхідні параметри.
Синтез регістрів можна умовно поділити на чотири етапи:
1-ий етап: - вибір базової структури, за якою буде синтезовано регістр і кодування мікрооперацій. На цьому етапі вибирають структурну схему, за якою будуть будувати схеми розрядів регістра. Далі визначають кількість розрядів в коді мікрооперації і кожній мікрооперації ставлять у відповідність певний позиційний або унітарний код. Цей код повинен відрізнятися від кодів інших мікрооперацій. Доцільно також для кожної мікрооперації записати її логічне рівняння. Результати виконання цього етапу синтезу оформляють у вигляді таблиці.
2-ий етап: складання таблиці функціонування (таблиці істинності) i - ого розряду регістра. Таку таблицю можна умовно поділити на три частини. До першої частини відносимо стовпці, в яких фігурують: значення тактового сигналу регістра (при необхідності); код мікрооперації; значення тих сигналів, які є аргументами в рівняннях мікрооперацій; стан i - ого тригера в момент часу s (за умови якщо він вже не врахований як аргумент рівнянь мікрооперацій). Друга частини таблиці - це стовпчик, в якому відображено стан i - ого тригера в момент часу s+1. До третьої частини відносимо стовпці, в яких записуються значення сигналів збудження тригерів регістра. В цій частині таблиці доцільно врахувати всі типи тригерів, на яких можна побудувати регістр, з метою вибору оптимального тригера.
3-ій етап: мінімізація функцій збудження тригерів. Перевід отриманих рівнянь в заданий елементний базис. Порівняння отриманих рівнянь і вибір оптимального функціонального типу тригера для побудови регістра.
4-ий етап: побудова схеми регістра.
Розглянемо детальніше зміст етапів синтезу регістрів різного типу на прикладах.
Приклад 1. Побудувати чотирирозрядний синхронний регістр для виконання мікрооперацій: y3 - занесення слова паралельним кодом; y10 - зсув вправо на два розряди; y11 - штрих Шеффера. Для побудови схеми серед синхронних D- , T- , JK- тригерів вибрати такий тип тригера, застосування якого забезпечить мінімальні апаратні затрати при побудові регістра. Комбінаційні схеми побудувати на логічних елементах 2І-НЕ.
1-ий етап.
Схеми розрядів регістра з заданими властивостями будемо будувати за структурою, поданою на Рис.3а - адже саме ця структура відображає принцип побудови розрядів синхронного регістра на синхронних тригерах. У відповідності з цією структурою мікрооперації кодуємо позиційним двійковим кодом, кількість розрядів якого (виходячи з кількості мікрооперацій, яка в нашому прикладі дорівнює трьом) дорівнює: . Отже, щоб закодувати різними двійковими кодами всі три задані мікрооперації, нам достатньо двох двійкових розрядів. Назвемо ці розряди s1, s2 і перейдемо до складання таблиці кодування (Таблиця 5). При складанні цієї таблиці кожній мікрооперації ставимо у відповідність довільний код мікрооперації, слідкуючи лише за тим, щоб різним мікроопераціям відповідали різні коди. В таблиці кодування вказуємо також логічні рівняння заданих мікрооперацій.
Таблиця 5
Мікро-
операція
Код мікро-
операції
Рівняння
мікрооперації
s1
s2
0
0
1
0
1
0
2-ий етап.
Таблиця 6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
*
0
*
*
1
*
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
*
1
*
*
0
*
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
*
1
*
*
1
*
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
*
1
*
*
1
*
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
*
1
*
*
0
*
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
*
1
*
*
1
*
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Складаємо таблицю функціонування (таблицю переходів) i - го розряду регістра -Таблиця 6.
В першій частині таблиці не передбачаємо стовпчика для тактового сигналу, адже згідно вибраної базової структури (Рис.3а) ми подаємо тактовий сигнал регістра безпосередньо на тактові входи тригерів. Натомість в першій частині Таблиці 6 є п’ять стовпчиків: два (,) - для коду мікрооперації; і три (,,) - для аргументів, що фігурують в рівняннях Таблиці 5. Ще одного стовпчика для стану тригера на такті s не передбачаємо, адже цей сигнал () вже враховано як аргумент рівнянь Таблиці 5. Друга частина таблиці - це стовпчик для запису станів i - го тригера на такті s+1. В третій частині таблиці функціонування є стовпчики , (на відміну від інформаційного сигналу регістра цей сигнал відзначено штрихом), , -для інформаційних сигналів тригерів, які ми можемо використовувати при синтезі.
Першу частину таблиці (перші п’ять стовпчиків) заповнюємо перебираючи всі можливі набори значень відповідних сигналів - від нульового набору до одиничного.
Другу частину таблиці функціонування - стовпчик - заповнюємо у відповідності до таблиці кодування. Тобто у всіх рядках Таблиці 6, в яких код мікрооперації (а такому кодові в Таблиці 5 відповідає мікрооперація занесення слова паралельним кодом), в стовпчик ми переписуємо значення із стовпчика (у відповідності до рівняння, яке відповідає згаданому кодові). Аналогічно в тих рядках, в яких , маємо: . Якщо - тоді . Кодові мікрооперації у відповідності до Таблиці 5 не відповідає жодна з мікрооперацій, тому цей код є забороненим і йому в Таблиці 6 можуть відповідати будь-які значення в останніх п’яти стовпчиках.
Третю частину таблиці функціонування заповнюємо у відповідності до Таблиць 1, 2, 4 - адже для кожного рядка Таблиці 6 перехід нам вже відомий.
3-ій етап.
Рис.5
Мінімізуємо функції збудження всіх типів тригерів, які враховані в Таблиці 6. Для цього скористаємося методом карт Карно (Рис.5). Враховуємо, що кожна з функцій збудження залежить від тих сигналів, які фігурують в першій частині Таблиці 6. В першій частині таблиці функціонування в нашому прикладі є п’ять стовпчиків - отже кожна функція збудження залежить від п’яти аргументів і тому саме карти Карно на п’ять змінних ми використовуємо при мінімізації.
Після мінімізації отримаємо:
(1) (2) ; (3) Комбінаційну схему потрібно побудувати на елементах 2І-НЕ, тому переводимо рівняння (1), (2), (3) в базис І-НЕ з врахуванням кількості входів логічних елементів:
(4) (5) (6) З рівнянь (4), (5), (6) випливає, що для побудови схеми одного розряду регістра необхідно: за умови застосування Т - тригерів - 28 логічних елементів 2І-НЕ; за умови застосування D - тригерів - 14 логічних елементів 2І-НЕ; за умови застосування JK - тригерів - 16 елементів 2І-НЕ (для JK - тригера оцінюємо затрати на побудову комбінаційних схем, які формують обидві функції збудження). Робимо висновок, що найпростішою буде схема регістра, побудована на основі D - тригерів.
4-ий етап. На основі D - тригерів за рівнянням (5) будуємо схему однорозрядної секції регістра (Рис.6). Далі на основі таких секцій будуємо схему 4-розрядного регістра (Рис.7) (входи DS1, DS2 - це входи послідовного занесення інформації).
Рис.6 Рис.7
Приклад 2. Побудувати 4-розрядний синхронний регістр для виконання мікрооперацій: y3 - занесення слова паралельним кодом; y1 - зсув вліво на один розряд. Для побудови схеми серед асинхронних RS- , JK- тригерів вибрати такий тригер, застосування якого забезпечить мінімальні апаратні затрати при побудові регістра. При побудові схем можна використовувати логічні елементи І, АБО, НЕ.
Таблиця 7
Мікро-
операція
Код мікро-
операції
Рівняння
мікрооперації
s
0
1
1-ий етап: Схеми розрядів синхронного регістра на асинхронних тригерах будуємо за структурою, поданою на Рис.3б. Мікрооперації кодуємо позиційним кодом. Кількість розрядів: ( - задана кількість мікрооперацій). Назвемо розряд коду мікрооперації s і складемо таблицю кодування (Таблиця 7).
Таблиця 8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
*
0
*
0
0
*
0
*
0
*
0
*
*
0
*
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
*
1
*
1
0
0
0
0
0
*
0
*
*
1
*
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
*
1
*
1
*
1
*
*
0
*
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
*
1
0
0
0
0
1
*
0
*
1
*
*
1
*
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
*
1
0
0
0
0
1
*
0
*
1
*
*
1
*
0
2-ий етап. Складаємо таблицю функціонування розряду регістра (Таблиця 8)
В першій частині таблиці передбачаємо стовпчик для тактового сигналу, адже згідно вибраної базової структури (Рис.3б) ми подаємо тактовий сигнал регістра на комбінаційну схему, тобто тактовий сигнал є аргументом функцій збудження тригерів регістра. Загалом в першій частині Таблиці 8 є п’ять стовпчиків: один () - для значень тактового сигналу; один () - для коду мікрооперації; два (,) - для аргументів, що фігурують в рівняннях Таблиці 7; і один стовпчик () - для стану i - го тригера на такті s. Друга частина таблиці - це стовпчик для запису станів i - го тригера на такті s+1. В третій частині таблиці функціонування є стовпчики , , , для інформаційних сигналів заданих типів тригерів.
Першу частину Таблиці 8 (перші п’ять стовпчиків) заповнюємо перебираючи всі можливі набори значень відповідних сигналів - від нульового набору до одиничного.
Другу частину (стовпчик ) заповнюємо наступним чином. У всіх рядках таблиці, в яких значення тактового сигналу дорівнює нулю, в стовпчик записуємо те саме значення, яке фігурує в стовпчику (це означає, що при низькому рівні сигналу на тактуючому вході регістром не виконується жодна з мікрооперацій. Натомість забезпечується зберігання старої інформації). Якщо ж значення тактового сигналу дорівнює одиниці, стовпчик заповнюється у відповідності до Таблиці 7. Тобто у всіх рядках Таблиці 8, в яких код мікрооперації (а значення тактуючого сигналу ), в стовпчик ми переписуємо значення з стовпчика (у відповідності до рівняння мікрооперації, яке в Таблиці 7 відповідає згаданому кодові). Аналогічно в тих рядках, в яких (), маємо: .
Третю частину Таблиці 8 заповнюємо у відповідності до Таблиць 3, 4.
Рис.8
3-ій етап. Мінімізуємо методом Карно функції збудження всіх тригерів з Таблиці 8. При цьому враховуємо, що кожна з функцій збудження залежить від п’яти аргументів - при мінімізації використовуємо карти Карно на п’ять змінних (Рис.8).
Після мінімізації отримаємо:
; (7) У відповідності з завданням ми можемо будувати комбінаційну схему на логічних елементах І, АБО, НЕ - отже рівняння (7) додаткових перетворень не потребує. З (7) також випливає, що з точки зору складності обидва варіанти побудови схеми регістра - на JK- і RS- тригерах - є рівноцінними.
4-ий етап. Обираємо будь-який з двох заданих типів тригерів - наприклад RS- тригер - і за рівнянням (7) будуємо схему одного розряду регістра (Рис.9). Далі на основі спроектованих однорозрядних секцій будуємо схему чотирирозрядного регістра, який характеризується заданими в Прикладі 2 властивостями (Рис.10).
Рис.9 Рис.10
Приклад 3. Побудувати чотирирозрядний асинхронний регістр для виконання мікрооперацій: y3 - занесення слова паралельним кодом; y4 - диз’юнкція. Для побудови схеми серед асинхронних T- , JK- тригерів вибрати такий тип тригера, застосування якого забезпечить мінімальні апаратні затрати при побудові регістра. При побудові комбінаційних схем можна використовувати логічні елементи 2АБО-НЕ.
Таблиця 9
Мікро-
операція
Код мікро-
операції
Рівняння
мікрооперації
y3
y4
1
0
0
1
1-ий етап. Схеми розрядів регістра будуємо за структурою, поданою на Рис.4б - ця структура відображає принцип побудови розрядів асинхронного регістра на асинхрон-них тригерах. Мікрооперації кодуємо дворозрядним (за кількістю мікрооперацій) унітарним кодом - Таблиця 9.
2-ий етап. Складаємо таблицю функціонування i - го розряду регістра (Таблиця 10). Таблицю заповнюємо за тими ж правилами, що і в двох попередніх прикладах. При цьому тактовий сигнал не використовуємо, а при заповненні другої та третьої частин Таблиці 10 користуємося даними відповідно Таблиці 9 і Таблиць 2, 4. Зауважимо, що в тих рядках, в яких , в стовпчик переписуємо значення з стовпчика (забезпечується збереження інформації). Код є забороненим - у відповідних рядках Таблиці 10 можуть бути будь-які значення.
Рис.11
3-ій етап. Мінімізуємо методом Карно функції збудження всіх тригерів з Таблиці 10. При цьому враховуємо, що кожна функція збудження залежить від чотирьох аргументів - при мінімізації використовуємо карти Карно на чотири змінних (Рис.11).
Після мінімізації отримаємо:
; ; (8) З (8) очевидно, що простішою буде схема регістра, побудована на JK- тригерах. Отже саме рівняння для функцій збудження J, K перетворюємо в базис 2АБО-НЕ:
Таблиця 10
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
*
0
*
*
0
*
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
*
1
*
*
0
*
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
*
1
*
*
1
*
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
(9) 4-ий етап. Для побудови схеми одного розряду регістра за рівнянням (9) (Рис.12) необхідно всього п’ять логічних елементів 2АБО-НЕ. Схему чотирирозрядного регістра, побудовану з використанням таких однорозрядних секцій, подано на Рис.13.
Рис.12 Рис.13
2. ЗАВДАННЯ
2.1. Теоретична частина (виконується при підготовці до лабораторного заняття)
Ознайомитися з основними відомостями.
Визначити свій варіант завдання. Для цього необхідно номер варіанта (задає викладач) перевести в двійкову систему числення і за Таблицями 11, 12 (тут 1 - молодший розряд двійкового номера варіанту) визначити свої варіанти мікрооперацій і типів логічних елементів для виконання наступного завдання:
На логічних елементах з Таблиці 11 побудувати оптимальні з точки зору складності схеми трьох основних типів регістрів для виконання мікрооперацій, заданих Таблицею 12, а саме: а) синхронний регістр на синхронних D -, T -, або JK - тригерах; б) синхронний регістр на асинхронних RS- або JK- тригерах; в) асинхронний регістр на асинхронних T-, або JK- тригерах.
Зауваження: під умовними позначеннями мікрооперацій в Таблиці 12 слід розуміти наступне: y1 - зсув вліво на один розряд; y2 - зсув вправо на один розряд; y3 - запис слова паралельним кодом; y4 - диз’юнкція; y5 - кон’юнкція; y6 - нерівнозначність; y7 - рівнозначність; y8 - інвертування значень розрядів регістра.
Таблиця 11
Логічні елементи
Пункт завдання
а)
б)
в)
0
0
0
І,АБО,НЕ
2І-НЕ
2АБО-НЕ
0
0
1
3І-НЕ
І,АБО,НЕ
2АБО-НЕ
0
1
0
3АБО-НЕ
3АБО-НЕ
І,АБО,НЕ
0
1
1
І,АБО,НЕ
2АБО-НЕ
2І-НЕ
1
0
0
3І-НЕ
2АБО-НЕ
І,АБО,НЕ
1
0
1
І,АБО,НЕ
3АБО-НЕ
2АБО-НЕ
1
1
0
І,АБО,НЕ
2І-НЕ
3І-НЕ
1
1
1
3І-НЕ
І,АБО,НЕ
І,АБО,НЕ
Таблиця 12
Мікрооперації
Пункт завдання
а)
б)
в)
0
0
0
y1, y3, y4
y3, y8
y3, y7
0
0
1
y2, y3, y5
y3, y7
y3, y8
0
1
0
y1, y3, y6
y3, y5
y3, y4
0
1
1
y2, y3, y7
y3, y4
y3, y5
1
0
0
y1, y3, y4
y3, y6
y3, y4
1
0
1
y2, y3, y5
y3, y8
y3, y7
1
1
0
y1, y3, y6
y3, y7
y3, y8
1
1
1
y2, y3, y7
y3, y6
y3, y5
2.2. Експериментальна частина
Схему регістра, синтезовану в межах пункту 2а теоретичної частини завдання, побудувати в схемному редакторі САПР Foundation Series.
Проконтролювати правильність функціонування регістра за допомогою моделювальника САПР, визначивши значення наступних станів розряду регістра для всіх наборів значень вхідних змінних і попередніх станів розряду регістра.
Замалювати часові діаграми роботи схеми.
Зауваження.
Рекомендовані схеми включення тригерів різного типу наведено на Рис.14. При експериментальному дослідженні схеми чотирирозрядного регістра рекомендується моделювати його однорозрядну секцію. Для задання тестових сигналів на входах однорозрядної секції регістра при моделюванні рекомендується скористатись сигналами з виходів тригерів 6-ти розрядного двійкового підсумовуючого лічильника. Якщо через B1 позначити прямий вихід молодшого тригера цього лічильника, то на входи однорозрядної секції регістра подаються:
B1 - на вхід ;
B2 - на вхід ;
B3 - на вхід ;
B4 - на вхід ;
B5 - на вхід ;
B6 - на вхід .
Контроль функціонування регістра здійснюється за таблицею функціонування i - ого розряду регістра і часовими діаграмами, отриманими при моделюванні. При цьому правильність переключення i - ого розряду регістра в наступний стан перевіряють за фронтом імпульсу на вході .
Зміст звіту
Назва і мета роботи.
Всі матеріали, що стосуються синтезу регістрів.
Часові діаграми роботи регістра, що досліджувався в лабораторії.
Короткі висновки за результатами роботи.
Література:
Самофалов К.Г., Корнейчук В.И., Тарасенко В.П. Цифровые ЭВМ. Теория и проектирование. - К.: Вища шк., 1989.
Б.Є.Рицар. Цифрова техніка. - К.: НМК ВО, 1991.
Самофалов К.Г., Романкевич А.М., Валуйский В.Н., Каневский Ю.С., Пинкевич М.М. Прикладная теория цифрових автоматов.- К.: Вища шк. Головное изд-во, 1987.- 375с.
Рис.14. Схеми включення елементів пам’яті