1. Логические функции и элементы

1.1 ОСНОВНЫЕ ПОЛОЖЕНИЯ АЛГЕБРЫ ЛОГИКИ

В отличие от аналоговых электронных устройств, в цифровых устройствах (ЦУ) входные и выходные сигналы могут принимать ограниченное количество состояний. В соответствии с логическим соглашением (ГОСТ 2.743-82), в зависимости от конкретной физической реализации элементов ЦУ, более положительному значению физической величины, "H" - уровень, соответствует состояние "логическая 1", а менее положительному значению ,"L - уровень" - "логический 0". Такое соглашение называется положительной логикой. Обратное соотношение называется отрицательной логикой. В ГОСТ'е 19480 - 89 даны наименования, определения и условные обозначения основных параметров и характеристик цифровых микросхем.

Теоретической основой проектирования ЦУ является алгебра-логики или булева алгебра, оперирующая логическими переменными. Для логических переменных, принимающих только два значения,существуют 4 основных операции. Операция логическое "И" (AND) конъюнкция или логическое умножение, обозначается * или /\. Операция логическое "ИЛИ" (OR), дизъюнкция или логическое сложение, обозначается + или \/ . Операция логическое "НЕ" (NOT), изменение значения, инверсия или отрицание, обозначается чертой над логическим выражением. Инверсия иногда будет в тексте обозначаться знаком " ~ ". Операция эквивалентности обозначается "=" . Следующие соотношения являются аксиомами.

(1) 0 + 0 = 0 1 * 1 = 1 (1')
(2) 1 + 1 = 1 0 * 0 = 0 (2')
(3) 1 + 0 = 0 + 1 = 1  0 * 1 = 1 * 0 = 0 (3')
(4) ~1 = 0 ~0 = 1 (4')

Из (1, 2) и (1',2') следует: x + x = x  и  x * x = x.             (5)

Из (1, 3) и (2',3') следует: x + 0 = x и 0 * x = 0.               (6)

Из (2, 3) и (1',3') следует: 1 + x = 1 и x * 1 = x.               (7)

Из (3) и (3') следует: x +~x = 1 и~x * x = 0.                    (8)

Из (4) и (4') следует: ~(~x) = x.                                         (9)

И, наконец, из (1,1'), (2,2'), (3,3') и (4,4') следует:

~( x0+x1 ) = ~x0 * ~x1 и  ~( x0 * x1)  = ~x0 + ~x1 .       (10)

Последние выражения (10) называют принципом двойственности  или теоремой Де Моргана (инверсия логической суммы равна логическому произведению инверсий и наоборот). Соотношения двойственности для n переменных, часто записывают в виде:

~(x1 + .. + xn) = ~x1 * . .* ~xn  и

~(x1 * .. * xn) = ~x1 + .. + ~xn                                          (11)

На функции И и ИЛИ распространяются обычные алгебраические законы - переместительный, сочетательный и распределительный, которые легко доказываются методом перебора: x1 op x0 = x0 op x1 - переместительный, x2 op x1 op x0 = (x2 op x1) op x0 - сочетательный и x2*(x1+x0) = (x2*x1) + (x2*x0) и x2 + (x1*x0) = (x2+x1) * (x2+x0) - распределительный, где операция op может быть, либо И, либо ИЛИ. Наряду с тремя основными логическими функциями, называемыми также переключательными, существуют и другие.

 

1.2 ПЕРЕКЛЮЧАТЕЛЬНЫЕ ФУНКЦИИ

Для n - логических переменных (аргументов) существует 2n  их комбинаций или двоичных наборов. На каждом таком наборе может быть определено значение функции 0 или 1. Если значения функции отличаются хотя бы на одном наборе, функции - разные. Общее число переключательных функций (ПФ) от n аргументов равно N=22n. Для n=2, N=16. При n=3, N=256 и далее очень быстро растет. Практическое значение имеют 16 функций от 2-х переменных, т.к. любое сложное выражение можно рассматривать как композицию из простейших. В таблице 1 приведены некоторые из ПФ для n=2. i-номер набора входных переменных x1 и x0.

tbl-per.gif (6091 bytes)

ЗАПОМНИТЕ СЛЕДУЮЩИЕ ОПРЕДЕЛЕНИЯ. Функция "И" равна единице, если равны единице ВСЕ ее аргументы. Функция "ИЛИ" равна единице, если равен единице ХОТЯ БЫ один аргумент. Функция "ИСКЛЮЧАЮЩЕЕ ИЛИ" (XOR) равна единице, если равен единице ТОЛЬКО один ее аргумент.

 

1.3 УСЛОВНЫЕ ОБОЗНАЧЕНИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ НА СХЕМАХ

 

uslovobz.gif (7485 bytes)

Количество входов логического элемента, участвующих в формировании логической функции, называется коэффициентом объединения - Коб  ( не путать с коэффициентом разветвления). У всех выше приведенных схем, за исключением инвертора, коэффициент объединения равен двум. Промышленностью выпускаются схемы с Коб=2,3,4,8. Для получения схем с другим числом входов основные элементы можно объединять. Например, если требуется пятивходовая схема И, то ее можно получить, используя сочетательный закон следующим способом: x0 * x1 * x2 * x3 * x4 = (x0*x1) * (x2*x3*x4) = (x0*x1) * x2 * x3 * x4, т.е. требуются две двухвходовые и одна трехвходовая схемы И, для первого варианта, либо одна двухвходовая и одна четырехвходовая - для второго (рис.1).

ris1.gif (2519 bytes)

Можно использовать и восьмивходовую схему И, подав на незадействованные входы "1", либо некоторые из переменных,  в соответствии с выражениями (5) или (7).

 

1.4 СПОСОБЫ ПРЕДСТАВЛЕНИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ

Целью проектирования цифрового устройства является получение его логической функции (ЛФ) и соответствующей ей схемной реализации. ЛФ могут иметь различные формы представления: 1) словесное, 2) графическое, 3) табличное, 4) алгебраическое, 5) на алгоритмическом языке (например VHDL) и 6) схемное. В качестве примера, рассмотрим функцию Y от двух переменных x1 и x0, заданную словесным описанием: Y=1, если переменные НЕ РАВНЫ и Y=0, если x1=x0. Такую ЛФ удобно назвать функцией НЕРАВНОЗНАЧНОСТИ. Переходим к табличному представлению Y (таблица 2).

