Лабораторна
робота № 7
Моделювання й дослідження роботи операцийних вузлів різних типівз використанням програми Electronіcs Workbench
Мета роботи:
Метою лабораторної роботи є одержання практичних навичок у побудові й контролі працездатності таких операційних вузлів як регістри, суматори й лічильники, а також дослідження різних схем методом моделювання з використанням програми Electronіcs Workbench.

Короткий опис і знайомство із програмою
Програма Electronіcs Workbench призначена для побудови електронних схем будь-якої складності (аналогових і цифрових) з перевіркою їхньої роботи методом моделювання. Електронна база, закладена в програмі, містить велика кількість елементів, схем і вузлів цифрові й аналогової техніки, виконаних у вигляді мікросхем.
Для ознайомлення з можливістю програми й методами моделювання роботи електронних схем необхідно використати матеріал, викладений в аналогічному пункті опису лабораторної роботи 5.
Загальні відомості про операційні вузли бортових
цифрових обчислювальних пристроїв
У бортових цифрових обчислювальних пристроях використаються схеми, які призначені для виконання різних операцій над двійковими кодами чисел у цілому, тобто над всіма розрядами числа. Такі схеми прийнята називати операційними вузлами. Вузли будуються з логічних елементів і елементів пам'яті. У загальному випадку, операційні вузли використаються для прийому й тимчасового зберігання кодів, для перетворення кодів з одного виду в іншій, для передачі кодів у задані моменти часу в інші вузли бортових пристроїв, для збільшення або зменшення значень кодів шляхом їхнього зрушення убік старших або молодших розрядів, для підрахунку числа сигналів, що надійшли, і перетворення їх у цифровий код, для підсумовування многорозрядных чисел і т.д.
До операційних вузлів звичайно відносять регістри, лічильники й суматори, широко використовувані при побудові основних пристроїв бортових цифрових обчислювальних машин оперативної й постійної пам'яті, процесорів, контролерів (керуючих пристроїв) і т.д.
Регістри
Регістром називається вузол бортового цифрового пристрою, призначений для прийому, тимчасового зберігання й видачі в необхідні моменти часу кодів машинних слів (чисел, команд). Моменти часу задаються спеціальними сигналами або синхроімпульсами, що визначають тимчасові інтервали або такти. Крім зазначених вище функцій, у регістрах у ряді випадків виробляється перетворення інформації шляхом зрушення вмісту регістрів на певну кількість розрядів вправо або вліво. Такі регістри називаються що зрушують або сдвиговыми..
Регістри для тимчасового зберігання інформації можуть бути побудовані на однотактных або двотактних тригерах будь-яких типів із застосуванням логічних схем для запису й зчитування інформації в прямому або інверсному кодах.
Якщо на входи регістра надходять тільки прямі коди чисел, то їх за-пись відбувається за два такти. У першому такті здійснюється установка тригера у вихідний нульовий стан, а в другому такті - безпосередньо запис інформації. Такі регістри називаються регістрами з однофазними входами. Схема регістра представлена на малюнку 7.1. Недоліком таких регістрів є необхідність у додатковому часі на "очищення" регістра від раніше записаної інформації. Достоїнство ж полягає у використання мінімальної кількості ліній при записі інформації, рівне розрядності кодів.


