скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыДипломная работа: Розробка цифрових засобів ПЛІС в інтегрованому середовищі проектування MAX+PLUS II

Рис. 7.3.1. Логічна схема лічильника за модулем 16

Роботу лічильника за модулем 16 ілюструють часов діаграми на рис. 7.3.2. Синхронізуючому входу відповідає верхня діаграма. Діаграми для виходів Q регістрів Т4, Т3, Т2, Т1 наведено нижче.

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

Ми бачимо, що зміна станів послідовно проходить по ланцюжку тригерів. Тому лічильник, що ми розглядаємо має назву лічильника з крізним переносом.


Рис. 7.3.2. Часова діаграма лічильника за модулем 16

Лічильник, функціональна схема якого показана на рис. 7.3.1, можливо назвати не тільки лічильником з крізним переносом, але й лічильником за модулем 16, 4-розрядним лічильником або асинхронним лічильником. Кожна з назв характеризує розглядувану схему з якогось одного боку.

Визначення “з крізним переносом асинхронний” говорять про те, що запуск тригерів відбувається не в один і той же час. Назва “лічильник за модулем 16” віддзеркалює число різних станів, що проходяться” лічильником за один повний цикл лічби. Визначення “4-розрядний вказує на число двійкових розрядів на виході лічильника.

7.3.2 Асинхронний лічильник з модулем 10

Лічильник за модулем 10 рахує від 0000 до 1001 (від 0 до 9 в десятковій системі), тобто перші 10 комбінацій в табл. 7.3.1. Ми бачимо, що для цього потрібно чотири двійкових розряди: розряд одиниць, розряд двійок, розряд четвірок і розряд вісімок.

Рис. 7.3.3. Логічна схема лічильника за модулем 10


Такий лічильник можливо реалізувати на чотирьох тригерах, з’єднаних по схемі описаного вище асинхронного лічильника. В схему потрібно додатково ввести логічний елемент І-НЕ (рис. 7.3.3) для встановлення всіх тригерів в нульовий стан, очищення лічильника, з приходом десятого імпульсу (тобто з приходом першого імпульсу після того, як лічильник нарахував до 1001 9 в десятковій системі).

Принцип використання такого логічного елемента стає зрозумілим якщо розглянути яке двійкове число настає за 1001. З табл. 7.3.1 видно, що цим числом є 1010 (10 в десятковій системі). При поданн логічної 1 , що міститься в розрядах двійок і вісімок двійкового числа 1010, на входи логічного елемента І-НЕ (як показано на рис. 7.3.3), цей елемент встановить всі тригери в стан 0. Лічильник почне рахувати від 0000 до 1001. Таким чином, логічний елемент І-НЕ забезпечує встановлення лічильника в стан 0000. Подібне використання логічного елемента І-НЕ дозволяє створити лічильники з деякими іншими значеннями модуля. На рис. 7.3.3 показано функціональну схему асинхронного лічильника за модулем 10. Цей лічильник можливо також назвати декадним (десятковим) лічильником.

7.3.3 Лічильник віднімання

Вище було описано лічильники, що рахують в прямому напрямку (0, 1, 2,...). Однак в деяких цифрових системах з’являється необхідність рахування в зворотному напрямку (9, 8, 7, 6,...). Лічильники, як рахують від більших чисел до менших називають лічильниками віднімання, або лічильниками зворотної дії.

Схема асинхронного лічильника віднімання за модулем 8 показано на рис. 7.3.4, відповідна відлікова послідовність чисел наведена в табл. 7.3.2.


Рис. 7.3.4. Логічна схема асинхронного 3-розрядного лічильника віднімання

Табл. 7.3.2. Відлікова послідовність для 3-розрядного лічильника віднімання

Номер

тактового імпульсу

Двійкова відлікова послідовність Десяткові числа
Т3 Т2 Т1
0 1 1 1 7
1 1 1 0 6
2 1 0 1 5
3 1 0 0 4
4 0 1 1 3
5 0 1 0 2
6 0 0 1 1
7 0 0 0 0
8 1 1 1 7
9 1 1 0 6