tabl2.gif (3213 bytes)

Табличное представление значений ЛФ для всех наборов входных переменных называется   таблицей истинности. В общем виде переход от табличного представления к алгебраическому может осуществляться по формуле (12), одной из основных в алгебре логики.

Выражение (12) называется совершенной дизъюнктивной нормальной формой ЛФ (СДНФ). mi - минтерм или логическое произведение всех переменных i-го двоичного набора, входящих в прямом виде, если значение этой переменной в наборе равно 1, и  в инверсном виде, если ее значение равно 0. fi - значение ЛФ на i - ом наборе. Доказательство (12) базируется на теореме разложения, в соответствии с которой любую ЛФ f(..) от n-переменных можно разложить по переменной xi в виде: f(x(n-1),...,xi,. ..,x0)  = ~xi*f(x(n-1),...,0,..,x0) + xi*f(x(n-1),..,1,..,x0). Это выражение для xi=0 равно ~0*f(x(n-1),...,0,..,x0) + 0*f(x(n-1),..,1,..,x0) = f(x(n-1),...,0,..,x0). При xi=1 оно будет равно ~1*f(x(n-1),..,1,..,x0) + 1*f(x(n-1),..,1,..,x0) = f(x(n-1),...,1,..,x0), т.е. при любых значениях xi теорема разложения справедлива. Теорему разложения можно применить n раз и тогда ЛФ будет разложена по всем своим переменным.

В виде примера рассмотрим функцию F=f(x1,x0) от двух переменных. Разложение этой функции по переменной x1 даст: F= ~x1*f(0,x0) + x1*f(1,x0) . Продолжая эту операцию для переменной x0, получим:

