Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Раздел 3. Цифровой логический уровень





В самом низу иерархической схемы на Рис. 2.1 находится цифровой логический уровень, или аппаратное обеспечение компьютера. Цифровые схемы этого уровня конструируются из небольшого числа простых элементов путем их сочетания в различных комбинациях. В следующих темах Вы узнаете подробнее об основных элементах и о том, как их можно сочетать. Также Вы изучите математические методы, которые можно использовать при анализе их работы.

Тема 3.1. Вентили и булева алгебра

В результате изучения данной темы Вы будете:

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

Вентили

Цифровая схема – это схема, в которой есть только два логических значения. Обыч­но сигнал от 0 до 1 Вольт представляет одно значение (например, 0), а сигнал от 2 до 5 Вольт – другое значение (например, 1), напряжение за пределами указанных вели­чин недопустимо. Электронные устройства, которые называютсявентилями, могут вычислять различные функции от этих двузначных сигналов, они и формируют основу аппаратного обеспечения, на которой строятся все цифровые компьютеры.

Вся современная цифровая логика основывается на том, что транзис­тор может работать как очень быстрый бинарный переключатель. На Рис. 3.1, а) изображен биполярный транзистор, встроенный в простую схему. Транзистор имеет три соединения с внешним миром:коллектор,базуиэмиттер. Если входное напря­жение Vin ниже определенного критического значения, транзистор выключается и действует как очень большое сопротивление. Это приводит к выходному сигналу Vout, близкому к Vcc (напряжению, подаваемому извне), обычно +5 В для данного типа транзистора. Если Vin превышает критическое значение, транзистор включа­ется и действует как провод, вызывая заземление сигнала Vout (по соглашению 0 В). Важно отметить, что если напряжение Vin низкое, то Vout высокое, и наоборот, Эта схема, таким образом, является инвертором, превращающим логический 0 в ло­гическую 1 и логическую 1 в логический 0. Резистор (ломаная линия) нужен для ограничения количество тока, проходящего через транзистор, чтобы транзистор не сгорел. На переключение из одного состояния в другое обычно требуется не­сколько наносекунд (нс). Такую схему еще называют инвертором.

 

Рис. 3.1. Транзисторный вентиль НЕ (а); вентиль НЕ-И (б); вентиль НЕ-ИЛИ (в)

На Рис. 3.1, б) два транзистора соединены последовательно. Если и напряже­ние V1 и напряжение V2 высокие, то оба транзистора будут служить проводника­ми и снижать Vout. Если одно из входных напряжений низкое, то соответствующий транзистор будет выключаться, и напряжение на выходе будет высоким. Другими словами, Vout будет низким тогда и только тогда, когда и напряжение V1, и напря­жение V2 высокое.

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

Эти три схемы образуют три простейших вентиля. Они называются вентилями НЕ, НЕ-И и НЕ-ИЛИ. Если принять, что высокое напряжение (Vcc) – это логическая 1, а низкое напряжение («земля») – логический 0, то можно выражать значение на выходе как функцию от входных значений. Знач­ки, которые используются для изображения этих трех типов вентилей, показаны на Рис. 3.2 а) – в). Там же приводится поведение функции для каждой схемы. На этих рисунках А и В – это входные сигналы, а Х – выходной сигнал. Каждая строка таблицы определяет выходной сигнал для различных комбинаций входных сигналов.

Рис. 3.2. Значки для изображения 5 основных вентилей. Поведение функции для каждого вентиля