Треба звернути увагу на те, що схема лічильника віднімання нагадує схему лічильника прямої дії на рис. 7.3.1. Єдиною відмінністю є спосіб переносу від тригера Т1 до тригера Т2 і від тригера Т2 до тригера Т3. В лічильнику прямої дії синхронізуючий вхід кожного тригера пов’язаний з інверсним виходом Q попереднього тригера. Зауважимо, що в лічильнику відліку перед початком відліку в зворотному напрямку передбачене його попереднє встановлення в стан 111 (деcяткове число 7) за допомогою входу предвстановлення (PRN). Тригер Т3 – двійковий лічильник розряду одиниць (стовпець T1). Тригер Т2 – лічильник розряду двійок (стовпець T2). Тригер Т3 лічильник розряду четвірок (стовпець T3).


7.3.4 Програми реалізації лічильників в інтегрованому середовищі MAX+PLUS II

Програма для реалізації 4-розрядного асинхронного лічильника з крізним переносом за модулем 16 за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

title "counter1";

parameters

(WIDTH = 4); - встановлення розрядності лічильника

assert (WIDTH > 0) - перевірка розрядност лічильника

report "Value of WIDTH parameter must be greater then %" WIDTH

severity error;

subdesign counter1

(

CLK : input; - імпульси синхронізації (CLK) лічильника

RESET : input; - імпульси зкидання (CLRN) тригерів лічильника

SET : input; - імпульси предвстановлеення (PRN) тригерів лічильника

O [WIDTH..1] : output; - вихід лічильника

)

variable

TRIGGER [WIDTH..1] : JKFF;

begin

TRIGGER [WIDTH..1].j = vcc;

TRIGGER [WIDTH..1].k = vcc;

TRIGGER [WIDTH..1].clrn = !RESET;

TRIGGER [WIDTH..1].prn = !SET;

TRIGGER [WIDTH].clk = !CLK;

TRIGGER [WIDTH-1..1].clk = !TRIGGER [WIDTH..2].q;

O [WIDTH..1] = TRIGGER [1..WIDTH].q;

end;

Програма для реалізації асинхронного лічильника за модулем 10 за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:

title "counter2";

parameters

(WIDTH = 4); - встановлення розрядності лічильника

assert (WIDTH > 0) - перевірка розрядност лічильника

report "Value of WIDTH parameter must be greater then %" WIDTH

severity error;

subdesign counter2

(

CLK : input; - імпульси синхронізації (CLK) лічильника

SET : input; - імпульси предвстановлення (PRN) тригерів лічильника

O [WIDTH..1] : output; - вихід лічильника

)

variable

TRIGGER [WIDTH..1] : JKFF;

begin

TRIGGER [WIDTH..1].j = vcc;

TRIGGER [WIDTH..1].k = vcc;

TRIGGER [WIDTH..1].prn = !SET;

TRIGGER [WIDTH].clk = !CLK;

TRIGGER [WIDTH-1..1].clk = !TRIGGER [WIDTH..2].q;

TRIGGER [WIDTH..1].clrn = (TRIGGER [3].q !& TRIGGER [1].q);

O [WIDTH..1] = TRIGGER [1..WIDTH].q;

end;

Програма для реалізації 3-розрядного лічильника віднімання за допомогою мови AHDL в інтегрованому середовищ MAX+PLUS II має наступний вигляд:

title "counter3";

parameters

(WIDTH = 3); - встановлення розрядності лічильника

assert (WIDTH > 0) - перевірка розрядност лічильника

report "Value of WIDTH parameter must be greater then %" WIDTH

severity Error;

subdesign counter3

(

CLK : input; - імпульси синхронізації (CLK) лічильника

RESET : input; - імпульси зкидання (CLRN) тригерів лічильника

SET : input; - імпульси предвстановлення (PRN) тригерів лічильника

O[WIDTH..1] : output; - вихід лічильника

)

variable

TRIGGER[WIDTH..1] : JKFF;

begin

TRIGGER [WIDTH..1].j = vcc;

TRIGGER [WIDTH..1].k = vcc;

TRIGGER [WIDTH..1].clrn = !RESET;

TRIGGER [WIDTH..1].prn = !SET;

TRIGGER [WIDTH..1].clk = (CLK, !TRIGGER [WIDTH..2].q);

O [WIDTH..1] = !TRIGGER [1..WIDTH].q;

end;

Програма для реалізації 3-розрядного універсального лічильника за допомогою мови AHDL в інтегрованому середовищ MAX+PLUS II має наступний вигляд:

title "counter4";

parameters

(WIDTH = 3); - встановлення розрядності лічильника

assert (WIDTH > 0) - перевірка розрядност лічильника

