Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Муль-ри і демуль-ри_Лекц.doc
Скачиваний:
0
Добавлен:
21.02.2020
Размер:
2.24 Mб
Скачать

Конспект лекції

МУЛЬТИПЛЕКСОРИ І ДЕМУЛЬТИПЛЕКСОРИ

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

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

Рис. 1. Функціональна схема мультиплексора

Номер під’єднаного входу дорівнює числу (адресі), яке визначається комбінацією логічних значень на входах керування. Крім інформаційних входів і входів керування, схема мультиплексора містить вхід дозволу, при подачі на який активного рівня, мультиплексор переходить в пасивний стан, при якому сигнал на виході зберігає постійне значення незалежно від значення інформаційних і керуючих сигналів. Число інформаційних входів у мультиплексора, як правило, є 2, 4, 8 або 16. Якщо, наприклад, у мультиплексора 16 входів і до кожного із них під’єднано 16 джерел числових сигналів – генераторів послідовних цифрових слів, то байти із будь-якого із них можна передавати на єдиний вихід. Для вибору будь-якого із 16 каналів необхідно мати 4 входи вибору (24=16), на які подається двійкова адреса каналу. Так, для передачі даних з каналу номер 10 на входи вибору необхідно подати код 1010.

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

Базовий мультиплексор з двома входами даних

Розглянемо мультиплексор з двома входами даних І0 і І1 та входом вибору А. Логічне значення, подане на вхід А, визначає, який із елементів І (кон’юнкторів) буде пропускати на свій вхід дані, які через елемент АБО поступають на вихід D.

Таблиця 1

А

І0

І1

D

0

1

0

1

1

0

1

1

Нехай І0, І1пара інформаційних входів; А – вхід адреси; D – вихід. Тоді можемо записати таблицю істинності (табл. 1).

Користуючись булевою алгеброю можна записати наступний вираз для виходу сигналу

. (1)

При А=0 вираз набуває значення – працює нульовий елемент І, тобто сигнал на виході D буде ідентичний сигналу зі входу І0. Якщо ж А=1, то вираз набуває значення – працює перший елемент І, тобто сигнал на виході D буде ідентичний сигналу зі входу І1.

На рис. 3 наведено схему-модель двоканального мультиплексора, реалізованого в пакеті MAX+plus II.

Рис. 2. Мультиплексор з двома входами даних

Мультиплексор з чотирма входами даних

Умовне графічне позначення мультиплексорів показане на рис. 3.

а) б)

Рис. 3. Умовне позначення мультиплексорів:

а) на функціональних схемах; б) – на принципових схемах

Логіка роботи чотиривходового мультиплексора наведена в табл. 2, де – адресний код; – виходи внутрішнього дешифратора; – вхідна інформація; – загальний інформаційний вихід.

Таблиця 2

А0

А1

F0

F1

F2

F3

D

0

0

1

0

0

0

F0I0

0

1

0

1

0

0

F1I1

1

0

0

0

1

0

F2I2

1

1

0

0

0

1

F3I3

На основі табл. 2 вираз для вихідної функції можна подати з використанням виходів внутрішнього дешифратора у вигляді

, (2)

або з мінтермами адресного коду

. (3)

Схеми мультиплексорів, які відповідають рівнянням (2), (3) показані на рис. 4, 5.

Рис. 5

Рис. 6

На рис. 7 наведено схему і символ внутрішнього дешифратора

Рис. 7

Побудова мультиплексорів з використання мови ahdl

Нижче наведено текстовий файл mux_4_1_t, який реалізовує мультиплексор з використанням внутрішнього дешифратора. Результат моделювання даного дешифратора наведено на рис. 8.

SUBDESIGN mux_4_1_t

(

A[1..0], I[3..0]: INPUT ;

D: OUTPUT;

)

VARIABLE

F[3..0]:NODE;

BEGIN

TABLE

A[]=>F[];

B"00"=>B"0001";

B"01"=>B"0010";

B"10"=>B"0100";

B"11"=>B"1000";

END TABLE;