Для підвищення швидкодії регістрів застосовуються схеми з парафазными входами й входами синхронізації. У таких регістрах запис нової інформації здійснюється без попередньої установки його в нульовий стан (див. малюнок 7.2).
Регістри зсуву крім запам'ятовування кодів здійснюють їхні зрушення вліво або вправо на необхідну кількість розрядів щодо вихідного значення коду.
Зсув кодів є однієї з найважливіших мікрооперацій, застосовуваної в БЦВМ, і широко використається при виконанні таких операцій як множення й розподіл.
Регістри зсуву звичайно будуються послідовним з'єднанням тригерів у ланцюжок шляхом комутації виходів попередніх тригерів з інформаційними входами наступних. Залежно від того, у якій послідовності з'єднуються розрядні тригери, здійснюються зрушення в ту або іншу сторону. Тому що при зрушеннях стану одних тригерів передаються в послідовному ланцюжку іншим, необхідно розділяти в часі передачу й прийом інформації щоб уникнути її втрати. При застосуванні однотактных тригерів у кожному розряді регістра використається два тригери - один для прийому нової інформації при зрушенні, а другий для зберігання й передачі стану розряду регістра. Застосування двотактних тригерів вирішує це питання автоматично. На малюнку 7.3 показана схема двох розрядів регістра, що зрушує, зі зрушенням вправо або вліво залежно від сигналу керування "Зсув вправо" (Сдвп) або "Зсув вліво"( Сдвл ) на двотактних JK- тригерах.
При подачі високого рівня сигналу Сдвп і першого синхроімпульсу С здійснюється запис інформації в перший щабель двотактного тригера Qі по входах Jі й Kі з виходу тригера Qі-1, у перший щабель тригера Qі+1 по входах Jі+1 і Kі+1 і т.д. При знятті сигналу С відбувається передача нового стану першого щабля відповідного тригера в другу. Цей процес буде повторюватися із приходом кожного нового синхроімпульсу С.
При подачі високого рівня керуючого сигналу Сдвл із приходом кожного чергового імпульсу Зі зрушення коду регістра буде здійснюватися вліво аналогічним образом. При необхідності попереднього запису інформації в регістр на керуючих входах Сдвп і Сдвл повинні бути низькі рівні сигналу, що відповідають логічному нулю.
Умовне графічне позначення n-розрядного регістра зсуву з паралельними входами для уведення інформації показано на малюнку 7.4

Лічильники
Лічильником називається вузол бортового обчислювального пристрою, що здійснює підрахунок вступників на його вхід імпульсів і перетворююча кількість імпульсів, що надійшли, у цифровий код.
Лічильники широко використаються в цифрових пристроях і машинах для підрахунку числа зрушень при виконанні арифметичних операцій, для фор-мирования адрес команд, як дільники частоти імпульсних сигналів і т.д.
Лічильники можуть бути побудовані на всіх типах тригерів. Найпростішим лічильником є тригер з рахунковим входом, що забезпечує розподіл частоти на 2 і формуючий один вихідний імпульс із двох імпульсів, що надійшли на вхід.
Багаторозрядні лічильники будуються з "n" тригерів, з'єднаних між собою за певними правилами. Кількість тригерів, необхідних для побудови лічильника із заданим коефіцієнтом рахунку, визначається з вираження: n=ent[loq2Kсч]. Вираження в дужках округляється до більшого цілого числа. Наприклад, для побудови лічильника із Ксч=10 необхідно взяти n=4. З іншого боку, при визначенні кількості необхідних розрядів у лічильнику варто враховувати максимальне значення заданого внутрішнього коду.
Коефіцієнт рахунку визначається числом імпульсів, які необхідно подати на вхід, щоб лічильник повернувся у вихідний стан. Стан лічильника визначається станом складових його тригерів і виражається цифровим двійковим кодом. У процесі рахунку лічильник приймає різні стани із приходом кожного чергового імпульсу. Отже, з іншого боку, коефіцієнт рахунку дорівнює числу можливих станів лічильника.
За принципом роботи розрізняють лічильники підсумовуючі, що віднімають і реверсивні.
Залежно від значення коефіцієнта рахунку можна виділити лічильники двійкові з коефіцієнтом рахунку Ксч=2n, десяткові з коефіцієнтом рахунку Ксч=10 і лічильники з довільним коефіцієнтом рахунку Ксч=3,5,6,7,9,11 і т.д.
Для оцінки й порівняння різних лічильників використаються такі характеристики як ємність і швидкодія. Ємність визначається максимальною кількістю вхідних сигналів, які можуть бути зафіксовані у вигляді коду, і визначається як (Ксч-1).
Швидкодія оцінюється або по величині часу встановлення коду в лічильнику tуст, або по максимально припустимій частоті імпульсів рахунку fcч.
Двійкові підсумовуючі лічильники
Побудову й роботу підсумовуючих лічильників зручно розглянути на прикладі трехразрядного двійкового лічильника з послідовними переносами, побудованого на синхронних тригерах з рахунковим входом, тобто на Т-триггерах. Схема показана на малюнку 7.5. Лічильник працює в режимі підсумовування імпульсів Хсч, що надходять на вхід, тому що значення формованого в лічильнику двійкового коду збільшується й відповідає кількості вхідних імпульсів. Дійсно, стан лічильника відображається станом тригерів Q3Q2Q1. До приходу першого імпульсу внутрішній код лічильника Q3Q2Q1=000.

