====== DC и способы его построения ======
===== Дешифраторы (DC). =====
DC – устройства, предназначенные для преобразования двоичного позиционного кода в унитарный. Различают:
По способу синхронизации – синхронные и асинхронные
По структурному построению – линейные, пирамидальные и матричные
По полноте преобразования – полные (двоичные) и неполные.
У полных DC m входов и 2m выходов.
==== Линейный DC. ====
Рассмотрим пример DC 2 -> 4:
^ a1 ^ a0 ^ y3 ^ y2 ^ y1 ^ y0 ^
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 0 |
y0 = ~a1 • ~a0;
y1 = ~a1 • a0;
y2 = a1 • ~ a0;
y3 = a1 • a0.
Рассмотрим «красивый» способ получение формулы например для y20 в DC 5->32:
y20 = a4 • ~a3 • a2 • ~a1 • ~a0;
1 0 1 0 0
инверсия – 0, иначе – 1. Переведя число в 10 с/с получим 20.
Линейные DC самые быстрые однако, при увеличении количества входов возникает необходимость каскадирования элементов в связи с ограниченным количеством входов у реальных элементов.
Входной сигнал поступает на половину всех элементов что ограничивается электрическим сигналом (коэффициент разветвления) следовательно, этот сигнал нужно усиливать. Поэтому, как правило, линейные DC ограничиваются 2..8 входами.
==== Синтез неполных DC: ====
Учитывая, что на выходе DC получаем унитарный код следовательно, каждому выходу DC можно поставить в соответствие клетку карты Карно и использовать это при минимизации. Пример DC 4->10:
<карта Карно DC 4 -> 10>
Например, y9 = a3 • a1. Остальные формулы рекомендуется получить самостоятельно.
==== Пирамидальный DC. ====
Рассмотрим порядок синтеза пирамидального DC:
построить DC 1->2
Используя каскадное соединение каждому выходу DC предыдущего каскада добавить два элемента И на один из которых подключить следующую адресную переменную, а на другой – ее инверсию. Повторить n-1 раз.
Выполнить нумерацию выходов.
Пример пирамидального DC 3->8:
<Схема пирамидального DC 3->8 (y1,y5)>
На приведенной выше схеме отмечены выходы y1 и y5. Остальные выходы рекомендуется пронумеровать самостоятельно.
==== Матричный DC. ====
<ФСХ матричного DC>
где
* ВДШ – вертикальный DC,
* ГДШ – горизонтальный DC - обычные DC любого типа.
* КДШ – координатный DC - объединение всех выходов ВДШ и ГДШ по И.
Порядок синтеза:
Разделить адресные входы на две равные группы.
Выполнить синтез ВДШ и ГДШ.
Построить КДШ.
Выполнить распределение адресных входов и нумерацию выходов.
Пример матричного DC 4->16:
<Схема матр. DC 4->16>
==== Сравнительная характеристика DC: ====
Линейные DC самые быстрые, но если входов больше 8 необходимо выполнить каскадирование.
Пирамидальные DC самые медленные но являются регулярными по структуре (используются только элементы 2И), более оптимальны по аппаратурным затратам при реализации в виде интегральных схем либо по площади на кристалле при количестве входов от 5 до 8.
Матричные DC – промежуточные по быстродействию, более оптимальны по оборудованию при большом количестве входов.
==== DC на базе DC. ====
Для построения этой схемы используются только DC с управляющим входом, соединенные каскадно. При этом каждый выход DC предыдущего каскада подключается к управляющему входу DC следующего каскада.
=== Порядок синтеза: ===
Определение количества каскадов:\\ , где Ар и Аб – количество адресных входов результирующего и базового DC соответственно.
Определение количества DC в выходном каскаде:\\ , где Nр и Nб – количество выходов результирующего и базового DC соответственно.
Построение схемы.
Распределение адресных входов. Для полного DC можно использовать любое распределение, для неполного – более старшие адресные входы подключаются к более ближним ко входу каскадам.
Пример DC 4->12 на базе DC 2->4.
nк = 2, Nвых = 3.
<схема DC 4->12 на базе DC 2->4>
===== ToDo: =====
То что есть:
* Нарисовать все рисунки,
* «Красиво» оформить все формулы,
* Добавить примеры по Картам Карно и подробно расписать,
* Придумать упражнения для самостоятельной работы.
=== В планах: ===
* Всевозможные DC, MX, CD, (одни на базе других и т.д.)
* Синхронные/асинхронные тирреры
* Регистры
* Счетчики
* Теория ин-фы и кодирования (Коды обнаруживающие и исправляющие ошибки – Блоковые коды, код по паритету, групповой код, коды Хемминга, коды БЧХ, Рида-Соломона и д.р.)
* УА Мили/Мура
* Представление чисел в ЦЭВМ (ПК, ОК, ДК, ПН, ОН) и ОА – схемы «+», «-», «*», «/» для целых чисел и чисел с ПЗ
Хорошо бы еще разбавить всю эту «сухую» теорию практическими примерчиками ;)