Розробка цифрових засобiв ПЛРЖС в iнтегрованому середовищi проектування MAX+PLUS II
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
i з входу приладу повертаються на його вхiд i не втрачаються.
В даному регiстрi зсуву використовуються чотири JK-тригери. Треба звернути увагу на зворотнiй звязок виходу тригера TD та входiв J i K тригера ТА. Завдяки цьому ланцюгу зворотного звязку введена в регiстр iнформацiя, яка звично втрачаСФться на виходi тригеру TD, буде циркулювати по регiстру зсуву. Сигналом очищення регiстру (встановлення його виходiв в стан 0000) СФ рiвень логiчного нуля на входi CLR.
Входи паралельного завантаження A, B, C, D повязанi з входами попереднього встановлення тригерiв PRN, що дозволяСФ встановлювати рiвень логiчноСЧ одиницi на будь-якому виходi (A, B, C, D). Якщо на один з цих входiв подати логiчний 0, то на вiдповiдному виходi буде логiчна 1. Подача тактових iмпульсiв на входи CLK всiх JK-тригерiв призводить до зсуву iнформацiСЧ в регiстрi вправо. З тригеру TD данi передаються в тригер ТА (кiльцеве перемiщення iнформацiСЧ).
Табл. 7.2.2. Робота 4-розрядного паралельного кiльцевого регiстру зсуву
ВходиВиходиНомер рядкаОчищенняПаралельне завантаження данихНомер тактового iмпульсуTАTBTCTDABCDАBCD11111101110201111000003110110010041111110010511111200016111113100071111140100811111500109011110000101100101101111111600111211111710011311111811001411111901101511111100011
Табл. 7.2.2 допомагаСФ зрозумiти принцип роботи паралельного регiстру зсуву. При включеннi живлення на виходах регiстру встановлюСФться будь-яка двiйкова комбiнацiя, така, наприклад як в рядку 1 таблицi 7.2.2. Подача логiчного 0 на входи CLR тригерiв iнiцiюСФ очищення регiстру (рядок 2). Далi (рядок 3) вiдбуваСФться завантаження в регiстр двiйковоСЧ комбiнацiСЧ 0100. Послiдовнi тактовi iмпульси викликають зсув введеноСЧ iнформацiСЧ вправо (рядки 4-8). Треба звернути увагу на рядки 5 i 6: одиниця з крайнього правого тригеру TD переноситься в крайнiй лiвий тригер ТА. В даному випадку можливо говорити про кiльцеве перемiщення одиницi в регiстрi.
Далi (рядок 9) заново iнiцiюСФться очищення регiстру за допомогою входу CLR. ЗавантажуСФться нова двiйкова комбiнацiя 0110 (рядок 10). Подача 5 тактових iмпульсiв (рядки 11-15) призводить до кiльцевого зсуву iнформацiСЧ на 5 позицiй вправо. Треба звернути увагу, що для повернення даних в початковий стан потрiбно 4 тактових iмпульси. Якщо в регiстрi зсуву на рис. 2.2 розiрвати ланцюг зворотного звязку, то ми отримаСФмо звичайний паралельний регiстр зсуву; можливiсть кiльцевого перемiщення даних буде виключена.
7.2.3 Програма реалiзацiСЧ регiстрiв в iнтегрованому середовищi MAX+PLUS II
Програма для реалiзацiСЧ 4-розрядного послiдовного регiстру зсуву за допомогою мови AHDL в iнтегрованому середовищi MAX+PLUS II маСФ наступний вигляд:
Title "register1";
Parameters
(WIDTH = 4); - встановлення розрядностi регiстру
Assert (WIDTH > 0) - перевiрка розрядностi регiстру на вiдмiннiсть вiд 0
Report "Value of WIDTH parameter must be greater then %" WIDTH
Severity Error;
Subdesign register1
(
D_INPUT, SET, RESET : input = GND; - вхiднi сигнали
CLK : input; - вхiд синхронiзацiСЧ
ENABLE : input = VCC; - вхiд дозволу роботи
Q_OUTPUT : output; - вихiднi сигнали
)
Variable
FF[WIDTH..1] : DFFE; - обява змiнноСЧ FF, що належить до класу DFFE
Begin
FF[].clk = CLK;
FF[].prn = !SET;
FF[].clrn = !RESET;
FF[].ena = ENABLE;
FF[].d = (FF[WIDTH-1..1].q, D_INPUT);
Q_OUTPUT = FF[WIDTH].q;
End;
- Примiтка: на часовiй дiаграммi:
- FF - двiйкове число на виходi регiстру
Програма для реалiзацiСЧ 4-розрядного паралельного кiльцевого регiстру зсуву за допомогою мови AHDL в iнтегрованому середовищi MAX+PLUS II маСФ наступний вигляд:
Subdesign register2
Parameters
(WIDTH = 4); - встановлення розрядностi регiстру
Assert (WIDTH > 0) - перевiрка розрядностi тригера (бiльша вiд нуля)
Report "Value of WIDTH parameter must be greater then %" WIDTH
Severity Error;
(
I[WIDTH..1] : input = VCC; - вхiднi сигнали (данi)
CLK : input;
RESET : input;
O[WIDTH..1] : output; - вихiднi сигнали (данi)
)
Variable
FF[WIDTH..1] : JKFF; - обява змiнноСЧ FF, що належить до класу JKFF
Begin
FF[WIDTH..1].j = (FF[WIDTH-1..1].q, FF[WIDTH].q);
FF[WIDTH..1].k = (!FF[WIDTH-1..1].q, !FF[WIDTH].q);
FF[WIDTH..1].clk = CLK;
FF[WIDTH..1].clrn = !RESET;
FF[WIDTH..1].prn = I[WIDTH..1];
O[WIDTH..1] = FF[WIDTH..1].q;
End;
7.2.4 Результати програмноСЧ реалiзацiСЧ регiстрiв
На рис. 7.2.3 зображено вiкно сигнального редактору проекту тАЬregister1тАЭ.
Рис. 7.2.3. Результати тестування 4-розрядного послiдовного регiстру зсуву
На рис. 7.2.4 зображено вiкно сигнального редактору проекту тАЬregister2тАЭ.
Рис. 7.2.3. Результати тестування 4-розрядного паралельного кiльцевого регiстру зсуву
7.3 Теоретичнi вiдомостi про лiчильники
7.3.1 Лiчильник з крiзним переносом
Процедури двiйковоСЧ i десятковоСЧ лiчби iлюстровано в табл. 7.3.1. Використовуючи лише чотири двiйкових розряди (T4, T3, T2, T1), ми можемо рахувати вiд 0000 до 1111 (вiд 0 до 15 в десятеричнiй системi вiдлiку). Стовпчик T1 таблицi вiдповiдаСФ двiйковому розряду одиницi або самiй молодшiй значимiй цифрi. Зазвичай використовуСФться термiн тАЬсамий молодший розрядтАЭ. Стовпець T4 вiдповiдаСФ двiйковому розряду вiсiмок або старшiй значимiй цифрi. Зазвичай використовуСФться термiн тАЬсамий старший розрядтАЭ. Звернiть увагу, що в стовпцi одиниць цифри змiнюються найчастiше. Якщо вам потрiбний лiчильник, що рахуСФ вiд 0000 до 1111 в двiйковiй системi, у нього повинно бути 16 рiзних вихiдних станiв. Такий лiчильник маСФ назву лiчильник за модулем 16. Модуль лiчильника це число рiзних станiв, через якi проходить лiчильник в процесi одного повного циклу вiдлiку.
Табл. 7.3.1. Вiдлiкова послiдовнiсть для лiчильника за модулем 16
T4T3T2T1842100000000110010200113010040101501106011171000810019101010101111110012110113111014111115