F =~x1*(~x0*(f(0,0) + x0*(f(0,1)) + x1*(~x0*(f(1,0) + x0*(f(1,1)) = ~x1*~x0*f(0,0) + ~x1*x0*f(0,1) + x1*~x0*f(1,0) + x1*x0*f(1,1).                  (12.1)

Выражение (12.1) позволяет записать все переключательные функции от двух переменных, используя только три основных логических операции.

Рассмотрим разложение функций F7-"ИЛИ" и F1-"И", для чего необходимо обратиться к соответствующим строчкам таблицы 1. Функция И на двоичных наборах входных переменных x1 и x0 (00,01,10,11) принимает значения 0,0,0,1. Записывая выражение (12.1) для этих значений получим: F1(x1,x0 ) = ~x1*~x0*0 + ~x1*x0*0 + x1*~x0*0 + x1*x0*1 = x1*x0, что соогласуется с ее определением. Таким же образом, находим алгебраическое выражение функции F7-"ИЛИ", которая, соответственно, на тех же входных наборах принимает значения: 0,1,1,1. Тогда, в соответствии с (12.1), F7(x1,x0) = ~x1*~x0*0 + ~x1*x0*1 + x1*~x0*1 + x1*x0*1. Вынося за скобки в двух последних слагаемых x1, получим F7 = ~x1*x0*1 + x1*(~x0*1 + x0*1). На основании аксиомы (8), выражение в скобке равно "1" и F7 = ~x1*x0*1 + x1. Применяя распределительный закон, найдем (~x1+x1) * (x0+x1) = x1+x0.

Возвращаясь к таблице 2, получим Y = 0*~x1*~x0 + 1*~x1*x0 + 1*x1*~x0 + 0*x1*x0 = ~x1*x0 + x1*~x0 = x1 (+) x0 = F6 (функцияия неравнозначности).

С помощью формулы (12) любую, сколь угодно сложную, логическую функцию можно представить в виде трех основных ЛФ: "И", "ИЛИ", "НЕ", представляющих собой логический базис.

1.5 ЛОГИЧЕСКИЙ БАЗИС

Набор простейших ЛФ, позволяющих реализовать любую другую функцию называется логическим базисом (ЛБ). Функции И, ИЛИ, НЕ не являются минимальным ЛБ, т.к. сами могут быть представлены через другие функции, например через F8(ИЛИ -НЕ) или F14(И - НЕ).

bazis.gif (5161 bytes)

Следовательно базис "И - НЕ" является минимальным. Реализацию НЕ,И,ИЛИ в базисе "ИЛИ - НЕ" произвести самостоятельно, используя перечисленные аксиомы.

 

1.6 СХЕМНЫЕ ОСОБЕННОСТИ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ

Приведенные выше логические элементы (ЛЭ) И, ИЛИ, НЕ, И-НЕ и другие могут иметь некоторые схемотехнические особенности.

1.6.1 БАЗОВЫЙ ЛОГИЧЕСКИЙ ЭЛЕМЕНТ

   На рисунке приведена упрощенная схема И-НЕ и его условное обозначение.

base-elem.gif (3214 bytes)

Напряжения на базах транзисторов VT1 и VT2 находятся в противофазе и, если x0*x1=1, то нижний транзистор открыт, а верхний закрыт, так как ~(x0*x1)=0 . Потенциал коллектора VT2 в этом случае примерно равен нулю и следовательно y=0. При других значениях x0 и x1 нижний транзистор закрыт, а верхний открыт и на выходе схемы - высокий уровень, т.е.  схема работает как  элемент И-НЕ. Выходы нескольких БЛЭ категорически нельзя соединять вместе, потому что, если n-1 элементов находятся в состоянии "1", а n-ый в состоянии "0", то n-1 транзисторов VT1 будут "сливать" (sink) токи в единственный транзистор VT2 n-го элемента. Суммарный ток может превысить допустимое значение и VT2 выйдет из строя.

1.7 ЭЛЕМЕНТ С ОТКРЫТЫМ КОЛЛЕКТОРОМ

Логический элемент И-НЕ с открытым коллектором (ОК) (см.рис.2. слева) обозначается в поле элемента ромбом с чертой внизу.

ris2.gif (2946 bytes)

К открытому коллектору снаружи могут подключаться резисторы, обмотки реле и двигателей, светодиоды и т.д. Открытые коллекторы нескольких элементов в отличие от базового логического элемента могут соединяться вместе, образуя "монтажное И" (рис.2 - справа) для прямых значений переменных т.к. y=y0*y1=1 при y0=y1=1. Иногда такую схему называют "монтажное ИЛИ", потому что y = ~(x0*x1) * ~(x2*x3) в соответствии с соотношением двойственности равно ~(x0*x1 + x2*x3) (рис.2). Логический элемент И с открытым эмиттером, обозначается ромбом, но с чертой сверху.

 

1.8 ЭЛЕМЕНТЫ "И - ИЛИ - НЕ" И РАСШИРИТЕЛИ

Такие схемы объединяют несколько элементов И, подключенных выходами к элементу ИЛИ-НЕ (рис.3). Если количества переменных a,b,..e недостаточно, используются элементы-расширители, подключаемые к входам расширения C и E (входы для открытых коллектора и эмиттера). Символ &1 обозначает функцию И, объединяемую по ИЛИ (рис.4). Здесь и далее символом *  обозначаются вспомогательные входы у логических элементов.

ris3-4.gif (4720 bytes)

В этих схемах, как и вообще в элементах ИЛИ, неиспользуемый вход ИЛИ д.б. подключен к 0. Поэтому, если одна из секций И незадействована, на один из ее входов необходимо подать 0. В противном случае Y всегда будет равен 0. Это особенность схем, выполненных по ТТЛ(Ш) технологии, т.к. неподключенный логический вход этих схем эквивалентен логической 1 (правда при этом ухудшаются некоторые характеристики микросхемы).

 

1.9 ТРИСТАБИЛЬНЫЕ ЭЛЕМЕНТЫ

Наряду с двумя логическими состояниями существует третье технологическое состояние, когда выход элемента отключается от внутренней схемы. При этом сопротивление между выходом и "землей" становится очень большим и выход микросхемы не оказывает никакого влияния на подключенные к нему выходы других микросхем. Выходы нескольких таких элементов также могут соединяться вместе. Такое включение , разновидность "монтажного И", применяется там, где несколько источников сигналов по очереди подключаются к входам одного или нескольких приемников, не мешая друг другу. Третье состояние называют также высокоимпедансным или Z - состоянием. Схема И-НЕ с Z-состоянием выхода приведена на рис.5. слева, а ее условное обозначение - справа.

ris5.gif (4078 bytes)

Если сигнал ~OE=0, транзистор VT3 закрыт и включенные встречно диоды не оказывают влияния на логические выходы элемента И. Напряжения на базах транзисторов VT1 и VT2 находятся в противофазе и, если x0*x1=1, то верхний транзистор закрыт, а нижний открыт. Потенциал коллектора VT2 примерно равен нулю и следовательно y=0. При других значениях x0 и x1 нижний транзистор заперт, а верхний открыт и на выходе схемы - высокий уровень, т.е. при ~OE=0 схема работает как обычный элемент И-НЕ. Картина существенно изменится при ~OE=1. Транзистор VT3 откроется до насыщения и на базах транзисторов VT1 и VT2 потенциал опустится примерно до нуля, запирая их. Выход "y" окажется отключенным от внутренней логической схемы. На схемах тристабильные элементы обозначаются ромбом с поперечной чертой или буквой Z.

Такие элементы используются там, где необходима передача инфориации по одной линии от нескольких источников к одному или нескольким приемникам. Причем, так как линия одна, то чтобы выходы пассивных источников не искажали информацию на выходе активного источника, они должны переводиться в третье состояние. Z - состояние используется по этой причине в микросхемах памяти, шинных формирователях.

 

1.10 МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ

Полученные по формуле СДНФ (12) выражение может быть преобразовано (не всегда) к виду, имеющему меньшее число переменных и операций по сравнению с исходным. Такое преобразование называется минимизацией.

Рассмотрим пример. Имеется три двоичных датчика xi. Необходимо реализовать ЛФ Yмажор принимающую значение 1, когда равны 1 значения двух и более датчиков. Такая функция называется мажоритарной. Ее таблица истинности имеет вид:

tabmajor.gif (4023 bytes)

По формуле (12): Yмажор = ~x2*x1*x0 + x2*~x1*x0 + x2*x1*~x0 + x2*x1*x0. (3,5,6,7 - строчки таблицы ). Полученному выражению соответствует схема на рис.6.

ris6.gif (3031 bytes)

Схема содержит 4 трехвходовых элемента "И" и 1 четырехвходовый элемент "ИЛИ". Нахождение минимальной формы ЛФ производится методом алгебраических преобразова- ний, с помощью таблиц Карно или машинными методами для больших проектов.

 

1.11 ТАБЛИЦА КАРНО

Таблица Карно (ТК) это видоизмененная запись таблицы истинности. Для функции мажоритарности из последнего примера (ТК) выглядит следующим образом:

karn.gif (2741 bytes)

Правила построения ТК  следующие: 1)Количество клеток ТК равно количеству строк таблицы истинности. 2)Слева и сверху располагаются значения аргументов. Порядок размещения аргументов таков, что в двух соседних по горизонтали и вертикали клетках отличается значение только одного аргумента (поэтому соседними считаются и клетки, находящиеся на противоположных краях таблицы). 3)В клетки заносятся соответствующие значения ЛФ. 4)Единичные клетки объединяются в прямоугольники (импликанты) по 2^i клеток. 5)Для каждого прямоугольника записывается произведение тех аргументов, которые в соседних клетках не изменяют своего значения. 6)Переменные входят в произведение в прямом виде, если их значение в соседних клетках равно 1, в противном случае в инверсном. 7)Полученные произведения складываются по ИЛИ в искомую ЛФ.

