Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзаменационные вопросы - копия.docx
Скачиваний:
9
Добавлен:
23.09.2019
Размер:
303.42 Кб
Скачать
  1. Реализация булевых функций в базисах и-не, или-не.

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

1) "И-ИЛИ-НЕ" (базис конъюнкции, дизъюнкции, инверсии)

2) "И-НЕ" (базис Шеффера)

3) "ИЛИ-НЕ" (базис Пирса или функция Вебба).

 

Рассмотрим реализацию основных булевых операций в базисах "И-НЕ" и "ИЛИ-НЕ":

Реализация операции “НЕ”:

Реализация операции “И”:

Реализация операции “ИЛИ”:

 

Пример реализации комбинационного устройства в базисе "И-НЕ". Пусть задана функция, реализуемая комбинационным устройством, в аналитической форме

Используя закон де Моргана и с учетом закона двойного инвертирования, запишем эту функцию в виде

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

  1. Карты Карно. Минимизация логических выражений с помощью карт Карно.

Куб Карно́ — графический способ минимизации переключательных (булевых) функций, обеспечивающий относительную простоту работы с большими выражениями и устранение потенциальных гонок. Представляет собой операции попарного неполного склеивания и элементарного поглощения. Карты Карно рассматриваются как перестроенная соответствующим образом таблица истинности функции. Карты Карно можно рассматривать как определенную плоскую развертку n-мерного булева куба.

В карту Карно булевы переменные передаются из таблицы истинности и упорядочиваются с помощью кода Грея, в котором каждое следующее число отличается от предыдущего только одним разрядом.

Принципы минимизации

Основным методом минимизации логических функций, представленных в виде СДНФ или СКНФ, является операция попарного неполного склеивания и элементарного поглощения. Операция попарного склеивания осуществляется между двумя термами (членами), содержащими одинаковые переменные, вхождения которых (прямые и инверсные) совпадают для всех переменных, кроме одной. В этом случае все переменные, кроме одной, можно вынести за скобки, а оставшиеся в скобках прямое и инверсное вхождение одной переменной подвергнуть склейке. Например:

Аналогично для КНФ:

Возможность поглощения следует из очевидных равенств

Таким образом, главной задачей при минимизации СДНФ и СКНФ является поиск термов, пригодных к склейке с последующим поглощением, что для больших форм может оказаться достаточно сложной задачей. Карты Карно предоставляют наглядный способ отыскания таких термов.

Как известно, булевы функции N переменных, представленные в виде СДНФ или СКНФ, могут иметь в своём составе 2N различных термов. Все эти члены составляют некоторую структуру, топологически эквивалентную N–мерному кубу, причём любые два терма, соединённые ребром, пригодны для склейки и поглощения.

На рисунке изображена простая таблица истинности для функции из двух переменных, соответствующий этой таблице 2-мерный куб (квадрат), а также 2-мерный куб с обозначением членов СДНФ и эквивалентная таблица для группировки термов:

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

Таблица не верна. Верной будет: 1 1 0 0 1 1 0 0 Как видно из рисунка, для трёхмерного случая возможны более сложные конфигурации термов. Например, четыре терма, принадлежащие одной грани куба, объединяются в один терм с поглощением двух переменных:

В общем случае можно сказать, что 2K термов, принадлежащие одной K–мерной грани гиперкуба, склеиваются в один терм, при этом поглощаются K переменных.

Для упрощения работы с булевыми функциями большого числа переменных был предложен следующий удобный приём. Куб, представляющий собой структуру термов, разворачивается на плоскость как показано на рисунке. Таким образом появляется возможность представлять булевы функции с числом переменных больше двух в виде плоской таблицы. При этом следует помнить, что порядок кодов термов в таблице (00 01 11 10) не соответствует порядку следования двоичных чисел, а клетки, находящиеся в крайних столбцах таблицы, соседствуют между собой.

