2. КОМБИНАЦИОННЫЕ СХЕМЫ

 

В комбинационных схемах логическая функция зависит только от комбинации значений входных переменных.

При описании  многих цифровых устройств невозможно обойтись без упорядоченных   двоичных наборов входных и выходных сигналов. Эти наборы удобно представлять в тех или иных системах счисления (СС).

 

2.1 НЕКОТОРЫЕ СИСТЕМЫ СЧИСЛЕНИЯ

В позиционных СС "вес" каждого разряда зависит от его позиции в числе. К числу непозиционных относится "римская" СС, например число - XVII.

Любое неотрицательное n-разрядное целое число C(n-1), C(n-2), ... ,C1,C0 в позиционной системе счисления может быть представлено в виде:

D = Cn-1*bn-1 + Cn-2*bn-2 + ... + C1*b1 + C0*b0  (15)

где D - десятичный эквивалент числа, Ci - значение i-го разряда, b - основание системы счисления, b в степени i - вес (весовой коэффициент)  i-го разряда и n число разрядов целой части числа. В цифровой и вычислительной технике наиболее распространены двоичная (BIN), десятичная (DEC), шестнадцатиричная (HEX) и непозиционная двоично-десятичная (BCD) системы счисления. В BCD системе вес каждого разряда равен степени 10, как в десятичной системе, а каждая цифра i-го разряда кодируется 4-мя двоичными цифрами. Восьмиричная СС(OCT) применяется реже. В 16-ной системе счисления цифры от 0 до 9 совпадают с десятичными, а для ЦИФР болше 10 используются буквы латинского алфавита : A(a) = цифра 10, B(b) = 11, C(c) =12, D(d) = 13, E(e) =14. Двоичное число преобразуется в десятичное беззнаковое число по формуле (15), например  10010011 = 1*27 + 1*24 + 1*21 + 1*20 = 147 (DEC). Для перевода числа из двоичной системы в 16 - ную, его необходимо разбить начиная справа на группы по 4 двоичных цифры и в каждой четверке просуммировать веса (8,4,2,1) соответствующие единичным значениям Ci. Для обратного перевода каждая HEX цифра заменяется четверкой двоичных, незначащие нули  слева, если они есть, отбрасываются.


Примеры преобразований:

Найдите десятичное число без знака соответствующее двоичному числу 00111011.
Пояснение:           номер разряда     7   6   5   4   3   2   1   0
                       вес разряда    128  64  32  16  8   4   2   1
                  значение разряда     0   0   1   1   1   0   1   1
ОТВЕТ :      десятичный эквивалент     0 + 0 + 32+ 16+ 8 + 0 + 2 + 1 = 59(DEC)

Найти (HEX)16-ный код приведенного выше двоичного числа 00111011.
Пояснение:   номер разряда     3   2   1   0       3   2   1   0
               вес разряда     8   4   2   1       8   4   2   1
          значение разряда     0   0   1   1       1   0   1   1
ОТВЕТ :  16-ный эквивалент     0 + 0 + 2 + 1 (3)   8 + 0 + 2 + 1 (11) = 3B(HEX)
так как в HEX коде цифра 11 записывается с помощью буквы B.

Двоично-десятичное число можно записывать и десятичными цифрами, например 1998, и двоичными - 0001 1001 1001 1000. Каждое десятичное число можно представить в виде BCD, например 19(DEC) = 19(BCD), но их двоичные представления не равны: 10011(19DEC) не равно 1 1001(19BCD). Не каждая запись из нулей и единиц имеет двоично-десятичный эквивалент. Например, 11001001(BIN) = [C9(HEX),201(DEC)]  = ?(BCD), т.к. десятичной цифры 1100=12 не существует.

 

2.2 ДЕШИФРАТОР  

Дешифратор (ДШ) преобразует двоичный код на входах в активный сигнал на том выходе, номер которого равен десятичному эквиваленту двоичного кода на входах. В полном дешифраторе количество выходов m = 2n, где n - число входов. В неполном ДШ m < 2n. По определению полный ДШ должен генерировать 2n выходных ЛФ, определенных на всех наборах из n - входных переменных, т.е. минтермов. Рассмотрим ДШ с n=2 и m=4, называемый также дешифратором "2 в 4" и дополним его входом разрешения выходов OE. Активным уровнем сигнала на прямых входах/выходах будет 1, а на инверсных - 0. По этому определению заполним таблицу истинности, где величина x может принимать любые значения.

tabl-dc.gif (4484 bytes)

Таблица Карно для выхода y0 и 3-х входных переменных будет иметь вид:

karno-dc.gif (1826 bytes)

