Мультиплексор и демультиплексор — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Модуль памяти)
Строка 125: Строка 125:
  
 
===Модуль памяти===
 
===Модуль памяти===
 +
Допустим, что нам нужно реализовать модуль памяти на 8 бит. Обозначим эти биты как <tex>s_0</tex>, <tex>s_1</tex>, <tex>\ldots</tex>, <tex>s_7</tex>. Также допустим, что у нас есть следующие входы: <tex>a_0</tex>, <tex>a_1</tex>, <tex>a_2</tex>, которые задают номер бита, который следует обработать, также есть вход <tex>R/W</tex>, значение на котором равно <tex>0</tex>, если надо прочитать значение <tex>i</tex>-го бита, где <tex>i</tex> - число, которое кодируется входами <tex>a_0</tex>, <tex>a_1</tex>, <tex>a_2</tex>, или <tex>1</tex>, если надо записать в <tex>i</tex>-ый бит значение на входе <tex>d</tex>. Также есть вход <tex>c</tex> - провод синхронизации.
  
 
==См. также==
 
==См. также==

Версия 19:01, 10 декабря 2018

Эта статья находится в разработке!


Определение:
Мультиплексор (англ. multiplexer, или mux) — логическая схема, имеющая 2n+n входов x0, x1, , x2n1, s0, s1, , sn1 и один выход z, на который подаётся значение на входе xi, где i — число, которое кодируется входами s0, s1, , sn1.


Определение:
Демультиплексор (англ. demultiplexer, или demux) — логическая схема, имеющая n+1 входов s0, s1, , sn1, x и 2n выходов z0, z1, , z2n1. На все выходы подаётся 0 кроме выхода zi, на который подаётся значение на входе y, где i — число, которое кодируется входами s0, s1, , sn1.


Принцип работы мультиплексора

2—to—1 мультиплексор
4—to—1 мультиплексор

Мультиплексор 2-to-1

Рассмотрим мультиплексор 2-to-1 (это значит, что есть всего два входа x0 и x1, значения которых могут подаваться на вход z). Переберём всевозможные варианты значений на входах. Если на s подавать 0, то на выход z будет подаваться то же значение, которое подаётся на вход x0, т.е. в данном случае значение на входе x1 нас не интересует. Аналогично, если на вход s подавать 1, то на выход z будет подаваться то же значение, которое подаётся на вход x1. Для более лучшего понимания посмотрим на таблицу истинности.

s x0 x1 z
0 0 ? 0
0 1 ? 1
1 ? 0 0
1 ? 1 1

Мультиплексор 4-to-1

Также рассмотрим мультиплексор 4-to-1 (это значит, что есть четыре входа x0, x1, x2 и x3, значения которых могут подаваться на выход z). Также переберём всевозможные варианты значений на входах. Тут уже 2 входа s0 и s1, которые определяют, значение какого из входов x0, x1, x2 или x3 будет подаваться на выход z. Если s0=s1=0, то на выход z будет подаваться значение входа x0, если s0=1 и s1=0 — то значение x1, если s0=0 и s1=1 — то значение x2, в противном случае — значение x3. Для более лучшее понимания рекомендуется обратиться к таблице истинности.

s0 s1 x0 x1 x2 x3 z
0 0 0 ? ? ? 0
0 0 1 ? ? ? 1
1 0 ? 0 ? ? 0
1 0 ? 1 ? ? 1
0 1 ? ? 0 ? 0
0 1 ? ? 1 ? 1
1 1 ? ? ? 0 0
1 1 ? ? ? 1 1

Логическая схема мультиплексора

Заметим, что дешифратор имеет n входов и 2n выходов, причём на все выходы дешифратора подаётся 0 кроме выхода zi, на который подаётся 1, где i — число, которое кодируется его входами.

Тогда давайте построим дешифратор n-to-2n (это значит, что у дешифратора имеется n входов и 2n выходов), на вход ему подадим входы s0, s1, , sn1, а выходы этого дешифратора обозначим как y0, y1, , y2n1, а потом с помощью гейта AND соединим выход yi дешифратора с входом xi мультиплексора, потом соединим все гейты с выходом z. Давайте разберёмся, почему эта схема правильная: очевидно, что если входы s0, s1, sn1 кодируют вход i, то это значит, что только yi выход дешифратора будет иметь 1, тогда как на остальных выходах будет 0, значит, что значения на входах x0, x1, , xi1, xi+1, , x2n1 на ответ никак повлиять не могут. Теперь, если на входе xi было 0, то на выходе z будет 0, если же на входе xi был 1, то на выходе z будет 1.

Логическая схема мультиплексора 8-to-1

Принцип работы демультиплексора

1-to-2 демультиплексор
1-to-4 демультиплексор

Демультиплексор 1-to-2

Рассмотрим демультиплексор 1-to-2 (это значит, что у демультиплексора два выхода). Если на вход s подать значение 0, то на выход z0 будет подаваться то же значение, которое подаётся на вход y, а на выход z1 будет подаваться 0. Если же на вход s подать значение 1, то на выход z0 будет подаваться значение 0, а на выход z1 то же значение, которое будет подаваться на вход y. Для более лучшего понимания посмотрим на таблицу истинности.

s y z0 z1
0 0 0 0
0 1 1 0
1 0 0 0
1 1 0 1

Демультиплексор 1-to-4

Также рассмотрим демультиплексор 1-to-4 (это значит, что у демультиплексора четыре выхода). Теперь у нас уже есть два входа s0 и s1, которые определяют, на какой из выходов z0, z1, z2 или z3 будет подаваться значение y, тогда как на остальные выходы будет подаваться 0. В случае, когда s0=s1=0, то на выход z0 будет подаваться значение на входе y, тогда как на z1, z2 и z3 будет подаваться 0. Если же s0=1 и s1=0, то на выходы z0, z2 и z3 будет подаваться 0, а на выход z1 будет подаваться то же, что подаётся на вход y. Аналогично разбираются случаи s0=0, s1=1 и s0=s1=1. Для более лучшего понимания посмотрим на таблицу истинности.

s0 s1 y z0 z1 z2 z3
0 0 0 0 0 0 0
0 0 1 1 0 0 0
1 0 0 0 0 0 0
1 0 1 0 1 0 0
0 1 0 0 0 0 0
0 1 1 0 0 1 0
1 1 0 0 0 0 0
1 1 1 0 0 0 1

Логическая схема демультиплексора

Построим схему, аналогичную схеме мультиплексора.

Тогда давайте построим дешифратор, n-to-2n, на входы дешифратора подадим входы s0, s1, , sn1, а выходы этого дешифратора мы обозначим как y0, y1, , y2n1. Поставим 2n гейтов AND и соединим каждый из выходов дешифратора y0, y1, , y2n1 со входом x с помощью гейта AND, потом соединим соответственные гейты с выходами z0, z1, , z2n1, причем мы соединим гейт AND с выходом zi, если на этот гейт приходится выход дешифратора yi.

Логическая схема демультиплексора 1-to-8

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

Модуль памяти

Допустим, что нам нужно реализовать модуль памяти на 8 бит. Обозначим эти биты как s0, s1, , s7. Также допустим, что у нас есть следующие входы: a0, a1, a2, которые задают номер бита, который следует обработать, также есть вход R/W, значение на котором равно 0, если надо прочитать значение i-го бита, где i - число, которое кодируется входами a0, a1, a2, или 1, если надо записать в i-ый бит значение на входе d. Также есть вход c - провод синхронизации.

См. также

Источники информации