Более эффективен (по критерию затрат аппаратных средств) способ реализации ПФ на основе мультиплексора, когда на информационные входы Di подаются не только константы 0 и 1, но и переменные и некоторые функции от переменных, выполняемые простыми ЛЭ (рис.16). В этом случае 4-канальный мультиплексор, имеющий два адресных входа, можно использовать для реализации функции трех переменных y( x2,x1,x0 ).
В качестве примера рассмотрим синтез логической схемы одноразрядного арифметического полного сумматора на основе 4-канальных мультиплексоров. Таблица истинности сумматора приведена на рис.17,а. В таблице: ai и bi – суммируемые разряды, pi-1 - перенос из (i-1)-го разряда; si - значение суммы; pi – перенос из i-гов (i+1)-й разряд.
В СДНФ логическая функция переноса piимеет вид:
. (12)Примем в качестве адресных переменных A1, A0 соответственно переменные
и перепишем уравнение (12) в виде, соответствующем логическому уравнению 4-канального мультиплексора (рис.14,в) . (13)Из сопоставления уравнения (13) и уравнения 4-канального мультиплексора (рис.14,в) следует: D0 = 0, D1 = pi-1,D2 = pi-1,D3 = (
) = 1.Проще и нагляднее получаются функции входов мультиплексора при использовании карт Карно. При сделанном выборе адресных переменных каждому из четырех информационных входов мультиплексора соответствует одна из четырех зон карты Карно, показанных на рис.17,б. Каждую из этих зон можно рассматривать как двухклеточную карту Карно, которая задает логическую зависимость сигнала входа Di мультиплексора от переменной pi-1, не используемой в качестве адресной переменной. Для выявления этой логической связи необходимо сопоставить значения, принимаемые переменной pi-1, и значения функции (piили si), записанные в клетках карты. Эти значения либо равны, либо находятся в инверсной связи, либо значение функции не зависит от переменной pi-1 (равно 0 или 1).
Полученные по картам значения функций входов мультиплексоров приведены на рис.17,в,г, а на рис.17,д – соответствующая им структурная схема арифметического сумматора, выполненная на двух мультиплексорах с общими адресными входами. На рис.17,е – условное графическое обозначение одноразрядного арифметического полного сумматора. Многоразрядные арифметические сумматоры (рис.17,ж – арифметический сумматор двух четырехразрядных двоичных чисел) строятся на основе одноразрядных арифметических сумматоров (рис.17,е), на рис.17,з – условное графическое обозначение такого сумматора.
Для функций трех переменных y( x2,x1,x0 ) возможны три варианта выбора адресных переменных А1,А0 (рис.18,а). Каждому варианту соответствует свой способ разделения карты Карно на четыре зоны, определяющие логические функции информационных входов Dj .
На рис.18,б приведены все возможные варианты выбора адресных переменных и разделения карт Карно на зоны, если 4-канальный мультиплексор используется для реализации функции y( x3,x2,x1,x0 ) четырех переменных.
Выбор адресных переменных должен быть оптимальным, так как сложность функций на информационных входах Dj, а значит и КС в целом, в общем случае зависит от сделанного выбора. Критерием оптимальности выбора адресных переменных может служить количество функций, равных 0 и 1, а также сложность функций, не равных 0 и 1. В качестве адресных сигналов следует использовать те переменные, которые входят в МДНФ наибольшее число раз. В этом случае наибольшую логическую нагрузку будет нести внутренний дешифратор мультиплексора. Такой подход к выбору адресных сигналов позволяет исключить полный перебор всех вариантов.
7. Преобразователь кода Грея в двоичный код 8-4-2-1
Код Грея является циклическим кодом, который используется в системах контроля цифровых устройств, в преобразователях механических перемещений в цифровой код и т.д. Две соседние цифровые комбинации кода Грея отличаются всегда значениями только одного разряда. Такие комбинации образуют цепь длиной 2n, где n – число разрядов в коде Грея.
На рис.19,а показаны кодовые комбинации цепи Грея для n = 2, которые используются для задания координат строк и столбцов карт Карно для ПФ четырех переменных (рис.19,б). Если обойти все клетки карты рис.19,б в направлении стрелки и для каждой клетки записать ее координаты x3,x2,x1,x0, получим все (24) комбинации 4-разрядного кода Грея (рис.19,в). Правая часть таблицы содержит все комбинации двоичного кода 8-4-2-1.
Синтезируемый преобразователь должен формировать для каждой комбинации кода Грея соответствующую комбинацию кода 8-4-2-1.Задача синтеза сводится к синтезу системы логических функций y3,y2,y1,y0 от переменных x3,x2,x1,x0. Карты Карно для этих функций позволяют получить структурные формулы для формирования разрядов y3,y2,y1,y0 выходного кода (рис.19,г). Скобочные преобразования всех полученных по картам исходных формул (МДНФ) с использованием тождеств алгебры логики приводят к логическим выражениям на основе операции
(Исключающее ИЛИ): .Структурная схема преобразователя кода Грея в двоичный код
8-4-2-1 приведена на рис.19,д, а на рис.19,е – условное графическое изображение преобразователей кода.
8. Узел свертки по четности
Сверткой по четности цифрового кода (слова) x3,x2,x1,x0 называется логическое преобразование вида
. Для n-разрядных кодов преобразование для функции p записывается аналогично. Логическая функция p является признаком четного число единиц в коде. Если число единиц четное, то p = 1, если – нечетное, то p = 0 (в истинности этого утверждения можно убедиться методом перебора вариантов).Свертка по четности очень часто используется для контроля по четности (контроля по паритету) при передаче цифровых кодов по каналам передачи данных, при чтении их из устройств памяти и т.п. Задача контроля по четности – обнаружение одиночных ошибок в принимаемом из канала связи (или извлекаемом из памяти) коде. Одиночной ошибкой является замена единицы в каком-то одном разряде нулем или - наоборот.
Общая схема организации контроля по четности показана на рис.20. Источник данных для каждой кодовой комбинации (для n-разрядного цифрового слова) формирует признак четности, который в качестве дополнительного (n+1)-го разряда отправляется вместе с передаваемым словом в канал передачи данных. Передаваемое (n+1)-разрядное слово имеет всегда нечетное число единиц. Если в исходном коде число единиц было нечетным, то на выходе КС1 значение контрольного разряда p = 0 не меняет число единиц при передаче слова. Если же число единиц в исходном коде было четным, то контрольный разряд для такого кода p =1, и результирующее число единиц в передаваемом (n+1)-разрядном слове станет нечетным. На приемном конце канала от полученного (n+1)-разрядного слова снова берется свертка по четности e. Если значение этой свертки равно 1, то или в передаваемом слове , или в контрольном разряде при передаче произошла ошибка.
Столь простой контроль не позволяет исправить ошибку, но он дает возможность при обнаружении ошибки исключить неверные слова, затребовав повторную передачу и т.п. Двойную ошибку контроль по четности не обнаруживает.
Развитием принципа контроля по четности являются корректирующие коды, например код Хэмминга, который позволяет не только обнаруживать, но и исправлять одиночную ошибку. Возможность исправления ошибки основывается на повторенной k раз процедуре контроля по четности, но не всего слова сразу, а k определенных групп его разрядов. Слово разбивается на группы так, чтобы номер любого разряда, однозначно определялся по его принадлежности или непринадлежности к этим группам. По номерам групп, в которых обнаружена ошибка, определяется номер искаженного разряда. Исправление ошибки сводится к инвертированию искаженного бита.
Список литературы
1.Пухальский Г.И., Новосельцева Т.Я. Цифровые устройства: Учеб. пособие для втузов. СПб.: Политехника, 1996.
2.Угрюмов Е.П. Цифровая схемотехника. СПб.: БХВ-Петербург, 2001.
3.Проектирование импульсных и цифровых устройств радиотехнических систем: Учеб. пособие для радиотехнич. спец. вузов / Ю.П.Гришин, Ю.М.Казаринов, В.М.Катиков и др.; Под. ред. Ю.М.Казаринова. М.: Высш. шк., 1985.