Перший імпульс переводить лічильник у стан Q3Q2Q1=001, другий імпульс - у стан Q3Q2Q1=010 і т.д.
Час установлення коду в лічильнику з послідовними переносами визначається з вираження tуст = n tуст. тр, де tуст. тр- час установлення одного тригера, n- кількість тригерів у лічильнику.
Двійкові віднімаючі лічильники
Цей тип лічильника відрізняється від попередніх тем, що із приходом чергового рахункового імпульсу внутрішній код лічильника зменшується на одиницю. Досягається це за рахунок послідовного з'єднання тригерів по інверсних виходах (див. малюнок 7.6). Нехай у вихідному стані в лічильнику зберігається код Q3Q2Q1=111. Тоді на інверсних виходах всіх тригерів- код 000.
Перший рахунковий імпульс переводить тригер Q1 у нульовий стан із закінченням рахункового імпульсу. На інверсному виході Q1 формується одиничний сигнал, що впливає на перший щабель наступні двотактного тригера Q2, переводячи її в нульовий стан. При цьому сигнал на виході

двотактного тригера Q2 не міняється до закінчення наступного рахункового імпульсу. Таким чином, сформований внутрішній код лічильника буде дорівнює Q3Q2Q1=110. Із приходом наступного рахункового імпульсу цей код зменшиться на одиницю.

Двійкові реверсивні лічильники.
У реверсивних лічильниках при послідовному з'єднанні тригерів передбачаються логічні схеми перемикання прямих і інверсних виходів попередніх тригерів на входи Т наступних. Керування схемою комутації здійснюється спеціальними сигналами, які переводять лічильник у режими додавання або вирахування імпульсів (див. малюнок 7.7).
Лічильники з ланцюгами прискореного переносу
Швидкодія лічильників з послідовними переносами обмежено через наявні затримки поширення сигналів рахунку від одного тригера до іншого.
Сумарна затримка за часом може виявитися порівнянної з інтервалами між моментами надходження рахункових імпульсів, що приведе до порушення усталеної роботи лічильника. Крім того, зчитування сформованого коду можливо тільки після завершення всіх перехідних процесів у схемі. Тому для збільшення швидкодії роботи лічильника використаються схеми прискореного переносу від розряду до розряду. До таких схем ставляться схеми наскрізного переносу, паралельного переносу й комбінованого типу. На малюнку 7.8 представлена схема підсумовуючого лічильника, у якій організована ланцюг наскрізного переносу. Час установлення лічильника визначається з вираження tуст =( n-1) tзад. І + tуст. тр. Це час менше, ніж час установле-ния лічильника з послідовними переносами, тому що tзад. І tуст. тр.


