Смекни!
smekni.com

Розробка цифрових засобів ПЛІС в інтегрованому середовищі проектування MAX+PLUS II (стр. 7 из 14)

7.1.4 JK-тригер

JK-тригер – це універсальний тригер, що має характеристики всіх інших типів тригерів. Умовне графічне позначення JK-тригеру подано на рис. 7.1.9. JK-тригер має два інформаційні входи: J і K, і вхід синхронізації CLK і, як і всі тригери два комплементарних виходи Q1 і Q2. Таблиця дійсності для JK-тригера приведена в табл. 7.1.4. Коли на обидва входи J і K подається рівень логічного 0, тригер блокується, і стан його виходів не змінюється. В цьому випадку тригер знаходиться в режимі збереження.


Рис. 7.1.9. Умовне графічне позначення JK-тригеру

Табл. 7.1.4. Таблиця дійсності JK-тригеру

Режим роботи Входи Виходи
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-розрядного регістру зсуву

Входи Виходи
Номер рядка Очищення Дані Номер тактового імпульсу 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 вданому приладі є інформаційними.


Рис. 7.2.2. 4-розрядний паралельний кільцевий регістр зсуву

Цю систему можливо спорядити ще однією корисною характеристикою – можливістю кільцевого переміщення інформації, коли дані з входу приладу повертаються на його вхід і не втрачаються.

В даному регістрі зсуву використовуються чотири JK-тригери. Треба звернути увагу на зворотній зв’язок виходу тригера TD та входів J і K тригера ТА. Завдяки цьому ланцюгу зворотного зв’язку введена в регістр інформація, яка звично втрачається на виході тригеру TD, буде циркулювати по регістру зсуву. Сигналом очищення регістру (встановлення його виходів в стан 0000) є рівень логічного нуля на вході CLR.