Читать «Архитектура компьютера» онлайн - страница 146

Эндрю Таненбаум

Чтобы увидеть этот другой тип записи, отметим, что любую булеву функцию также можно определить указанием комбинаций значений входных переменных, приводящих к единичному значению функции. Для функции на рис. 3.3, а существует 4 комбинации переменных, которые дают единичное значение функции. Мы будем рисовать черту над переменной, показывая, что ее значение инвертируется. Отсутствие черты означает, что значение переменной не инвертируется. Кроме того, мы будем использовать знак умножения (точку) для обозначения булевой функции И (этот знак может опускаться) и знак сложения (+) для обозначения булевой функции ИЛИ. Например, ABC принимает значение 1, только если A = 1, B = 0 и С = 1. Кроме того, AB + BC принимает значение 1, только если (А = 1 и B = 0) или (B = 1 и C = 0). В таблице на рис. 3.3, а функция принимает значение 1 в четырех строках: ABC, ABC, ABC и ABC. Функция М принимает значение истины (то есть 1), если одно из этих четырех условий истинно. Следовательно, мы можем написать

М = ABC + ABC + ABC + ABC.

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

Важно понимать различие между абстрактной булевой функцией и ее реализацией с помощью электронной схемы. Булева функция состоит из переменных, например A, B и C, а также из операторов И, ИЛИ и НЕ. Булева функция описывается с помощью таблицы истинности или специальной записи, например: F = ABC + ABC.

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

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

Как было отмечено ранее, представление булевой функции в виде суммы максимум 2n произведений подводит нас непосредственно к возможной реализации этой функции. На рис. 3.3, б входные сигналы A, B и С показаны с левой стороны, а функция М, полученная на выходе, — с правой. Поскольку входные переменные должны инвертироваться, сигнал проходит через инверторы 1, 2 и 3. Чтобы сделать рисунок понятней, мы нарисовали 6 вертикальных линий, 3 из которых связаны с входными переменными, 3 другие — с их инверсиями. Эти линии обеспечивают передачу входного сигнала к вентилям. Например, вентили 5, 6 и 7 на входе получают сигнал А. В реальной схеме эти вентили, вероятно, будут непосредственно соединены проводом с А без каких-либо промежуточных вертикальных проводов.

Схема содержит четыре вентиля И, по одному для каждого члена в уравнении для М (то есть по одному для каждой строки в таблице истинности с результатом 1). Каждый вентиль И вычисляет одну из указанных строк таблицы истинности. В конце концов, все данные произведения суммируются (имеется в виду операция ИЛИ) для получения конечного результата.