Прямоугольник, составленный из 1-ных клеток содержит только одну такую клетку, поэтому логическая функция выхода y0 будет иметь вид: y0 = OE*~a1*~a0. Аналогично получены остальные три уравнения. Преобразуем полученные для yi уравнения с помощью аксиомы двойного отрицания к базису И-НЕ: y0 = ~(~(OE*~a1*~a0)). Решению соответствует схема на рис.13.

Схема обведенная "..." имеет условное обозначение (A), а схема в запятых - обозначение (Б). Возможны также еще 2 комбинации прямых и инверсных входов и выходов В и Г.

ris13.gif (11304 bytes)

Пояснить работу ДШ можно с помощью временных диаграмм для схемы (Б). Во время действия сигнала ~OE=1 на нижних входах элементов И-НЕ(0..3) присутствует OE=0, и независимо от значений a0,a1, выходные значения ~yi=1, а yi=0, что и видно из рис.13. В эти отрезки времени t0..t1 и t2..t3 выходы "запрещены", т.е. на прямых выходах yi устанавливается пассивный уровень "0", а на инверсных выходах пассивная "1". В интервале t1..t2 сигнал ~OE=0(OE=1) и значения yi зависят только от переменных a1,a0. Если код на входах A1A0=10, что соответствует десятичной двойке, на входах второго элемента И-НЕ соберутся 3 логических "1". Сигнал ~y2=0, а y2=1, что видно на диаграмме y2. Вместо инвертора OE,может применяться более сложная схема,показанная на рис.14. Здесь OE=1 в случае,когда ~OE1 = ~OE2 = 0 и OE3 = 1.

ris14-15.gif (3022 bytes)

Такая схема применяется в дешифраторе "3 в 8" типа 1533ИД7(555ИД7), условное обозначение которого приведено на рис.15. Дешифраторы широко применяются в вычислительной технике, как часть больших интегральных схем, для выбора одного из нескольких внешних устройств (ВУ) при обмене данными между ним и микропроцессором. В этом случае на входы ai подаются сигналы, называемые адресом ВУ, а входы называются адресными.

 


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

Устройство передающее сигнал с информационного входа на один из выходов, причем номер этого выхода равен десятичному эквиваленту двоичного кода на адресных входах, называется демультиплексором (ДМ). В качестве ДМ может использоваться дешифратор, у которого вместо сигнала OE подается информационный сигнал x. Например, если на входы подать код a1a0=10(BIN)=2(DEC), то сигнал x появится на выходе y2, а на остальных выходах yi=0. На рис.16. даны условное обозначение ДМ "1 в 4" и его механический аналог.

ris16.gif (2212 bytes)

 

2.4 УВЕЛИЧЕНИЕ РАЗРЯДНОСТИ ДЕШИФРАТОРОВ И ДЕМУЛЬТИПЛЕКСОРОВ

На рис.17 показано соединение двух ДШ "3 в 8" для получения одного ДШ "4 в 16", или двух демультиплексоров "1 в 8" для получения одного "1 в 16".

ris17.gif (4836 bytes)

При пассивном значении ~OE=1 сигнал OE=0 (рис.14) и на всех выходах yi будет "1", независимо от значений сигналов ai. Если ~OE=0 (активный уровень), то какой из дешифраторов работает зависит только от сигнала a3. Так если a3=0, то на всех разрешающих входах ДШ (A) будут активные уровни, а на прямом разрешающем входе OE дешифратора (B) сигнал a3 равный нулю переведет все выходы в состояние 1 (см. табл.4), т.е. работоспособным будет ДШ (A). Когда a3=1, наоборот работоспособным становится дешифратор (B), потому что для инверсного входа ~OE дешифратора (A) этот сигнал запрещает его выходы. Комбинации сигналов a3 и a2..a0, это видно из первых колонок таблицы, образуют последовательность двоичного кода 0000 ... 0111 (0 ... 7) для дешифратора (A) и последовательность 1000 ... 1111 (8 ... 15) для ДШ (B). Поэтому нумерация выходов yi, получившегося ДШ "4 в 16" сквозная от 0 до 15. На рис.17, справа приведено условное обозначение, получившегося дешифратора - демультиплексора (в справочниках они так часто и называются и помещаются в один раздел).

tabl4.gif (5562 bytes)


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

Мультиплексор  передает сигнал с одного из информационных входов xi на единственный выход y, причем номер этого входа равен десятичному эквиваленту двоичного кода на адресных входах ai. Если имеется вход разрешения выхода OE, то "0" на этом входе должен перевести выход в пассивное состояние (последняя строчка таблицы.5). Рассмотрим мультиплексор "4 в 1", имеющий 4 информационных входа и log4 = 2 адресных входов.

