stringtranslate.com

NAND-логика

Булева функция NAND имеет свойство функциональной полноты . Это означает, что любое булево выражение может быть перевыражено эквивалентным выражением , использующим только операции NAND . Например, функция NOT(x) может быть эквивалентно выражена как NAND(x,x). В области цифровых электронных схем это означает, что можно реализовать любую булеву функцию, используя только вентили NAND .

Математическое доказательство этого было опубликовано Генри М. Шеффером в 1913 году в Transactions of the American Mathematical Society (Sheffer 1913). Похожий случай применим к функции NOR , и это называется логикой NOR .

НЕ-И

Вентиль NAND — это инвертированный вентиль AND . Он имеет следующую таблицу истинности:

Элемент NAND на основе КМОП- транзистора. V dd обозначает положительное напряжение.

В логике CMOS , если оба входа A и B имеют высокий уровень, то оба NMOS -транзистора (нижняя половина схемы) будут проводить ток, ни один из PMOS -транзисторов (верхняя половина) не будет проводить ток, и между выходом и Vss (землей) будет установлен проводящий путь, что приведет к низкому уровню выхода. Если оба входа A и B имеют низкий уровень, то ни один из NMOS-транзисторов не будет проводить ток, в то время как оба PMOS-транзистора будут проводить ток, устанавливая проводящий путь между выходом и Vdd (источником напряжения), что приведет к высокому уровню выхода. Если любой из входов A или B имеет низкий уровень, один из NMOS-транзисторов не будет проводить ток, один из PMOS-транзисторов будет проводить ток, и между выходом и Vdd (источником напряжения) будет установлен проводящий путь, что приведет к высокому уровню выхода. Поскольку единственная конфигурация двух входов, которая приводит к низкому уровню выхода, — это когда оба имеют высокий уровень, эта схема реализует логический вентиль NAND (НЕ И).

Создание других вентилей с использованием вентилей NAND

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

НЕТ

Вентиль НЕ получается путем объединения входов вентиля НЕ-И. Поскольку вентиль НЕ-И эквивалентен вентилю И, за которым следует вентиль НЕ, объединение входов вентиля НЕ-И оставляет только вентиль НЕ.

И

Логический элемент И создается путем инвертирования выходного сигнала логического элемента И-НЕ, как показано ниже.

ИЛИ

Если изучить таблицу истинности для вентиля NAND или применить законы Де Моргана , можно увидеть, что если любой из входов равен 0, то выход будет равен 1. Однако, чтобы быть вентилем ИЛИ, выход должен быть равен 1, если любой из входов равен 1. Следовательно, если входы инвертированы, любой высокий вход вызовет высокий выход.

НИ

Вентиль ИЛИ-НЕ — это вентиль ИЛИ с инвертированным выходом. Выход имеет высокий уровень, когда ни вход A, ни вход B не имеют высокого уровня.

XOR

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

В качестве альтернативы, вентиль XOR создается путем рассмотрения дизъюнктивной нормальной формы , отмечая из закона де Моргана , что вентиль NAND является вентильом ИЛИ с инвертированным входом. Эта конструкция использует пять вентилей вместо четырех.

X-NOR-функция

XNOR-вентиль создается путем рассмотрения дизъюнктивной нормальной формы , отмечая из закона де Моргана , что вентиль NAND является инвертированным входным ИЛИ-вентилем. Эта конструкция влечет за собой задержку распространения в три раза больше, чем у одного вентиля NAND, и использует пять вентилей.

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

МУЛЬТИПЛЕКС

Мультиплексор или вентиль MUX представляет собой вентиль с тремя входами, который использует один из входов, называемый битом селектора, для выбора одного из двух других входов, называемых битами данных , и выводит только выбранный бит данных. [1]

ДЕМУЛЬТИПЛЕКС

Демультиплексор выполняет функцию, противоположную мультиплексору: он берет один вход и направляет его на один из двух возможных выходов в соответствии с битом селектора, который указывает, какой выход выбрать. [1] [ нарушение авторских прав? ]

Смотрите также

Ссылки

  1. ^ ab Nisan, Noam ; Schocken, Shimon (2005). "1. Булева логика". От NAND до Tetris: Создание современного компьютера из первых принципов (PDF) . MIT Press. Архивировано из оригинала (PDF) 2017-01-10.

Внешние ссылки