Якщо всі тригери перебувають в одиничному стані, то перший з рахункових імпульсів, що поступили на вхід, послідовно скине в нульове з-стояння всі тригери, тому що всі схеми І відкриті по одному вході, а час затримки в схемі І істотно менше, ніж час установлення одного тригера.
Швидкодія лічильника може бути збільшено, якщо використати схему з паралельними переносами. У такому лічильнику tуст = tзад. І + tуст. тр., тобто на рахункові входи першого й всіх наступних тригерів будуть надходити імпульси рахунку практично одночасно ( із затримкою tзад.И) . На малюнку 7.9 наведена схема трехразрядного підсумовуючого лічильника з паралельними переносами, побудованого на RST- тригерах, з інформаційними входами Хі для попереднього запису інформації в лічильник.
Суматори
Суматором називається вузол БЦВМ, призначений для підсумовування двійкових кодів. При підсумовуванні многоразрядных двійкових чисел здійснюється поразрядное додавання двох доданків, починаючи з молодшого розряду коду, з утворенням суми в кожному розряді й переносу в наступний старший розряд. Суматори, призначені для додавання однойменних розрядів кодів, називаються однорозрядними суматорами. Однорозрядні суматори, з'єднані між собою по ланцюгах переносів, становлять многоразрядный суматор. Більшість суматорів являють собою комбінаційні схеми, синтез яких здійснюється за правилами алгебри логіки.
Робота однорозрядного комбінаційного суматора описується таблицею істинності, з якої можна одержати логічні функції для суми й переносу (див.таблицю 7.1).
pi-1
xi
yi
Si
pi

0
0
0
0
0

0
0
1
1
0

0
1
0
1
0

0
1
1
0
1

1
0
0
1
0

1
0
1
0
1

1
1
0
0
1

1
1
1
1
1

Таблиця 7.1

Функціональна схема однорозрядного суматора і його умовне графічне позначення показані на малюнку 7.10. Для спрощення схеми суматора вихідні рівняння перетворять або мінімізують.
Комбінаційна схема суматора на два входи xі та yі, що формує суму й перенос у наступний розряд без обліку переносу з попереднього розряду, одержала назву напівсуматора. Робота напівсуматора опи-сывается наступним рівнянням:

З огляду на наведене вище вираження для напівсуматора, для повного однорозрядного суматора можна записати:


Відповідно до наведених рівнянь функціональна схема суматора представлена на малюнку 7.11. Схема побудована на двох напівсуматорах і являє собою повний однорозрядний суматор на три входи й два виходи.

При додаванні багаторозрядних чисел складаються пари однойменних розрядів з обліком міжрозрядних переносів.

Найпростішою схемою, що виконує поразрядное додавання, є схема послідовного однорозрядного суматора (див. малюнок 7.12). У такій схемі додавання виробляється за кількість тактів, рівна розрядності суммируемых чисел. У кожному такті на вхід схеми надходять однойменні розряди чисел і збережений перенос від додавання в попередньому такті. Для запам'ятовування переносу використається D-тригер.
Суматори досить просто будувати, але потрібно багато часу для додавання багаторазрядних чисел.
Для збільшення швидкодії додавання чисел здійснюється в паралельному коді. Для побудови багаторазрядного суматора при додаванні чисел у паралельному коді буде потрібно кількість однорозрядних суматорів, рівна розрядності суммируемых чисел. Апаратурні витрати при цьому зростають, але відповідно збільшується швидкодія суматора. Найпростішою схемою суматора паралельної дії є схема з послідовними переносами між однорозрядними суматорами.
Час додавання багаторазрядних чисел залежить від швидкодії елементів і від часу поширення переносів. При послідовних переносах час додавання прямо пропорційно розрядності суматора. На малюнку 7.13 зображений багаторазрядний суматор з послідовними переносами.

Тому що можливості елементів по швидкодії обмежені, то для прискорення виконання операції додавання використаються ланцюги прискореного переносу, аналогічні ланцюгам, використовуваним у лічильниках. Зокрема , використаються ланцюги наскрізного переносу, паралельного переносу й комбіновані.
Підготовка до виконання роботи
При підготовці до роботи необхідно:
1.Повторити теоретичний матеріал, викладений у даному описі.
2.Повторити можливості програми, викладені в описі до роботи 5.
Порядок виконання роботи
Завдання 1. Побудувати схему регістра паралельної дії з однофазними входами й попередньою установкою в 0 відповідно до малюнка 7.16.