tabl5.gif (4454 bytes)

Величина x может принимать любые значения. Количество входных переменных равно 7, и таблица истинности должна иметь 128 строк. В табл.5 в 4-x основных строках упаковано 64 исходных (с учетом значений x0 ... x3) и в последней строке, остальные 64 строчки. Анализ 0 строки, приводит к выводу,что y=x0, если a1=0 И a0=0 И OE=1, независимо от переменных x1 ... x3. Поэтому для этого входного набора можно записать: y=x0*OE*~a1*~a0. Аналогично записывается y для остальных трех наборов переменных. Общее решение тогда будет иметь вид:


       y = OE(x0*~a1*~a0 + x1*~a1*a0 + x2*a1*~a0 + x3*a1*a0). (16)

Применяя аксиомы двойного отрицания и двойственности к правой части уравнения получим:


      ------------------------------------              
 y = ~(OE*x0*~a1*~a0)+ ... +~(OE*x0*a1*a0).(17)

Выражению (17) соответствует схема,приведенная на рис.18,

ris18-19.gif (4944 bytes)

а ее условное обозначение и механический аналог на рис.19. Если на адресные входы подать комбинацию a1a0 = 11(BIN) = 3(DEC), то к выходу y будет подключен вход D3, при условии, если OE=1. Мультиплекcор может иметь инверсный выход, а также третье состояние этого выхода, которое отмечается на схеме ромбом с поперечной чертой.

Мультиплексоры находят широкое применение в вычислительной технике, например многие выводы у микропроцессоров "мультиплексированы", т.е. к одному выходу подключается несколько внутренних источников различных сигналов. Это могут быть сигналы линий шины данных и шины адреса, передаваемые последовательно во времени, что позволяет сократить общее число выводов микропроцессора. Если сравнить выражения (16) и (12), то можно увидеть их тождественность, при fi = xi и OE = 1. Следовательно, с помощью мультиплексора с "n" адресными входами можно реализовать любую ЛФ с "n" переменными, подавая на инфрмационные входы мультиплексора значения fi.

 

2.6 ШИФРАТОР

Шифратор (Ш) может быть неприоритетным, если допускается подача только одного  активного сигнала и может быть приоритетным, если допускается подача одновременно нескольких активных сигналов на входы. Неприоритетный Ш осуществляет преобразование десятичного номера активного входа в двоичный эквивалент этого номера. Для неприоритетного шифратора "4 в 2" таблица истинности имеет вид (рис.20):

ris20-21.gif (4289 bytes)

В приоритетном  Ш производится преобразование максимального десятичного номера активного входа в двоичный эквивалент этого номера. Для такого Ш входные сигналы, лежащие снизу от единичной диагонали, по определению не известны ("x" может быть 0 или 1). Следовательно полная таблица истинности, вместо нижних трех строчек должна содержать еще 2+4+8=14 строк см. рис.21. Комбинация 0000 на входах не определена.

Для синтеза схемы неприоритетного Ш для каждого выхода составим таблицу Карно. Четыре входных переменных дают 24=16 комбинаций из которых по определению заданы в таблице только 4. Остальные 12 неопределенных (запрещенных) комбинаций в таблицах Карно отметим символом d. Так как появление этих комбинаций на входах не предусмотрено (по определению), то в соответствующие клетки т.Карно можно подставлять любые значения, в том числе такие, которые позволяют наиболее полно минимизировать ЛФ. Два из четырех вариантов приведены на рис.22. В обоих случаях две величины d доопределены до 1.

ris22.gif (4762 bytes)

Из приведенных таблиц находим y1 и y0:


      -- --   -------          -- --   -------
 y1 = x0*x1 = x0 + x1  и  y0 = x0*x2 = x0 + x2.     
ris23.gif (3094 bytes)

Реализация и условное обозначение неприоритетного Ш приведены на рис.23. Переменная x3 оказалась "обделенной", но это произошло из-за того, что если нет сигнала ни на одном из первых трех входов, то он неизбежно должен присутствовать, по определению, на оставшемся, т.е. на третьем. Переменная x3, вместе с остальными может быть использована для формирования функции x0 + x1 + x2 + x3 равной 0, когда не активен ни один из входов, что может сигнализировать, например о неисправности источников сигналов.

Шифраторы применяются в контроллерах прерываний работы микропроцессора внешними устройствами, в параллельном преобразователе напряжения в код и для кодирования номера клавиши. Последнее применение показано на рисунке. Если нажата клавиша кл3, то на выходе ей будет соответствовать код 11(BIN) = 3(DEC).