48898 (588620), страница 10
Текст из файла (страница 10)
Програма для реалізації шифратора 10 на 4 (опис таблицею дійсності шифратора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
Subdesign shifrator1
(
XIP[9..0] : input; - вхідні сигнали
QOP[3..0] : output; - вихідні сигнали
)
Begin
Table
XIP[] => QOP[];
b"0000000001" => b"0000";
b"0000000010" => b"0001";
b"0000000100" => b"0010";
b"0000001000" => b"0011";
b"0000010000" => b"0100";
b"0000100000" => b"0101";
b"0001000000" => b"0110";
b"0010000000" => b"0111";
b"0100000000" => b"1000";
b"1000000000" => b"1001";
End table;
End;
Програма для реалізації шифратора 10 на 4 (опис на поведінковому рівні шифратора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
Subdesign shifrator2
(
XIP[9..0] : input; - вхідні сигнали
QOP[3..0] : output; - вихідні сигнали
)
Begin
QOP[3]= XIP[8] + XIP[9];
QOP[2]= XIP[4] + XIP[5] + XIP[6] + XIP[7];
QOP[1]= XIP[2] + XIP[3] + XIP[6] + XIP[7];
QOP[0]= XIP[1] + XIP[3] + XIP[5]+ XIP[7] + XIP[9];
End;
Програма для реалізації 3-розрядного дешифратора з інверсними виходами за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
subdesign decipherer1
(
XIP[3..1] : input; - вхідні сигнали
QOP[7..0] : output; - вихідні сигнали
)
begin
case XIP[] is
when 0 => QOP = b"11111110";
when 1 => QOP = b"11111101";
when 2 => QOP = b"11111011";
when 3 => QOP = b"11110111";
when 4 => QOP = b"11101111";
when 5 => QOP = b"11011111";
when 6 => QOP = b"10111111";
when 7 => QOP = b"01111111";
end case;
end;
Програма для реалізації мультиплексора з 2 адресними входами, 4 інформаційними і входом дозволу роботи (опис емульованою таблицею дійсності мультиплексора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
subdesign multiplexer1
(
INFIN[4..1] : input; - інформаційні входи
ADRIN[2..1] : input; - адресні входи
ENA : input; - вхід дозволу роботи (вхід стробування)
Q : output; - вихід мультиплексора
)
begin
if ENA == 0 then - емуляція таблиці дійсності
case ADRIN[2..1] is
when 0 => Q = INFIN[1];
when 1 => Q = INFIN[2];
when 2 => Q = INFIN[3];
when 3 => Q = INFIN[4];
end case;
end if;
end;
- Примітка: компілятор AHDL не дозволяє присутності в
- таблиці дійсності змінних (параметрів), навіть якщо
- змінним (параметрам) раніше вже присвоєне фіксоване
- значення. Тому за логікою таблиці дійсності, на основі
- оператору вибору CASE, формується послідовність перевірки
- значень вхідних сигналів системи.
Програма для реалізації мультиплексора з 2 адресними входами, 4 інформаційними і входом дозволу роботи (опис на поведінковому рівні мультиплексора) за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
subdesign multiplexer2
(
INFIN[4..1] : input; - інформаційні входи
ADRIN[2..1] : input; - адресні входи
ENA : input; - вхід дозволу роботи (вхід стробування)
Q : output; - вихід мультиплексора
)
begin
Q = INFIN[1] & !ADRIN[2] & !ADRIN[1] & !ENA #
INFIN[2] & !ADRIN[2] & ADRIN[1] & !ENA #
INFIN[3] & ADRIN[2] & !ADRIN[1] & !ENA #
INFIN[4] & ADRIN[2] & ADRIN[1] & !ENA;
end;
- Примітка: Q - функція алгебри логіки, що описує роботу мультиплексора.
Програма для реалізації демультиплексора з 3 адресними входами, 1 інформаційним і входом дозволу роботи за допомогою мови AHDL в інтегрованому середовищі MAX+PLUS II має наступний вигляд:
subdesign demultiplexer1
(
ADRIN[3..1] : input; - адресний вхід
INFIN : input; - інформаційний вхід
ENA : input; - вхід дозволу роботи (вхід стробування)
Q[7..0] : output; - виходи демультиплексора
)
begin
if ENA == 0 then
case ADRIN[] is
when 0 => Q[0] = INFIN;
when 1 => Q[1] = INFIN;
when 2 => Q[2] = INFIN;
when 3 => Q[3] = INFIN;
when 4 => Q[4] = INFIN;
when 5 => Q[5] = INFIN;
when 6 => Q[6] = INFIN;
when 7 => Q[7] = INFIN;
end case;
end if;
end;
7.4.6 Результати програмної реалізації мультиплексорів, демультиплексорів, шифраторів, дешифраторів
На рис. 7.4.7 зображено вікно сигнального редактору проекту “shifrator1”.
Рис.7.4.7. Результати тестування шифратора 10 на 4
На рис. 7.4.8 зображено вікно сигнального редактору проекту “decipherer1”.
Рис. 7.4.8. Результати тестування повного 3-розрядного дешифратора з інверсними виходами
На рис. 7.4.9 зображено вікно сигнального редактору проекту “multiplexer2”.
Рис. 7.4.9. Результати тестування мультиплексора з 2 адресними входами, 4 інформаційними і входом дозволу роботи
На рис. 7.4.10 зображено вікно сигнального редактору проекту “demultiplexer1”.
Рис. 7.4.10. Результати тестування демультиплексора з 3 адресними входами,1 інформаційним і входом дозволу роботи
7.5 Теоретичні відомості про суматори, віднімані
7.5.1 Суматори
Крайній лівий розряд двійкового числа, такого, наприклад, як 101011, називають самим старшим розрядом (ССР), а крайній правий розряд – самим молодшим розрядом (СМР). Нагадаємо, що розряди представленого двійкового числа в порядку зростання старшинства мають ваги (зправа налiво) 1, 2, 4, 8, 16, 32.
Оскільки в двійкових числах присутні лише дві цифри (0 і 1), таблиця додавання досить проста. Вона приведена на рис. 7.5.1. Як і в випадку додавання десяткових чисел, три перших результати не викликають питань. Що стосується останньої задачі (1+1), то при складанні десяткових чисел в даному випадку відповіддю було б число 2. Таким чином, при двійковому додаванні 1+1=0 плюс перенос 1 в сусідній старший двійковий розряд.
Рис. 7.5.1. Таблиця двійкового додавання
Ще один приклад на складання двійкових чисел представлено на рис. 7.5.2,а.
а)
б)

Рис. 7.5.2. Двійкове додавання а) – приклад на двійкове додавання; б) - скорочена форма таблиці двійкового додавання
Рішення виглядає простим, доки ми не доходимо до розряду двійок, де треба знайти двійкову суму. В десятковій системі ця сума дорівнює 3, що відповідає числу 11. Цей випадок не відображений на рис. 7.5.1. Сума 1+1+1 може виникнути в будь-якому розряді, за винятком розряду одиниць. В нову (скорочену) таблицю на рис. 7.5.2,б включена ще одна можлива комбінація 1+1+1.
Ця таблиця справедлива для всіх розрядів двійкових чисел, за виключенням розряду одиниць.
У відповідній таблиці дійсності (табл. 7.5.1) надано всі можливі комбінації двійкових однорозрядних доданків А, В і сигналу переносу Сin.
Табл.7.5.1. Таблиця дійсності повного суматора
Входи | Виходи | |||
Сin | В | А | С0 | |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Перенос + В + А | Сума | Перенос |
Повні суматори використовуються для складання всіх двійкових розрядів за виключенням одиниць. Вони повинні мати додатковий вхід переносу.
Повний суматор – 3-входова схема. Сигнали на його виходах і С0 отримуються внаслідок складання трьох вхідних сигналів (на входах А, В і Сin).
На рис. 7.5.3 показана розгорнута логічна схема повного суматора. Вона основана на структурній схемі з двома напівсуматорами.
Рис.7. 5.3. Логічна схема повного суматора
На рис. 7.5.4. приведена інша схема повного суматора з використанням двох логічних елементів виключного АБО і трьох логічних елементів І-НЕ. Зазначимо, що схеми, приведені на рис. 7.5.3. і 7.5.4. відрізняються лише заміною логічних елементів І та АБО на логічні елементи І-НЕ.
Рис. 7.5.4. Логічна схема повного суматора з використанням виключного АБО та І-НЕ
Напівсуматори і суматори зазвичай використовують разом. Велика кількість схем, аналогічних до напівсуматорів і повних суматорів, є в складі мікропроцесорних арифметично-логічних приладів (АЛП). Мікропроцесорні АЛП можуть виконувати і операції віднімання, при цьому використовуються ті ж самі напівсуматори і суматори.
Певним чином поєднуючи між собою напівсуматори та повні суматори отримують пристрої, що одночасно виконують додавання декількох двійкових розрядів. Пристрій, схема якого показана на рис. 7.5.5. виконує операцію додавання двох 3-розрядних чисел. Числа-доданки А2А1А0 і В2В1В0. Сигнали, що відповідають значенням розряду одиниць в доданках, поступають на вхід суматора розряду одиниць (напівсуматора). Вхідними сигналами для повного суматора розряду двійок є сигнал переноса з виходу напівсуматора (подається на вхід Сin) і значення А1 і В1 розряду двійок і доданків. Далі суматор четвірок складає А2 і В2 і сигнал переносу з суматора двійок. На двійковому виході пристрою (показано в правому нижньому куті рис. 7.5.5) встановлюється двійкова сума.
В результаті додавання двох 3-розрядних двійкових чисел можливо отримати 4-розрядне число, тому на індикаторі суми маємо додатковий розряд вісімок. Зверніть увагу, що даний розряд пов’язаний з виходом (С0) суматора четвірок.
Рис. 7.5.5. 3-розрядний паралельний суматор
Логіка роботи розглядуваного 3-розрядного суматора майже не відрізняється від послідовності операцій , що виконуються при додаванні вручну (додаванні однорозрядних чисел плюс перенос в наступний розряд). Однак електронний суматор виконує дані операції набагато швидше.
Ще раз зазначимо, що в багаторозрядних суматорах напівсуматори використовуються лише для додавання в розряді одиниць; у всіх iнших розрядах використовуються повні суматори. Описаний вище 3-розрядний суматор називається паралельним суматором.