В примере имеется 3 прямоугольника - A,B,C, причем Ya = x2*x0 (x1 в соседних клетках меняет свое значение, поэтому в конъюнкцию не входит). Yb = x1*x0 и Yс = x2*x1.

Yмажор = Ya + Yb + Yc  =  x2*x0 + x1*x0 + x2*x1.                     (13)

ris7.gif (2339 bytes)

Соответствующая схема (рис.7.) проще, чем на рис.6.

 

1.12 ПРЕОБРАЗОВАНИЕ ЛФ К БАЗИСУ "И-НЕ" И "И-ИЛИ-НЕ"

Применяя к выражению (13) аксиому двойного отрицания (9) получим:

Yмажор =~(~( x2*x0 + x1*x0 + x2*x1))                                         (14)

Формуле (14) соответствует схема (рис.8,слева) в базисе И-ИЛИ-НЕ.

ris8.gif (3142 bytes)

Применяя к выражению (14) соотношение двойственности (11) получим ~( ~(x2*x0) * ~(x1*x0) * ~(x2*x1)) . Последнему выражению соответствует схема в базисе И-НЕ (рис.8, справа).

 

1.13 ВРЕМЕННЫЕ ПАРАМЕРЫ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ

Рассмотрим реакцию инвертора на изменение входного сигнала (рис.9). Инерционные свойства инвертора приводят к задержке сигнала при его прохождении от входа к выходу.

