Шифратор и дешифратор
Определение: |
Дешифратор (англ. decoder) - логический элемент, получающий на вход $n$-значное число $x$ в двоичном представлении и выводящий $1$ на $x$-м выходе. На все остальные выходы выдаёт элемент выдаёт $0$. |
Принцип работы
Для начала разберёмся, как работает дешифратор 2-to-4 (это значит, что у этого дешифратора есть два входа $s_0$ и $s_1$ и четыре выхода $z_0$, $z_1$, $z_2$ и $z_3$). Если $s_0 = s_1 = 0$, то на выходе $z_0$ будет значение $1$, на остальных выходах будет $0$. Если же $s_0 = 1$ и $s_1 = 0$, то на выходе $z_1$ будет $1$, на остальных выходах будут $0$. Если $s_0 = 0$ и $s _1 = 1$, то на выходе $z_2$ будет $1$, а на остальных входах будет $0$. Если же $s_0 = s_1 = 1$, то на выходе $z_3$ будет $1$, а на других - $0$. Для более лучшего понимания обратимся к таблице истинности.
$S_0$ | $S_1$ | $Z_0$ | $Z_1$ | $Z_2$ | $Z_3$ |
---|---|---|---|---|---|
0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 |
Логическая схема
Построить схему дешифратора не очень сложно. Действительно, для того, чтобы точно определить, какой из выходов закодирован входами $s_0$, $s_1$, $\ldots$, $s_{n-1}$. Давайте переберём всевозможные варианты входов. Всего всевозможных вариантов подать значения на входы $2^n$. Давайте будем строить такую схему рекурсивным способом, т.е. сначала построим схему для $n-1$ элемента, а потом сольём $n$-ый элемент с $n-1$ элементами. Допустим, что $n = 1$. Тогда очевидно, что всевозможных вариантов всего два: $s_0 = 0$ или $s_0 = 1$. Давайте от входа $s_0$ мы выведем два провода, один из них, пока, не будем трогать, а другой соединим с гейтом $NOT$. Если количество входов было равно одному, то мы перебрали всевозможные варианты, т.е. давайте соединим провод без гейта $NOT$ с выходом $Z_0$, а с гейтом $NOT$ - с выходом $z_1$. Допустим, что $n \geqslant 1$. Тогда допустим, что мы построили такую схему для $n-1$ элемента, что для всевозможных значений первых $n-1$ у нас есть $2^{n-1}$ проводов, причем при любых значений на первых $n-1$ входах только у одного провода будет на выходе $1$, на остальных будет $0$. Давайте тогда и от входа $n$ таким же образом проведём два провода: один из них будет без гейта $NOT$, а другой будет с гейтом. Поставим еще $2^n$ гейтов $AND$, первые $2^{n-1}$ гейтов будут соединять провода с $2^{n-1}$ проводами от дешифратора на $n-1$ вход и напрямую вход $s_n$. Другие же $2^{n-1}$ гейтов $AND$ будут также соединять провода со схемой для $n-1$ входа и гейт $NOT$, который подсоединён со входом $s_n$. Таким образом, у нас на выходе получается $2^n$ проводов, на концах которых при любых значениях на входах $s_0$, $s_1$, $\ldots$, $s_{n-1}$ будут все $0$ кроме того провода, номер которого кодируют эти самые входы. И в конце на выходы подадим соответствующие им провода.