48898 (588620), страница 8
Текст из файла (страница 8)
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 а, б.
а) б)
Рис. 7.4.1. Логічна схема мультиплексора (а) і його умовне графічне позначення (б)
При передачі інформації від кількох джерел по звичайному каналу з розподілом в часі потрібні не тільки мультиплексори, але й пристрої оберненого призначення, що розподіляють інформацію, отриману з одного каналу поміж кількох приймачів. Таку задачу вирішують демультиплексори.
В інтегрованому середовищі MAX+PLUS II за допомогою мови AHDL мультиплексор може бути описаний двома методами:
-
таблицею дійсності;
-
на поведінковому рівні.
Описання пристрою за допомогою таблиці дійсності найбільш просте, адже вимагає знання проектувальником лише таблиці дійсності мультиплексора. Об’єм отриманої програми, порівняно з об’ємом програми описання на поведінковому рівні, має значно менший розмір, але архітектура (логічна схема) самого пристрою залишається проектувальнику невідомою.
Фахівець обирає метод описання виходячи з технічного завдання, заданого об’єму програми, кількості елементарних вентилів на мікросхемі та власного досвіду.
В даній дипломній роботі приклади описання мультиплексора, що має два адресних, чотири інформаційних входи і один вхід дозволу роботи наведено і за допомогою таблиці дійсності, і на поведінковому рівні.
7.4.2 Демультиплексор
Демультиплексором називається комбінаційний логічний пристрій, призначений для керування передачею даних від одного джерела інформації до декількох вихідних каналів. Відповідно до визначення, демультиплексор в загальному випадку має один інформаційний вхід, n адресних входів і 2n виходів. Таблиця дійсності, що описує роботу демультиплексора з двома адресними входами і входом дозволу роботи Е, має вид (табл. 7.4.2):
Табл.7.4.2. Таблиця дійсності для демультиплексора з двома адресними входами
E | A1 | A0 | Q0 | Q1 | Q2 | Q3 |
1 | x | X | 0 | 0 | 0 | 0 |
0 | 0 | 0 | D | 0 | 0 | 0 |
0 | 0 | 1 | 0 | D | 0 | 0 |
0 | 1 | 0 | 0 | 0 | D | 0 |
0 | 1 | 1 | 0 | 0 | 0 | D |
Даній таблиці відповідає наступна функція алгебри логіки:
(2)