report "Value of WIDTH parameter must be greater then %" WIDTH

severity Error;

subdesign counter4

(

CLK : input; - імпульси синхронізації (CLK) лічильника

SET : input; - імпульси предвстановлення (PRN) тригерів лічильника

RESET : input; - імпульси зкидання (CLRN) тригерів лічильника

FWC : input;

BWC : input;

O[WIDTH..1] : output; - вихід лічильника

)

variable

TRIGGER[WIDTH..1] : JKFF;

begin

TRIGGER[].j = vcc;

TRIGGER[].k = vcc;

TRIGGER[].prn = !SET;

TRIGGER[].clrn = !RESET;

TRIGGER[WIDTH].clk = !CLK;

TRIGGER[WIDTH-1..1].clk = !((TRIGGER[WIDTH..2].q & !FWC) & !(!TRIGGER[WIDTH..2].q & !BWC));

O[WIDTH..1] = TRIGGER[1..WIDTH].q;

end;

- Примітка:

- Значення входів, що відповідают вставленню відліку лічильника в

- зростаючому напрямку:

- FWC = 1;

- BWC = 0.

- Значення входів, що відповідают вставленню відліку лічильника в

- спадаючому напрямку:

- FWC = 0;

- BWC = 1.

7.3.5 Результати програмної реалізації лічильників

На рис. 7.3.5 зображено вікно сигнального редактору проекту “counter1”.

Рис 7.3.5. Результати тестування 4-розрядного асинхронного лічильника з крізним переносом за модулем 16

На рис. 7.3.6 зображено вікно сигнального редактору проекту “counter2”.

Рис 7.3.6. Результати тестування асинхронного лічильника за модулем 10

На рис. 7.3.7 зображено вікно сигнального редактору проекту “counter3”.


Рис 7.3.7. Результати тестування 3-розрядного синхронного лічильника

На рис. 7.3.8 зображено вікно сигнального редактору проекту “counter4”.

Рис 7.3.8. Результати тестування 3-розрядного універсального лічильника

7.4 Теоретичн відомості про мультиплексори, демультиплексори, шифратори, дешифратори

7.4.1 Мультиплексор

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

Типове використання мультиплексорів – передача даних від кількох рознесених в просторі джерел інформації на вхід приймача. Припустимо, вимірюється температура навколишнього середовища в кількох приміщеннях й результати цих вимірів повинн бути виведені на ЕОМ. При цьому, так як температура змінюється повільно, для отримання достатньої точності зовсім не обов’язково виміряти її постійно. А достатньо мати виміри, проведені через деякі фіксовані проміжки часу. Головне, щоб проміжки між двома вимірами були суттєво менші за сталу часу, що характеризує зміну температури в приміщенні, яке контролюється. Саме цю функцію, тобто підключення різних джерел інформації до одного приймача, за заданою командою, і виконує мультиплексор. Інформацію, рознесену в просторі, він перетворює до вигляду з розділом в часі.

Відповідно до визначення, мультиплексор повинен мати один вихід і дві групи входів: нформаційні і адресні. Код, що подається на адресні входи, визначає, який з нформаційних входів в даний момент підключений до вихідного виводу. Оскільки n-розрядний двійковий код може приймати 2n значень, то, якщо число адресних входів мультиплексора дорівнює n, то число його інформаційних входів повинно дорівнювати 2n.

Таблиця дійсності, що відображає роботу мультиплексора з двома адресними входами має наступний вигляд (табл. 7.4.1).

Табл. 7.4.1. Таблиця дійсності для мультиплексора з двома адресними входами

E

A1

A0

Q

1 х x 0 1
0 0 0

D0

0 0 1

D1

0 1 0

D2

0 1 1

D3


В даній таблиц враховано, що мультиплексор зазвичай має додатковий інверсний вихід і вхід дозволу роботи Е (в програмах мовою AHDL вхід дозволу роботи, по прикладу примітивів тригерів, має ім’я ENA). Якщо на вхід дозволу роботи Е подається активний логічний сигнал (Е=1), вихідний сигнал мультиплексора постійний і не залежить від його вхідних сигналів.

Функція алгебри логіки, що описує роботу мультиплексора має вид:

. (1)

Логічна схема мультиплексора, що відповідає наведеній функції алгебри логіки та умовне позначення мультиплексора на прикладі ІС (інтегральна схема) 555КП7 показані на рис. 7.4.1 а, б.

 

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.