Для полупроводниковых технологий NOT, NOR и NAND - базовые логические элементы которые могут быть реализованны электрически. XNOR, в некоторых случаях XOR тоже могут быть соптимизированны на уровне транзисторной технологии. Другие элементы реализовываются уже комбинационно-логичским путем исходя из них: Практически мы уже рассмотрели как делаются все двухоперандные логические функции кроме импликации и запрета.
Рассмотрим импликацию A->B: ---------- A B | A->B ----+----- 0 0 | 1 0 1 | 1 1 0 | 0 1 1 | 1 ---------- _ Заметим что A->B = A + B -------------------- A A# B | A#+B A->B -------+------------ 0 1 0 | 1 1 0 1 1 | 1 1 1 0 0 | 0 0 1 1 1 | 1 1 -------------------- таким образом получаем импликация A->B - это: IMP
![]()
или просто:
![]()
Рассмотрим запрет по А (B <- A): ---------- A B | B<-A ----+----- 0 0 | 0 0 1 | 1 1 0 | 0 1 1 | 0 ---------- _ Заметим что B<-A = A * B -------------------- A A# B | A#*B B<-A -------+------------ 0 1 0 | 0 0 0 1 1 | 1 1 1 0 0 | 0 0 1 1 1 | 0 0 -------------------- таким образом: Запрет
![]()
или просто:
![]()
NOT
![]()
![]()
NAND
![]()
![]()
NAND3:
![]()
![]()
NAND4:
![]()
![]()
NOR
![]()
![]()
NOR3:
![]()
![]()
NOR4:
![]()
![]()
AND
![]()
Реализация на NAND:
![]()
x AND y = NOT (x NAND y) Реализация на NOR:
![]()
x AND y = (NOT x) NOR (NOT y)
![]()
AND3:
![]()
![]()
AND4:
![]()
![]()
![]()
OR
![]()
Реализация на NAND:
![]()
x OR y = (NOT x) NAND (NOT y) Реализация на NOR:
![]()
x OR y = NOT (x NOR y)
![]()
OR3:
![]()
![]()
OR4:
![]()
![]()
![]()
Реализация на NOT (CMOS-only): Buffer
![]()
![]()
XOR/XNOR
![]()
A (+) B = A#*B + A*B#
![]()
A (+) B = A#*B + A*B# = A*A# + A#*B + A*B# + B*B# = = A*(A# + B#) + B*(A#+B#) = = A*(A#*B#) + B*(A#*B#) = = (A + B) * (A*B)#
![]()
XOR на NAND:
![]()
Помним что самом деле XOR может быть оптимизирован на уровне транзисторов: (Пример для CMOS)
![]()
Реализация выглядит как 3 инвертора и один электронный переключатель. XOR с двумя входами на CMOS:
![]()
XOR3:
![]()
![]()
XOR4:
![]()
![]()
XOR c 4 входами на CMOS:
![]()
Собственно говоря любую двухоперандную логическую функцию можно выполнить на структуре типа: *
![]()