Установка коду здійснюється перемикачами 1,2 і 3. Уведення коду в регістр виробляється при подачі кнопкою 4 розв'язні сигнали С. Скидання регістра в 0 здійснюється включенням кнопки 5 (CLR).
Занести у звіт схему й результати моделювання роботи регістра в статичному режимі.
Завдання 2. Зібрати схему, представлену на малюнку 7.17. У схемі використається мікросхема 74195 4-х розрядного сдвигового регістра з паралельним записом інформації й установкою в 0.
Для запису інформації встановлюється необхідний код перемикачами 1,2,3 і 4. Перемикач сигналу скидання 5 перебуває у верхнім положенні (+), а перемикач зсуву 6- у нижнім положенні (0). Перемикачем 6 при включеному живлення здійснюється запис інформації в регістр. Цим же перемикачем виробляється зсуву інформації вправо. При цьому перемикач 7 повинен перебувати у верхнім положенні.


Завдання 3. Зібрати й досліджувати роботу 3-х розрядного підсумовуючого й віднімаючого лічильників з послідовними переносами в статичному режимі.
Лічильники зібрані на синхронних D- тригерах, включених по логіці роботи асинхронних Т-триггеров. Крім того, у схемі використані входи установки

тригерів в 0 (перемикачі 2 і 3). Схеми що віднімає й підсумує лічильників показані на малюнку 7.18 і 7.19 відповідно. Результати иссле-дования занести у звіт.
Завдання 4. Досліджувати роботу підсумовуючого лічильника в динамічному режимі. Для цього підключити до рахункового входу генератор імпульсів, а до виходів генератора й лічильника - логічний аналізатор. Схема представлена на малюнку 7.20. Результати занести у звіт.
Завдання 5. Зібрати схему повного однорозрядного суматора на напівсуматорах і перевірити його роботу в статичному режимі. Схема суматора зображена на малюнку 7.21. Змінюючи значення змінних А и В (однойменні розряди чисел) і Р (перенос із молодшого розряду) побудувати таблицю істинності для суми й переносу в наступний розряд.
Результати занести у звіт. Зрівняти отримані таблиці з таблицями істинності для повного однорозрядного суматора.


Завдання 6. Зібрати й досліджувати схему 3-х розрядного суматора (малюнок 7.22), задаючи різні числа для додавання. Результати оформити у вигляді таблиці й занести у звіт.
Завдання 7. Зібрати й досліджувати в статичному режимі схему двоїчно-десяткового лічильника на мікросхемах 7473. Кожна мікросхема містить у собі два синхронних JK-тригери з асинхронними входами установки в "0" і


прямими й інверсними виходами тригерів. За допомогою перемикача "Spase" імітується подача на входи "CLK" імпульсу. При цьому на входи установки в "0" у режимі рахунку повинен бути поданий високий рівень напруги.
Двоїчно-десятковий лічильник має наступні рівняння входів:

Для реалізації цих рівнянь використані логічні елементи.
Схема показана на малюнку 7.23. Схему й результати перевірки роботи лічильника занести у звіт.
Зміст звіту
У звіт про виконану роботу включити наступні матеріали:
1.Тему й мету роботи.
2.Результати виконання завдань: досліджувані схеми, отримані таблиці .
3.Аналіз отриманих результатів.
4.Висновки по роботі.
Контрольні питання
Які вузли називаються операційними вузлами?
Як змінюється вміст регістра при зрушенні на один розряд вправо й уліво?
Охарактеризуйте регістри послідовної дії й паралельної дії.
Чим відрізняються однофазні регістри від двофазних регістрів?
Як змінюються внутрішні коди підсумовуючого лічильника й віднімаючого лічильника?
Чим відрізняється повний однорозрядний суматор від напівсуматора?
Як побудувати повний суматор з напівсуматорів?
Для чого використаються прискорені переноси в багаторозрядні суматорах і лічильниках?
Чим відрізняється двійковий лічильник від двійково-десяткового лічильника?