Аналогичным образом можно работать с функциями пяти, семи (обязательно простое число) и т.д., используя невизуализируемые многомерные булевы кубы.

  1. Сумматор по модулю два. Полусумматор. Построение полного однозарядного сумматора на основе двух полусумматоров.

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

Сумматоры по модулю 2 учитывают только сумму в данном раз­ряде при сложении одноименных разрядов двух чисел.

Полусумматор — логическая схема, имеющая два входа и два выхода (двухразрядный сумматор, бинарный сумматор). Полусумматор используется для построения двоичных сумматоров. Полусумматор позволяет вычислять сумму A+B, где A и B — это разряды двоичного числа, при этом результатом будут два бита S и C, где S — это бит суммы по модулю 2, а C — бит переноса. Однако, как можно заметить, для построения схемы двоичного сумматора (трёхразрядный сумматор, тринарный сумматор) необходимо иметь элемент, который суммирует три бита A, B и C, где C — бит переноса из предыдущего разряда, таким элементом является полный двоичный сумматор, который как правило состоит из двух полусумматоров и логического элемента 2ИЛИ.

Для постро­ения сумматоров двух многоразрядных двоичных чисел необходи­мо учитывать перенос в данный разряд из предыдущего разряда. Это можно сделать на основе использования полного одноразрядно­го сумматора. Втабл. 2 приведена таблица истинности полного од­норазрядного сумматора, а его условное обозначение приведено на рис. 12.

В

табл. 2 Ai, Bi – произвольные разряды слагаемых; Pi–1– перенос из предыдущего разряда; Si – разряд суммы в данном разряде; Pi – перенос в следующий разряд. Из табл. 2 следует, что Si = Ai ⊕ Bi ⊕ Pi–1. Минимизировав логическое выражение для переноса � � � � � � Pi, получим

Pi = Ai Bi + Ai Pi–1 + Bi Pi–1.

Это означает, что полный одноразрядный сумматор формирует сумму по модулю 2 от трех двоичных аргументов. Поэтому разряд суммы Si можно получить с помощью двух сумматоров по модулю 2. В этом случае можно существенно упростить логическую схему формирования переноса Pi, если Pi выразить через Ai, Bi, Pi–1 и дополнительную логическую переменную Di = Ai ⊕ Bi. Составив для Pi таблицу истинности, и, минимизировав логические выражения с помощью карт Карно, получим

Pi = Ai Bi + Pi–1 Di.

Это позволит построить схему полного одноразрядного сумматора на двух полусумматорах и логическом элементе ИЛИ ИЛИ ИЛИ . Обобщая выражение для Si на случай N аргументов, замечаем, что сумма по модулю 2 от N аргументов истинна, если истинно нечетное число ее аргументов (функция нечетности). Это обстоятельство можно положить в основу построения логической схемы для контроля кодов по данному признаку. Такая схема реализуется в виде последовательного (либо параллельно-последовательного для ускорения получения результата) включения сумматоров по модулю 2. Из табл. 2 могут быть получены различные тупиковые выражения для Si и Pi, что приводит к различным булевым функциям (в конечном счете, к различным по аппаратным затратам).

С

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

  1. Параллельный многозарядный сумматор двух чисел.

  2. Код Грея. Синтез преобразователя двоичного кода в код Грея. Обратное преобразование.

Код Грея — система счисления, в которой два соседних значения различаются только в одном разряде. Наиболее часто на практике применяется рефлексивный двоичный код Грея, хотя в общем случае существует бесконечное множество кодов Грея для систем счисления с любым основанием. В большинстве случаев, под термином «код Грея» понимают именно рефлексивный бинарный код Грея.

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

Преобразование двоичного кода в код Грея

Коды Грея легко получаются из двоичных чисел путём побитовой операции «Исключающее ИЛИ» с тем же числом, сдвинутым вправо на один бит. Следовательно, i-й бит кода Грея Gi выражается через биты двоичного кода Bi следующим образом:

где – операция «исключающее ИЛИ»; биты нумеруются справа налево, начиная с младшего.