Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы логического синтеза цифровых устройств.doc
Скачиваний:
274
Добавлен:
05.06.2015
Размер:
1.05 Mб
Скачать

8. Приведение логической функции к заданному базису

Ранее рассмотренные методы позволяют получить ЛФ, содержащую набор операций НЕ, И, ИЛИ. Говорят, что мы строим ЛФ в базисе НЕ, И, ИЛИ. Очевидно, что этот набор является функционально полным, то есть с его помощью можно реализовать любую логическую функцию, и даже имеет некоторую избыточность. Так, свойство функциональной полноты сохраняется, если исключить одну из функций И или ИЛИ. Свойствами функциональной полноты обладают также наборы: 1) И-НЕ; 2) ИЛИ-НЕ и другие.

При проектировании цифровых схем наличие элементной базы или другие причины могут потребовать реализации заданной ЛФ в определенном базисе.

8.1 Приведение логической функции к базису и-не.

Для приведения ЛФ из базиса И, ИЛИ, НЕ в базис И-НЕ используют закон двойного отрицания.

Сначала выполняются операции И-НЕ на минтермах C1iF(Ai), а затем операция И-НЕ над результатами.

Пример приведения ЛФ к базису И-НЕ.

Функция представлена в виде карты Карно.

Рис.28.

Результат минимизации в базисе И, ИЛИ, НЕ и перевод в базис И-НЕ:

; ;.

Рис.29. Схема в базисе И, ИЛИ, НЕ. Рис.30. Схема в базисе И-НЕ.

8.2. Преобразование лф к базису или-не

За основу следует взять СКНФ ЛФ и использовать закон двойного отрицания.

Сначала выполняют операцию ИЛИ-НЕ на макстермах [CiF(Ai)], а затем операция ИЛИ-НЕ над результатом.

Как и СДНФ, СКНФ сначала следует минимизировать. Практическая последовательность получения минимальной КНФ может быть следующей: __

а) сначала находим инверсную МДНФ F с помощью карт Карно, но контуры проводим вокруг 0-клеток. Правила записи суммы минтермов те же. Для дополнительной минимизации можно в контуры включать безразличные (неопределенные) значения логической функции;

б) инвертируя выражение функции и применяя правило де Моргана, получаем минимальную КНФ.

Рис.31. Пример логической

функции

(для сравнения функция та же,

что и для преобразования в базис И-НЕ).

_ __ __ __ __

а) F = X1X3 + X2X3 + X2X3X4;

б) приводим к конъюктивной нормальной форме:

(рис.32)

Минимальную КНФ можно получить сразу из карты Карно. Проводим контуры вокруг 0-клеток. Каждому контуру соответствует макстерм (сумма, дизъюнкция) переменных, не изменяющих форму вхождения внутри контура. Если переменная на контуре имеет значение 0, то в макстерм она записывается в прямой форме, если равна 1, то в инверсной форме.

Подвергая МКНФ двойной инверсии и используя правило де Моргана, приводим ЛФ к базису ИЛИ-НЕ. Для рассмотренного примера МКНФ в базисе ИЛИ-НЕ:

Рис.32. Схема в базисе И, ИЛИ, НЕ. Рис.33. Схема в базисе ИЛИ-НЕ.

В результате мы получили четыре варианта реализации логической функции: а) конъюктивная форма в базисе И, ИЛИ, НЕ (рис.29); б) дизъюнктивная форма в базисе И, ИЛИ, НЕ (рис.32); в) в базисе И-НЕ (рис.30); г) в базисе ИЛИ-НЕ (рис.33).

9. Минимизация логических функций с несколькими выходами

При синтезе логических устройств с n входами и m выходами минимизация может проводиться независимо для каждого выхода. Однако, в целом такое устройство может оказаться не минимальным. Дополнительная минимизация может быть проведена путем использования общих элементов, общих минтермов, импликант для формирования различных выходных сигналов. Из этих соображений приведение каждой из выходных функций к минимальной форме не является условием получения минимального в целом устройства. При минимизации устройства в целом некоторые функции и импликанты лучше оставить в неминимальной форме, если они будут общими для нескольких выходов. Если функции имеют общие члены, то можно провести их совместную оптимизацию, выражая одну функцию через другую или вводя промежуточные функции, которые могут быть реализованы один раз и использованы при построении нескольких функций.

В качестве примера минимизации ЛФ с несколькими функциями рассмотрим синтез преобразователя кода 8421 в код 2421.

Обозначим входные переменные, соответствующие отдельным разрядам кода 8421,- Х4,Х3,Х2,Х1, а выходные переменные кода 2421 - Y4,Y3,Y2,Y1.

I

X4

X3

X2

X1

Y4

Y3

Y2

Y1

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

1

2

0

0

1

0

0

0

1

0

3

0

0

1

1

0

0

1

1

4

0

1

0

0

0

1

0

0

5

0

1

0

1

1

0

1

1

6

0

1

1

0

1

1

0

0

7

0

1

1

1

1

1

0

1

8

1

0

0

0

1

1

1

0

9

1

0

0

1

1

1

1

1

Каждый из разрядов кода 2421 Y4, Y3, Y2, Y1 можно рассматривать как функцию от аргумента Х4, Х3, Х2, Х1:

Y4 = f4 ( Х4 , Х3 , Х2 , Х1 ) ; Y3 = f3 ( Х4 , Х3 , Х2 , Х1 ) ;

Y2 = f2 ( Х4 , Х3 , Х2 , Х1 ) ; Y1 = f1 ( Х4 , Х3 , Х2 , Х1 ).

Рис.34. Схема расположения минтермов

(указано их десятичное представление для расположения переменных Х4Х3Х2Х1).

Для каждой функции заполняем карту Карно и проводим минимизацию.

__ __

Y1 = X1; Y2 = X4 + X2 X3 + X1 X2 X3.

__

Y3 = X4 + X1 X3 + X2 X3; Y4 = X4 + X1 X3 + X2 X3.

Преобразуем к базису И-НЕ:

Y1 = X1;

;

.

Проанализируем выражения и выделим общие слагаемые:

.

Рис.35. Схема преобразователя кодов в базисе И-НЕ.