Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Arh_VS_Lektsia_4.docx
Скачиваний:
11
Добавлен:
14.07.2019
Размер:
452.12 Кб
Скачать

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

Чтобы описать схемы, которые строятся путем сочетания различных вентилей, нужен особый тип алгебры, в которой все переменные и функции могут принимать только два значения: 0 и 1. Такая алгебра называется булевой алгеброй. На самом деле в данном случае мы говорим об особом типе булевой алгебры, а именно об алгебре релейных схем, но термин «булева алгебра» очень часто используется в значении «алгебра релейных схем».

Как и в обычной алгебре (то есть в той, которую изучают в школе), в булевой алгебре есть свои функции. Булева функция имеет одну или несколько переменных и выдает результат, который зависит только от значений этих переменных. Можно определить простую функцию f, сказав, что f(A)=l, если А=0, и f(A)=-O, если А=1. Такая функция будет функцией НЕ (см. рис. 3.2, а).

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

Хотя любая булева функция может быть определена с помощью таблицы истинности, с возрастанием количества переменных такой тип записи становится громоздким. Поэтому вместо таблиц истинности часто используется другой тип записи. Чтобы увидеть, каким образом осуществляется этот другой тип записи, отметим, что любую булеву функцию можно определить, указав, какие комбинации значений переменных дают значение функции 1. Мы будем рисовать черту над переменной, чтобы показать, что ее значение инвертируется. Отсутствие черты означает, что значение переменной не инвертируется. Кроме того, мы будем использовать знак умножения (точку) для обозначения булевой функции И (знак умножения может опускаться) и + для обозначения булевой функции ИЛИ. Например, для функции от трех переменных такая запись может выглядеть следующим образом:

F = AB + ĀC

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

Реализация булевых функций и эквивалентность схем

Реализовать схему для любой булевой функции можно используя следующие шаги:

  1. Составить таблицу истинности для данной функции.

  2. Обеспечить инверторы, чтобы порождать инверсии для каждого входного сигнала.

  3. Нарисовать вентиль И для каждой строки таблицы истинности с результатом 1.

  4. Соединить вентили И с соответствующими входными сигналами.

  5. Вывести выходы всех вентилей И в вентиль ИЛИ.

Здесь показано, как реализовать любую булеву функцию с использованием вентилей НЕ, И и ИЛИ. Однако гораздо удобнее строить схемы с использованием одного типа вентилей. К счастью, можно легко преобразовать схемы, построенные по предыдущему алгоритму, в форму НЕ-И или НЕ-ИЛИ. Чтобы осуществить такое преобразование, все, что нам нужно, — это способ воплощения НЕ, И и ИЛИ с по- мощью одного типа вентилей. На рисунке 3.4 показано, как это можно сделать, используя только вентили НЕ-И или только вентили НЕ-ИЛИ. Отметим, что существуют также другие способы подобного преобразования.

Рис. 3.4. Конструирование вентилей НЕ (а), И (б) и ИЛИ (в) с использованием только вентилей НЕ-И или только вентилей НЕ-ИЛИ

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

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

Очень важно отметить, что один и тот же вентиль может вычислять разные функции в зависимости от используемых соглашений. Если мы примем соглашение, что 0 В — это логический ноль, а 3,3 В или 5 В — логическая единица, мы получим одну таблицу истинности Такое соглашение называется позитивной логикой. Однако если мы примем негативную логику, то есть условимся, что 0 В — это логическая единица, а 3,3 В или 5 В — логический ноль, то мы получим другую таблицу истинности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]