Вентили и булева алгебра

Вентили

Цифровая схема — это схема, в которой есть только два логических значения. Обычно сигнал от 00 до 1В1 В представляет одно значение (например, 00), а сигнал от 22 до 5В5 В — другое значение (например, 11). Напряжение за пределами указанных величин недопустимо. Вентилями, позволяют получать различные функции от этих двузначных сигналов.

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

Рисунок (а):

  • Транзистор имеет три соединения: коллектор, базу и эмиттер. Если входное напряжение VinV_{in} ниже определенного значения, транзистор выключается и действует как очень большое сопротивление. Это приводит к выходному сигналу VoutV_{out}, близкому к VccV_{cc}, — для данного типа транзистора это обычно +5В+5 В. Если VinV_{in} превышает значение, транзистор включается и действует как проводник, вызывая заземление сигнала VoutV_{out} (по соглашению — это 0В0 В). Если напряжение VinV_{in} низкое, то VoutV_{out} высокое, и наоборот. Эта схема, таким образом, является инвертором, превращающим логический 00 в логическую 11 и логическую 11 в логический 00. Резистор (ломаная линия) нужен для ограничения тока, проходящего через транзистор, чтобы транзистор не сгорел. На переключение с одного состояния на другое обычно требуется не более наносекунды.

Рисунок (б):

  • Два транзистора соединены последовательно. Если и напряжение V1V_1, и напряжение V2V_2 высокое, то оба транзистора становятся проводниками и снижают VoutV_{out}. Если одно из входных напряжений низкое, то соответствующий транзистор выключается, и напряжение на выходе становится высоким. Другими словами, напряжение VoutV_{out} является низким тогда и только тогда, когда и напряжение V1V_1, и напряжение V2V_2 высокое.

Рисунок (в):

  • Два транзистора соединены параллельно. Если один из входных сигналов высокий, включается соответствующий транзистор и снижает выходной сигнал. Если оба напряжения на входе низкие, то выходное напряжение становится высоким.

Эти три схемы образуют три простейших вентиля(НЕ, НЕ-И и НЕ-ИЛИ). Вентили НЕ часто называют инверторами. Если мы примем соглашение, что высокое напряжение (VссV_{сс}) — это логическая 11, а низкое напряжение («земля») — логический 00, то мы сможем выражать значение на выходе как функцию от входных значений.

Если инвертор подключить к выходу вентиля НЕ-И мы получим вентиль И, если инвертор подключить к выходу НЕ-ИЛИ, мы получим вентиль ИЛИ.

Круги на схемах вентилей называются инвертирующие выходы

Дальше идет про 2 производственных технологии: МОП и биполярная.

Булева алгебра

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

Так как булева функция от nn переменных имеет только 2n2^n возможных комбинаций значений переменных, то такую функцию можно полностью описать в таблице с 2n2^n строками. В каждой строке будет даваться значение функции для разных комбинаций значений переменных. Такая таблица называется таблицей истинности.

Если располагать строки таблицы истинности по порядку номеров, то есть для двух переменных в порядке 00, 01, 10, 11, то функцию можно полностью описать 2n2^n-разрядным двоичным числом, которое получается, если считывать по вертикали колонку результатов в таблице истинности. Таким образом, НЕ-И — это 1110, НЕ-ИЛИ — 1000, И — 0001 и ИЛИ — 0111. Для функции от двух переменных существует 16 булевых функций(т.к. для каждой переменной существует 2 значения).

Функция из трех переменных ниже - функция большинства которая принимает 0, если большинство переменных 0, или 1, если большинство переменных равны 1.

Эту функция можно представить немного удобнее(черта над буквой означает инвертирование):

M=ABC+ABC+ABC+ABCM = \overline{A}BC+A\overline{B}C+AB\overline{C}+ABC

  • ++ - ИЛИ

  • *(обычно этот знак не пишется) - И

Таким образом, функцию от nn переменных можно описать «суммой» максимум 2n2^n «произведений», при этом в каждом «произведении» будет по nn множителей.

Реализация булевых функций

Вентили НЕ-И и Не-ИЛИ считаются полными, потому что любая булева функция может быть реализована на их базе, поэтому эти 2 типа вентилей предпочтительнее при построении схем.

Эквивалетность схем

Для решения одной и той же задачи могут быть спроектированы разные схемы. У булевой алгебры, как и у обычной есть свои соотношения с помощью которых можно упростить выражение. Допустим AB+ACAB+AC можно представить как A(B+C)A(B+C). Схема получится проще, тк нужно будет использовать 2 вентиля вместо 3

Две функции являются эквивалентными, если обе функции принимают одно и то же значение для всех возможных переменных.

Соотношение

И

ИЛИ

Соотношение тождества

1A=A1A=A

0+A=A0+A=A

Соотношение нуля

0A=00A=0

1+A=11+A=1

Соотношение идемпотентности

AA=AAA=A

A+A=AA+A=A

Соотношение инверсии

AA=0A\overline{A}=0

A+A=1A+\overline{A}=1

Соотношение коммутативности

AB=BAAB=BA

A+B=B+AA+B=B+A

Ассоциативное соотношение

(AB)C=A(BC)(AB)C=A(BC)

(A+B)+C=A+(B+C)(A+B)+C=A+(B+C)

Дистрибутивное соотношение

A+BC=(A+B)(A+C)A+BC=(A+B)(A+C)

A(B+C)=AB+ACA(B+C)=AB+AC

Соотношение поглощения

A(A+B)=AA(A+B)=A

A+AB=AA+AB=A

Соотношение Де Моргана

AB=A+B\overline{AB}=\overline{A}+\overline{B}

A+B=AB\overline{A}+\overline{B}=\overline{AB}

Один и тот же физический вентиль может вычислять разные функции в зависимости от используемых соглашений. То есть, если мы примем, что 0В - логический 00, 3.35В3.3-5В - логическая 11(это позитивная логика), то выходные знначения у функции будут одни, а если 0В - логическая 11, а 3.35В3.3-5В - логический 00, выходные значения будут другие(негативная логика).

Основываясь на позитивной логике у нас будет функция И, основываясь на негативной логике у нас будет функция ИЛИ.

Last updated