7.1.4 JK-тригер
JK-тригер – це універсальний тригер, що має характеристики всіх інших типів тригерів. Умовне графічне позначення JK-тригеру подано на рис. 7.1.9. JK-тригер має два інформаційні входи: J і K, і вхід синхронізації CLK і, як і всі тригери два комплементарних виходи Q1 і Q2. Таблиця дійсності для JK-тригера приведена в табл. 7.1.4. Коли на обидва входи J і K подається рівень логічного 0, тригер блокується, і стан його виходів не змінюється. В цьому випадку тригер знаходиться в режимі збереження.
Режим роботи | Входи | Виходи | ||||
CLK | J | K | Q1 | Q2 | Вплив на вихід Q1 | |
Збереження | 0 | 0 | Без змін | Без змін – блокування | ||
Встановлення 0 | 0 | 1 | 0 | 1 | Скидання або очищення Q1 в 0 | |
Встановлення 1 | 1 | 0 | 1 | 0 | Для встановлення Q1 в 1 | |
Переключення | 1 | 1 | Переключення | Зміна стану на протилежний |
Рядки 2 і 3 таблиці дійсності описують режими, що відповідають встановленню тригера в стани 0 на 1. Рядок 4 ілюструє дуже важливий режим роботи JK-тригера – переключення. Якщо на обох входах J і K встановлена логічна 1, то наступні тактові імпульси будуть викликати перекидання рівнів сигналів на виходах тригера від 1 до 0, от 0 до 1 і так далі. Така робота подібна переключенню тумблера, звідки і походить назва режиму.
Умовне графічне позначення JK-тригера, що входить до складу інтегральної схеми показано на рис. 7.1.10. В порівнянні з тригером на рис. 7.1.9 даний тригер має два додаткових асинхронних входи (вхід попереднього встановлення і вхід очищення).
Синхронними входами є інформаційні входи J та K і синхронізуючий вхід CLK.
Рис. 7.1.10. Умовне графічне позначення серійного інтегрального JK-тригеру
При реалізації тригерів за допомогою мови AHDL доцільно користуватись примітивами тригерів.
В табл. 7.1.5 наведено всі примітиви тригерів, що використовуються при описанні роботи апаратури.
Табл. 7.1.5. Примітиви тригерів в AHDL
Примітив | Прототип примітиву |
DFF | FUNCTION DFF (D, CLK, CLRN, PRN) RETURNS (Q) |
DFFE | FUNCTION DFFE (D, CLK, CLRN, PRN, ENA) RETURNS (Q) |
TFF | FUNCTION TFF (T, CLK, CLRN, PRN) RETURNS (Q) |
TFFE | FUNCTION TFFE (T, CLK, CLRN, PRN, ENA) RETURNS (Q) |
JKFF | FUNCTION JKFF (J, K, CLK, CLRN, PRN) RETURNS (Q) |
JKFFE | FUNCTION JKFFE (J, K, CLK, CLRN, PRN, ENA) RETURNS (Q) |
SRFF | FUNCTION SRFF (S, R, CLK, CLRN, PRN) RETURNS (Q) |
SRFFE | FUNCTION SRFFE (S, R, CLK, CLRN, PRN, ENA) RETURNS (Q) |
LATCH | FUNCTION LATCH (D, ENA) RETURNS (Q) |
Виводи тригерів:
D, T, J, K, S, R – інформаційні входи;
CLK – вхід тактового сигналу (активний перепад 0->1);
CLRN – вхід асинхронного скидання тригера (активний рівень – логічний нуль);
PRN – вхід асинхронного встановлення тригера (активний рівень – логічний нуль);
ENA – вхід дозволу роботи (активний рівень – логічна одиниця).
7.1.5 Програма реалізації тригерів в інтегрованому середовищі MAX+PLUS II
Програма для реалізації тригерів за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:Title "triggers";
Subdesign triggers
(
D,T,J,K,S,R,CLK,CLRN,PRN,ENA : input;
Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9 : output;
)
Begin
Q1 = DFF(D,CLK,CLRN,PRN); Q2 = DFFE (D,CLK,CLRN,PRN,ENA);
Q3 = TFF (T,CLK,CLRN,PRN); Q4 = TFFE (T, CLK, CLRN, PRN, ENA);
Q5 = JKFF (J, K, CLK, CLRN, PRN);
Q6 = JKFFE (J,K, CLK, CLRN, PRN, ENA);
Q7 = SRFF (S, R, CLK, CLRN, PRN);
Q8 = SRFFE (S, R, CLK, CLRN, PRN, ENA);
Q9 = LATCH (D, ENA);
End;
7.1.6 Результати програмної реалізації тригерів
На рис. 7.1.11 зображено вікно сигнального редактору проекту “triggers”.
Рис.7.1.11. Результати тестування RS-, D-, JK-тригерів
7.2 Теоретичні відомості про регістри
7.2.1 Послідовні регістри зсуву
Схема одного з типових регістрів зсуву подана на рис. 7.2.1. Цей регістр реалізований на 4 D-тригерах. Такий регістр має назву 4-розрядний регістр зсуву, оскільки він дозволяє зберігати 4 двійкових розряди даних А, B, C, D.
Рис.7.2.1. 4-розрядний послідовний регістр зсуву
За допомогою табл. 7.2.1 і рис. 7.2.1 ми маємо можливість спостерігати за роботою цього пристрою. Спочатку очистимо регістр (встановимо рівні логічного нуля на його виходах А, B, C, D). Для цього потрібно подати логічний 0 на вхід очищення CLR. Отриманому стану регістра зсуву відповідає рядок 1 табл. 7.2.1 До приходу тактового імпульсу виходи регістру залишаються в стані 0000. Подамо перший імпульс на синхронізуючий вхід CLK; індикатор покаже число 1000 (рядок 3 в табл. 7.2.1), оскільки на тактовому імпульсі логічна 1 з інформаційного входу тригера TA переноситься на його логічний вихід Q. Тепер при наявності логічної 1 на інформаційному вході регістру ця одиниця з кожним тактовим імпульсом вводиться в розряд А, а введені раніше одиниці зсуваються на одну позицію (розряд) вправо (тактові імпульси 2 і 3 в табл. 7.2.1). Таким самим чином при подачі на інформаційний вхід логічного 0 цей нуль при кожному тактовому імпульсі вводиться в розряд А, а введені раніше одиниці та нулі зсуваються вправо (тактові імпульси 4-8 в табл. 7.2.1). Перед приходом тактового імпульсу 9 на інформаційному вході встановлюється 1, а перед приходом імпульсу 10 цей вхід повертається до 0. В час дії тактових імпульсів 9-13 введена в регістр на імпульсі 9 одиниця буде зміщуватись на індикаторі вправо. Рядок 15 в табл. 7.2.1 показує, на імпульсі 13 ця одиниця покидає крайній правий розряд регістру зсуву і втрачається.
Табл.7.2.1. Робота 4-розрядного регістру зсуву
Входи | Виходи | ||||||
Номер рядка | Очищення | Дані | Номер тактового імпульсу | TА | TB | TC | TD |
А | B | C | D | ||||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
3 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
4 | 1 | 1 | 2 | 1 | 1 | 0 | 0 |
5 | 1 | 1 | 3 | 1 | 1 | 1 | 0 |
6 | 1 | 0 | 4 | 0 | 1 | 1 | 1 |
7 | 1 | 0 | 5 | 0 | 0 | 1 | 1 |
8 | 1 | 0 | 6 | 0 | 0 | 0 | 1 |
9 | 1 | 0 | 7 | 0 | 0 | 0 | 0 |
10 | 1 | 0 | 8 | 0 | 0 | 0 | 0 |
11 | 1 | 1 | 9 | 1 | 0 | 0 | 0 |
12 | 1 | 0 | 10 | 0 | 1 | 0 | 0 |
13 | 1 | 0 | 11 | 0 | 0 | 1 | 0 |
14 | 1 | 0 | 12 | 0 | 0 | 0 | 1 |
15 | 1 | 0 | 13 | 0 | 0 | 0 | 0 |
Нагадаємо, що D-тригер називають також тригером з затримкою. Він просто передає інформаційний сигнал з входу D на вихід Q з затримкою на один такт.
Прилад, схема якого приведена на рис. 7.2.1 має назву послідовного регістру зсуву. Термін “послідовний” відображає той факт, що в цей регістр дані вводяться порозрядно. Наприклад, щоб ввести в регістр двійкову комбінацію 0111 треба пройти всю послідовність станів від рядка 1 до рядка 6 в табл. 7.2.1. Послідовне завантаження 4-бітової комбінації 0111 в послідовний регістр відбувається за 5 тактів (рядок 2 можливо виключити).
Інший спосіб завантаження регістру – паралельне (або розширене) завантаження, при якому всі інформаційні біти вводяться в регістр одночасно “за командою” одного тактового імпульсу.
Регістр зсуву на рис. 7.2.1 можливо трансформувати в 5-розрядний, додав до схеми ще один D-тригер. Регістри зсуву частіше бувають 4-, 5- або 8-розрядними. В них можливо використання не тільки D-тригеру, але й тригерів іншого типу (наприклад, JK-тригера, або синхронних RS-тригерів).
7.2.2 Паралельні регістри зсуву
Послідовний регістр зсуву, робота якого описана вище має два суттєві недоліки: він дозволяє вводити тільки по одному біту інформації на кожному тактовому імпульсі і, крім того, кожний раз при зсуві вправо втрачається крайній правий біт.
На рис. 7.2.2 показана схема 4-розрядного паралельного кільцевого регістру. Входи A, B, C, D вданому приладі є інформаційними.
Цю систему можливо спорядити ще однією корисною характеристикою – можливістю кільцевого переміщення інформації, коли дані з входу приладу повертаються на його вхід і не втрачаються.
В даному регістрі зсуву використовуються чотири JK-тригери. Треба звернути увагу на зворотній зв’язок виходу тригера TD та входів J і K тригера ТА. Завдяки цьому ланцюгу зворотного зв’язку введена в регістр інформація, яка звично втрачається на виході тригеру TD, буде циркулювати по регістру зсуву. Сигналом очищення регістру (встановлення його виходів в стан 0000) є рівень логічного нуля на вході CLR.