
2. Регістри
Регістром називається послідовний цифровий пристрій, що використовується для запису і зберігання n-розрядного двійкового слова. Крім зберігання деякі види регістрів можуть перетворювати інформацію, наприклад, з паралельної в часі (паралельний код) в послідовну (послідовний код) набори значень, і навпаки; з прямого коду в зворотний і навпаки; зсовувати інформацію на один або декілька розрядів у бік молодшого або старшого розрядів.
Регістри будуються на базі тригерів, число тригерів в схемі регістра відповідає числу розрядів двійкового слова, що підлягає зберіганню. Розряди регістра крім тригерів можуть містити і деякі ЛЕ, за допомогою яких забезпечується можливість виконання перерахованих вище перетворень інформації.
Основною класифікаційною ознакою регістрів є спосіб прийому (записи) і видачі (читання) інформації. По цій ознаці розрізняють паралельні, послідовні і паралельно-послідовні регістри.
2.1 Паралельний регістр
Паралельним називають регістр, в який n-розрядне двійкове слово записується одночасно по всіх n розрядах. Аналогічним чином здійснюється прочитування збереженого в регістрі слова – одночасно по всіх його розрядах. При прочитуванні інформація, що зберігається в регістрі, зберігається, тобто видається її копія. Паралельний регістр часто іменують регістром пам'яті. Основу регістрів пам'яті складають одноступінчаті синхронні D- або RS-тригери. В цій якості можуть застосовуватися і JK-тригери. Приклад схемної реалізації чотирьохрозрядного регістра пам'яті приведений на рис. 7.5.
Рич. 7.5. Регістр пам'яті: а) схема; б) умовне зображення
Як
елементи регістра тут використані
синхронні D-тригери.
З схеми виходить, що окремі розряди
регістра пам'яті не обмінюються даними
між собою. Загальними для розрядів
регістра є ланцюги управління:
синхронізації або дозволи запису (С) і
скидання або початкової установки “0”.
З принципу роботи синхронного D-тригера
виходить,
що розряди числа А=а3а2а1а0
запишуться у відповідні тригери тільки
після подачі сигналу (імпульсу) на вхід
синхронізації С, тобто при С=1. Після
зміни сигналу на вході С на “0” тригери
переходять в режим зберігання. В цей
час на входи D тригерів можна подати
наступне слово, наприклад, В=b3b2b1b0,
яке
при появі сигналу С=1 запишеться в
регістр. Прочитування слова здійснюється
з прямих виходів
тригерів (можливе прочитування і з
інверсних виходів –
).
Для установки тригерів в нульовий стан
застосовується спеціальна шина “Уст.
“0”, пов'язана з асинхронними R-входами
кожного тригера.
2.2 Послідовний регістр
Послідовним називають регістр, в якому здійснюється послідовний (розряд за розрядом) прийом і видача інформації. Такий регістр часто іменують регістром зсуву або зсувним регістром.
Регістр зсуву є рядом послідовно сполучених тригерів, число яких визначається розрядністю записуваного в нього слова. По напряму зсуву записаної в регістр інформації розрізняють регістри прямого зсуву, тобто управо (у бік молодшого розряду); зворотного зсуву, тобто вліво (у бік старшого розряду); реверсивні регістри, що допускають зсув в обох напрямах.
Мал. 7.6. Регістр зсуву управо: а) схема; б) умовне зображення
На рис. 7.6 приведений приклад схемної реалізації чотирьохрозрядного регістра зсуву управо, побудований на D-тригерах з синхронізацією по передньому фронті
При записі в регістр двійкового слова А=а3а2а1а0 перший розряд слова (а0), подається на вхід крайнього лівого тригера (Т3), що є одночасно входом регістра в цілому, і записується в нього під час вступу першого сигналу (імпульсу) синхронізації С. З приходом наступного сигналу синхронізації значення а0 з виходу розряду Q3 вводиться в розряд Q2, а в розряд Q3 поступає а1.
З приходом кожного чергового синхроімпульса проводиться зсув поступаючої інформації на один розряд управо. Після четвертого синхроімпульса регістр виявляється заповненим розрядами слова А і перший розряд слова (а0) з'явиться на виході Q0. Якщо подати на регістр ще одну послідовність з чотирьох синхроімпульсів, встановивши при цьому на його вході рівень “0”, то з регістра (з виходу Q0, що є виходом регістра в цілому) послідовно виводитимуться розряди слова А і регістр буде звільнений від збереженого слова А (очищений).
Таким чином, в процесі зсуву інформації кожний тригер Тi регістра: а) передає збережену інформацію на тригер Тi-1, б) змінює свій стан за рахунок прийому інформації від тригера Тi+1. Передача інформації з тригера Тi і зміна його стану не можуть відбуватися одночасно. Тому основна складність реалізації операції зсуву полягає в розділенні в часі виконання вказаних етапів в кожному розряді (тригері) регістра. Ця складність виключається за рахунок використовування синхронних тригерів з динамічним управлінням записом (як показано на рис. 7.6) або двухступінчатих тригерів, внутрішня організація яких передбачає розділення в часі етапів прийому вхідної інформації і зміни вихідний.
На мал. 3 приведена схема регістра зсуву вліво, побудована на двухступінчатих D-тригерах. Комбінуючи схеми зсуву управо і вліво і використовуючи управляючі сигнали, можна побудувати реверсивний регістр.
Рис. 7.7. Регістр зсуву вліво
Регістри зсуву (Рис. 7.7) дозволяють забезпечити перетворення послідовного коду в паралельний – достатньо в схемі передбачити виходи від всіх розрядів (на мал. 2 показані пунктирними лініями).
Регістр
зсуву легко перетворюється на кільцевий
регістр при з'єднанні виходу останнього
розряду з входом першого (рис. 7.7). Для
забезпечення інших видів запису і
прочитування застосовуються комбіновані
регістри, приклад реалізації одного з
яких приведений на рис. 7.9. Тут двухступінчаті
логічні елементи І-АБО при V=1 забезпечують
після подачі тактового імпульсу на вхід
С
передачу
сигналу з i-го
в i-1-ий
тригер, а при V=0 забезпечується запис в
регістр сигналів, що є паралельним
кодом. Прочитування записаного довільним
способом слова можливе як у вигляді
паралельного коду (Q0,Q1,Q2,Q3),
так
і у вигляді послідовного коду при подачі
чотирьох тактових імпульсів.
Рис. 7.9. Комбінованний регістр
Методичний приклад
Побудуємо паралельний 4-х розрядний регістр(рис. 7.10)
Рис. 7.10 – Паралельний 4-х розрядний регістр
Виходи регістру:
-
CLK - вхід тактового сигналу;
-
Enable - вхід дозволу завантаження даних;
-
Set - вхід асинхронної установки регістру;
-
Reset - вхід асинхронного скидання регістру;
-
D [4 .. 1] - чотирирозрядний вхід даних;
-
Q [4 .. 1] - чотирирозрядний вихід даних.
Текстовий опис регістру в AHDL, створюємо файл rg4.tdf:
SUBDESIGN RG_4
(
d[4..1], enable,clk: INPUT;
q[4..1]: OUTPUT;
)
VARIABLE
ff[4..1]: DFFE;
BEGIN
ff[4..1].clk = clk;
ff[4..1].ena = enable;
ff[4..1].d = d[4..1];
q[4..1] = ff[4..1].q;
END;
У наведеному описі до примітиву тригера (DFFE) звертаються як до змінної: оголошені чотири змінні FF [4 .. 1], кожна з яких позначає DFFE тригер з входом дозволу роботи.
Після цього створюємо файл з розширенням lab7.gdf, куди вкладаємо відповідний новостворений регістр. Слід зауважити, що дані вводяться за допомогою вхідної шини D[4..1] і виводяться за допомогою вихідної шини Q[4..1]. (рис. 7.11)
Рис. 7.11 – Структура паралельного 4-х розрядний регістру в графічному редакторі