Если выходной сигнал (Рис. 3.2, б) подать в инвертор, мы получим другую схему, противоположную вентилю НЕ-И, то есть такую схему, у которой выход­ной сигнал равен 1 тогда и только тогда, когда оба входных сигнала равны 1. Такая схема называется вентилем И, ее схематическое изображение и описание соответ­ствующей функции даны на Рис. 3.2, г). Точно так же вентиль НЕ-ИЛИ может быть связан с инвертором. Тогда получится схема, у которой выходной сигнал равен 1 в том случае, если хотя бы один из входных сигналов – 1, и равен 0, если оба вход­ных сигнала равны 0. Изображение этой схемы, которая называется вентилем ИЛИ, а также описание соответствующей функции даны на Рис. 3.2, д). Маленькие кружочки в схемах инвертора, вентиля НЕ-И и вентиля НЕ-ИЛИ называютсяинвер­тирующими выходами. Они также могут использоваться в другом контексте – для указания на инвертированный сигнал.

Пять вентилей, изображенных на Рис. 3.2, составляют основу цифрового логи­ческого уровня. Из предшествующего обсуждения должно быть ясно, что вентили НЕ-И и НЕ-ИЛИ требуют два транзистора каждый, а вентили И и ИЛИ – три транзистора каждый. По этой причине во многих компьютерах используются вентили НЕ-И и НЕ-ИЛИ, а не И и ИЛИ. (На практике все вентили выполняются несколько по-другому, но НЕ-И и НЕ-ИЛИ все равно проще, чем И и ИЛИ.) Сле­дует упомянуть, что вентили могут иметь более двух входов. В принципе вентиль НЕ-И, например, может иметь произвольное количество входов, но на практике больше восьми обычно не бывает.

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

Чтобы описать схемы, которые строятся путем сочетания различных вентилей, нужен особый тип алгебры, в которой все переменные и функции могут прини­мать только два значения: 0 и 1. Такая алгебра называетсябулевой алгеброй. Она названа в честь английского математика Джорджа Буля (1815-1864).

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

Так как булева функция от n переменных имеет только 2n возможных комбина­ций значений переменных, то такую функцию можно полностью описать в табли­це с 2n строками. В каждой строке будет даваться значение функции для разных комбинаций значений переменных. Такая таблица называется таблицейистинно­сти. На Рис. 3.3, а) показана таблица истинности для функции от трех переменных: M = f (A, B, C).

Рис. 3.3. Таблица истинности для функции большинства от трех переменных (а); схема для этой функции (б)

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

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

В таблице на Рис. 3.3, а) функция принимает значение 1 в четырех строках: , , и . Функция М принимает значение истины (то есть 1), если одно из этих четырех условий истинно. Следовательно, мы можем написать:

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

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

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

Чтобы использовать данный подход, нам нужны некоторые равенства из буле­вой алгебры. Ниже показаны некоторые основные законы (Таблица 3.1). Необходимо отме­тить, что каждый закон имеет две формы. Одну форму из другой можно получить, меняя И на ИЛИ и 0 на 1. Все законы можно легко доказать, составив их таблицы истинности.

Названия законов И ИЛИ
Законы тождества    
Законы нуля  
Законы идемпотентности  
Законы инверсии  
Коммуникативные законы  
Ассоциативные законы  
Дистрибутивные законы  
Законы поглощения  
Законы Де Моргана    

Названия законов И ИЛИ
Законы тождества  
Законы нуля
Законы идемпотентности
Законы инверсии
Коммуникативные законы
Ассоциативные законы
Дистрибутивные законы
Законы поглощения
Законы Де Моргана  

 

Таблица 3.1. Некоторые законы булевой алгебры

Законы Де Моргана распространяются на выражения с более чем двумя переменными, например .

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

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

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

Из Рис. 3.3 должно быть ясно, как реализовать схему для любой булевой функции:

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

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

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

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

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

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

 

Для того чтобы реализовать булеву функцию с использованием только вен­тилей НЕ-И или только вентилей НЕ-ИЛИ, можно сначала следовать алгорит­му, описанному выше, и сконструировать схему с вентилями НЕ и И и ИЛИ. Затем нужно заменить многовходовые вентили эквивалентными схемами с ис­пользованием двухвходовых вентилей. Например, A+B+C+D можно поменять на (A+B)+(C+D), используя три двухвходовых вентиля. Затем вентили НЕ и И и ИЛИ заменяются схемами, изображенными на Рис. 3.4.

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

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

 