D=F0&I0#F1&I1#F2&I2#F3&I3;

END;

Рис. 8

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

SUBDESIGN mux_4_1_tm

(

A[1..0], I[3..0]: INPUT ;

D: OUTPUT;

)

BEGIN

D=!A1&!A0&I0#!A1&A0&I1#A1&!A0&I2#A1&A0&I3;

END;

Рис. 9

Текстовий файл mux_8_1_tm реалізовує мультиплексор у шинному виконанні. Реалізація даного мультиплексора з використанням символу та результат його моделювання наведено на рис. 10.

SUBDESIGN mux_8_1_tm

(

A[2..0], I[7..0]: INPUT ;

D: OUTPUT;

)

BEGIN

D=!A2&!A1&!A0&I0#!A2&!A1&A0&I1#!A2&A1&!A0&I2#!A2&A1&A0&I3#

A2&!A1&!A0&I4#A2&!A1&A0&I5#A2&A1&!A0&I6#A2&A1&A0&I7;

END;

Рис. 10

Текстовий файл mux_8_1 реалізовує мультиплексор у провідниковому виконанні. Реалізація даного мультиплексора з використанням символу та результат його моделювання наведено на рис. 11.

SUBDESIGN mux_8_1

(

A2,A1,A0, I7,I6,I5,I4,I3,I2,I1,I0: INPUT ;

D: OUTPUT;

)

BEGIN

D=!A2&!A1&!A0&I0#!A2&!A1&A0&I1#!A2&A1&!A0&I2#!A2&A1&A0&I3#

A2&!A1&!A0&I4#A2&!A1&A0&I5#A2&A1&!A0&I6#A2&A1&A0&I7;

END;

Рис. 11

Текстовий файл mux_8_1_en реалізовує мультиплексор з входом дозволу роботи En. Результат моделювання даного мультиплексора наведено на рис. 12.

При на виході мультиплексора буде формуватися сигнал логічного нуля незалежно від стану інших виходів.

Якщо , то сигнал на виході мультиплексора адресним кодом Adr[] і рівнем сигналу на відповідному інформаційному вході.

SUBDESIGN mux_8_1_en

(

Inf[7..0], Adr[2..0], En: INPUT;

D: OUTPUT;

)

BEGIN

IF En THEN

CASE Adr[] IS

WHEN 0 => D=Inf[0];

WHEN 1 => D=Inf[1];

WHEN 2 => D=Inf[2];

WHEN 3 => D=Inf[3];

WHEN 4 => D=Inf[4];

WHEN 5 => D=Inf[5];

WHEN 6 => D=Inf[6];

WHEN 7 => D=Inf[7];

END CASE;

END IF;

END;

Рис. 12

Нижче наведений файл є прикладом параметризованого опису шинного мультиплексора з одноадресним входом, до інформаційних входів якого підключені дві N-розрядні шини Ain[N..1] і Bin[N..1]. Результат моделювання даного мультиплексора наведено на рис. 13.

PARAMETERS (N=8);

ASSERT (N != 1)

REPORT "Value of parameter N = %" N

SEVERITY INFO;

ASSERT (N > 0)

REPORT "Value of parameter N must be greate then %" N

SEVERITY ERROR;

SUBDESIGN mux_par_bus

(

Ain[N..1], Bin[N..1], Adr: INPUT;

D[N..1]: OUTPUT;

)

BEGIN

IF Adr

THEN D[]=Ain[];

ELSE D[]=Bin[];

END IF;

END;

Рис. 13

Оператор ASSERT використовується для перевірки параметра N. Так, якщо, наприклад, за допомогою команди Global Project Parameters з меню Assing параметру N присвоїти значення одиниці, то при компіляції модуля буде сформоване наступне повідомлення (рис. 14). “Рівень строгості” даного повідомлення INFO.

Рис. 14

Якщо ж параметру N присвоїти нульове значення, то при компіляції модуля буде сформоване повідомлення, показане на (рис. 15). “Рівень строгості” даного повідомлення ERROR.

Рис. 15