ris9.gif (3792 bytes)

Процесс изменения напряжения от низкого уровня L к высокому H, называется фронтом сигнала (положительным перепадом, положительным фронтом), а обратный процесс - спадом (отрицательным перепадом, отрицательным фронтом).   Если существенно их взаимное расположение, то фронт может быть передним и задним. Длительность фронтов на рис.9 обозначена t1,0 - отрицательный и t0,1 - положительный.

Величинами tзд.р.0,1 и tзд.р.1,0 обозначается время задержки распространения сигнала от входа до выхода  при переходе из 0 в 1 и наоборот (рис.9). Минимальная длительность импульса на входе элемента tи.мин пропорциональна среднему значению tзд.р.ср. равному полусумме tзд.р.0,1 и tзд.р.1,0. Максимальная частота входных импульсов Fмакс обратно пропорциональна tзд.р.ср. Из сказанного следует, что быстродействие элемента тем выше, чем меньше tзд.р.ср.

Определения вышеуказанных величин с их отечественными и международными обозначениями приведены в разделе обозначения некоторых параметров микросхем.

Быстродействие схемы зависит также от алгебраической формы представления ЛФ. Пусть y = a*b + c*a + d  =  a*(b+c)+d. Первой форме (ДНФ) соответствует схема (A),  а второй - схема (B) см. рис.10.