Законы Де Моргана предполагают альтернативную запись. (Рис. 3.5). На Рис. 3.5, а) форма И дается с отрицанием, которое показывается с помощью инвертирующих входов и выходов. Таким образом, вентиль ИЛИ с инвертированными входными сигна­лами эквивалентен вентилю НЕ-И. Из Рис. 3.5, б), на котором изображена вторая форма закона Де Моргана, ясно, что вместо вентиля НЕ-ИЛИ можно нарисовать вентиль И с инвертированными входами. С помощью отрицания обеих форм зако­на Де Моргана мы приходим к эквивалентным репрезентациям вентилей И и ИЛИ (Рис. 3.5, в) и г)). Аналогичные символические изображения существуют для различных форм закона Де Моргана (например, n-входовый вентиль НЕ-И стано­вится вентилем ИЛИ с инвертированными входами).

Рис. 3.5. Альтернативные обозначения некоторых вентилей: НЕ-И (а); НЕ-ИЛИ (б); И (в); ИЛИ (г)

Используя уравнения, указанные на Рис. 3.5, и аналогичные уравнения для многовходовых вентилей, можно легко преобразовать сумму произведений в чис­тую форму НЕ-И или чистую форму НЕ-ИЛИ. В качестве примера рассмотрим функцию ИСКЛЮЧАЮЩЕЕ ИЛИ (Рис. 3.6). Стандартная схема, выражаю­щая сумму произведений, показана на Рис. 3.6, б). Чтобы перейти к форме НЕ-И, нужно линии, соединяющие выходы вентилей И с входом вентиля ИЛИ, нарисо­вать с инвертирующими входами и выходами, как показано на Рис. 3.6, в). Затем, применяя Рис. 3.5, а), мы приходим к Рис. 3.6, г). Переменные А и В можно получить из А и В, используя вентили НЕ-И или НЕ-ИЛИ с объединенными входами.

Рис. 3.6. Таблица истинности для функции ИСКЛЮЧАЮЩЕЕ ИЛИ (а); три схемы для вычисления этой функции (б), (в), (г)

 

Подведем итоги

  • в основе всех цифровых схем лежат базовые элементы – вентили;
  • чтобы описать схемы, которые строятся путем сочетания различных вентилей, применяют особый тип алгебры – булеву алгебру;
  • булева алгебра является ценным инструментом в поиске эк­вивалентных схем;
  • существует ряд стандартных шагов построения схем для любых булевых функций;
  • при построении цифровых схем следует использовать вентили одного типа – для этого используют ряд стандартных схем для конструирования любого вентиля.

Вопросы для самоконтроля

1. На чем основывается вся современная цифровая логика? Что такое вентиль? Назовите основные типы вентилей.

2. Что такое булева алгебра? Почему ее используют при построении цифровых схем?

3. Назовите основные законы булевой алгебры. Чем они полезны при построении цифровых схем?

4. Назовите основные этапы построения схем для любой булевой функции.

5. Какие вентили называют полными? Почему?

6.

Как вы думаете, из каких соображений рекомендуется строить цифровые схемы из вентилей одного типа?

Индивидуальные задания

1. Напишите таблицы истинности для функций НЕ, ИЛИ, НЕ-И, ИСКЛЮЧАЮЩЕЕ ИЛИ.

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. Существуют 4 булевы функции от одной переменной и 16 функций от двух переменных. Сколько существует функций от трех переменных? От n переменных?

_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. Используя таблицу истинности, покажите, что P=(P И Q) ИЛИ (P И НЕ Q).

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. Покажите, как можно воплотить функцию И, используя два вентиля НЕ-И.

 

5. Используя закон Де Моргана, найдите дополнение от .

_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

6. Нарисуйте схему функции ИСКЛЮЧАЮЩЕЕ ИЛИ используя только вентили НЕ-ИЛИ:

 







Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.