ris10.gif (3027 bytes)

Если среднее время задержки сигнала в каждом элементе одинаково,  то 2tзд.р.ср. < 3tзд.р.ср. и  двухъярусные схемы (СДНФ) в общем случае быстрее. Правда в записи со скобками может уменьшиться количество элементов и/или проводников (в схеме (B) на один провод меньше).

1.14 ПЕРЕХОДНЫЕ ПРОЦЕССЫ В ЛОГИЧЕСКИХ СХЕМАХ

Отличие времени задержки tзд.р. от нуля при прохождении сигнала через логическую схему может приводить к возникновению помех в выходном сигнале. Эти помехи имеют вид коротких импульсов, и в некоторых случаях приводят к серьезным сбоям в работе схем. Рассмотрим устройство на рис.11. Если элементы схемы не вносят задержки сигнала, а x0 и x1 находятся в противофазе, т.е. x0 = ~x1, то y = ~(x1 * ~x1) = 1. Если же каждый из пяти ЛЭ имеет задержку tзд.р., тогда x0' запаздывает относительно x0 на 4tзд.р. и на выходе схемы возникает незапланированный "отрицательный" импульс (интервал 1..2), сдвинутый на tзд.р. элемента И-НЕ (интервал 0..1). Процесс прохождения входных сигналов до общего выхода называется состязаниями или "гонками".

ris11.gif (2917 bytes)

Вредный эффект "гонок" может быть устранен несколькими способами, один из которых заключается в добавлении к ЛФ дополнительного слагаемого. Пусть некоторая ЛФ равна F = x1*x2 + ~x1*x0, тогда при x2=x0=1 может появиться помеха, вызванная тем, что сигнал ~x1 задержан относительно x1 на величину задержки инвертора (см. рис.12).

ris12.gif (4197 bytes)

Добавление лишнего импликанта (в таблице обведен точками) устраняет проблему, т.к.при критической ситуации, когда x2=x0=1, дополнительная составляющая x0*x2=1 и функция F = x1*x2 + ~x1*x0 + x0*x2 равна всегда 1 при x2=x0=1.

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

 

1.15 ЗАДАЧИ И УПРАЖНЕНИЯ

Задача 1. На входы схемы одновременно поступают несколько сигналов. Через какой промежуток времени на выходе гарантированно появится истинное значение логической функции? Задержки сигналов при прохождении через логические элементы приведены в таблице (1нсек=10-9сек). Получите задание (щелкнув по одноименной кнопке), запишите ответ в окно слева от кнопки ОТВЕТ ГОТОВ и щелкните по ней . Пример ответа   34

tзд.р.ИЛИ tзд.р.И tзд.р.ИСКЛ.ИЛИ tзд.р.НЕ

zadacha_tzd.gif (1920 bytes)


Задача 2. Выберите правильный порядок следования логических элементов. Например: И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ.

cifob-zad1.gif (1678 bytes)

И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ.

ИЛИ, И,   ИСКЛЮЧАЮЩЕЕ ИЛИ.

ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, И.

ИСКЛЮЧАЮЩЕЕ ИЛИ, ИЛИ,  И.

И, ИСКЛЮЧАЮЩЕЕ ИЛИ, ИЛИ.


Задача 3. Укажите правильное определение.

1. Функция И равна нулю,  если равен нулю только один аргумент.

2. Функция ИЛИ равна нулю,  если равен  нулю только один аргумент.

3. Функция И равна единице,  если равен единице хотя бы один аргумент.

4. Функция И равна нулю,  если равен нулю хотя бы один аргумент.

5. Функция ИЛИ равна единице,   если равены  единице все аргументы.

1       2       3        4       5


Задача 4. Какому уравнению соответствует таблица Карно?

k5.gif (2397 bytes)

x3*x2 + ~x1*x0 + x3*~x2

x1*x0 + ~x2*x1 + ~x0*~x3

~x0*~x2 + ~x1*~x2 + x3*~x1

~x1*~x0 + x2*~x1 + ~x3*~x0

x0*x1 + x2*x3 + x3*~x2


ИТОГИ РЕШЕНИЯ ЗАДАЧ