Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
230
Добавлен:
04.01.2020
Размер:
5.37 Mб
Скачать

8 Укажите способы наращивания числа входов логических элементов.

9 Поясните, почему нельзя соединить параллельно логические элементы с логическим выходом с целью наращивания числа входов?

10 Укажите особенности элементов с тремя состояниями выхода.

11 Укажите назначение резистора RП, подключенного к входу элемента с открытым коллектором (стоком).

12 Укажите достоинства и недостатки логических элементов с открытым коллектором (стоком).

13 Начертите схему индикации уровня лог. 1 с помощью светодиодного индикатора и инвертора с открытым стоком и поясните принцип работы.

14 Поясните назначение «подтягивающих» и «заземляющих» резисторов в цифровых элементах схемотехники КМОП.

Тема 1.4 Анализ и синтез комбинационных цифровых устройств

1.4.1 Этапы синтеза комбинационных цифровых устройств

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

Синтез КЦУ делится на пять этапов:

1)описание проектируемого узла в содержательных терминах (словесное описание);

2)формализация описания, т. е. составление таблицы истинности синтезируемого узла согласно его назначению и словесному описанию принципа работы;

3)переход от табличного описания синтезируемого узла к логикоматематическому описанию в виде логической функции в основном базисе;

4)анализ полученной функции с целью ее упрощения (минимизация);

5)составление функциональной (логической) схемы узла в заданном базисе (для неосновных базисов потребуется предварительное преобразование полученной на четвертом этапе минимальной формы функции из основного базиса в заданный неосновной базис).

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

71

1.4.2 Канонические формы представления логических функций

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

совершенная дизъюнктивная нормальная форма (СДНФ);

совершенная конъюнктивная нормальная форма (СКНФ).

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

СДНФ логической функции представляет собой дизъюнкцию конститу-

ент единицы (или минтермов), например:

f

СДНФ

(X

, X

, X

) X

X

2

X

3

X

1

X

2

X

.

 

1

2

3

1

 

 

 

 

3

 

(1.38)

Нормальной эта форма функции называется потому, что состоит из элемен-

тарных конъюнкций (или термов).

Элементарными называются конъюнкции, сомножителями в которых являются одиночные аргументы либо отрицания одиночных аргументов. Напри-

мер, конъюнкция

X

X

2

X

3

является элементарной, а

X

X

2

X

3

– нет.

1

 

 

1

 

 

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

Количество сомножителей в элементарной конъюнкции называется ее ран-

гом. Элементарная конъюнкция высшего ранга называется

конституентой

единицы или минтермом. Для n аргументов можно составить

2

n

конституент

 

 

 

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

 

 

 

 

 

 

 

X1 X 2 X 3

принимает

значение единица для набора аргументов 100

(X1 1, X2

0, X3 0),

а остальные семь конституент для этого набора аргу-

ментов будут равны нулю.

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

Правило. Чтобы получить в СДНФ аналитическое выражение логической функции, заданной таблично, необходимо составить дизъюнкцию конститу-

72

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

Например, запишем в СДНФ аналитическое выражение логической функции, заданной в таблице 1.9, для этого рассмотрим второй, третий, пятый и седьмой наборы аргументов:

fСДНФ (X1, X2, X3) = X1 ∙ X2 ∙ X3 ˅ X1 ∙ X2 ∙ X3 ˅ X1 ∙ X2 ∙ X3 ˅ X1 ∙ X2 ∙ X3. (1.39)

Таблица 1.9 – Таблица истинности для логической функции трех аргументов

Номер набора

0

1

2

3

4

5

6

7

 

 

 

 

 

 

 

 

 

X1

0

0

0

0

1

1

1

1

X2

0

0

1

1

0

0

1

1

X3

0

1

0

1

0

1

0

1

f (X1, X2 , X3 )

0

0

1

1

0

1

0

1

 

 

 

 

 

 

 

 

 

Приведем форму представления логической функции, не являющуюся СДНФ. Например, функция (1.40) представлена не в СДНФ, а в ДНФ, так как первое слагаемое имеет первый ранг (для СДНФ каждая элементарная конъюнкция должна быть высшего ранга, в данном случае – третьего).

 

 

 

 

 

 

 

 

 

 

f (X1, X2, X3) X1 X1 X2 X 3 X1 X 2 X 3.

(1.40)

Для перехода от ДНФ к СДНФ необходимо в каждую элементарную конъюнкцию, в которых представлены не все аргументы, ввести выражение вида

 

 

 

xi x i 1,

 

xi x i , где xi – отсутствующий аргумент. Так как

такая опера-

ция не может изменить значения функции.

СКНФ логической функции представляет собой конъюнкцию конституент

нуля (или макстермов), например:

 

fСКНФ (X1, X2, X3) = (X1 ˅ X2 ˅ X3) ∙ (X1 ˅ X2 ˅ X3) ∙ (X1 ˅ X2 ˅ X3).

(1.41)

73

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

Элементарными называются дизъюнкции, слагаемыми в которых являются одиночные аргументы либо отрицания одиночных аргументов. Например,

дизъюнкция

(X X

2

X

3

)

является элементарной, а

(X X

2

X

3

)

– нет.

1

 

 

1

 

 

Совершенной эта форма функции называется потому, что элементарные дизъюнкции имеют высший ранг, т. е. являются конституентами нуля. Количество слагаемых в элементарной дизъюнкции называется ее рангом. Элементарная дизъюнкция высшего ранга называется конституентой нуля (или макс-

термом). Для n аргументов можно составить

2

n

конституент нуля, причем для

 

 

 

заданных значений наборов аргументов только одна конституента будет равна

нулю, а остальные – единице. Например, конституента

(X X

2

X

3

)

прини-

1

 

 

мает значение нуль для набора аргументов 011

(X 0, X

2

1, X

1),

а

1

3

 

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

ции.

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

Например, запишем в СКНФ аналитическое выражение логической функции, заданной в таблице 1.9, для этого рассмотрим нулевой, первый, четвертый

и шестой наборы аргументов:

 

fСКНФ (X1, X2, X3) = (X1 ˅ X2 ˅ X3) ∙ (X1 ˅ X2 ˅ X3) ∙ (X1 ˅ X2 ˅ X3) ∙ (X1 ˅

 

˅ X2 ˅ X3) .

(1.42)

Приведем форму представления логической функции, не являющуюся СКНФ. Например, функция (1.43) представлена не в СКНФ, а в КНФ, так как первая элементарная дизъюнкция имеет второй ранг.

 

 

 

 

 

 

 

 

f (X1, X2 , X3 ) (X1 X 2 ) (X1 X2 X3) (X1 X2 X 3).

(1.43)

74

Для перехода от КНФ к СКНФ необходимо в каждый из членов, в которых

представлены не все аргументы, ввести выражение вида xi i, где

x

i

– отсут-

 

ствующий аргумент. Так как xi i = 0, то такая операция не может повлиять на значения функции.

1.4.3 Исходные положения к минимизации

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

называется минимальной (МДНФ или МКНФ).

Существуют различные методы минимизации, но наиболее широко используются три. К ним относятся:

расчетный (алгебраический) метод;

табличный метод (метод Квайна);

метод карт Вейча или карт Карно.

Исходной формой логической функции для любого из этих методов является СДНФ или СКНФ.

1.4.4 Этапы минимизации

75

При любом методе минимизация выполняется в три этапа.

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

Например:

f

СДНФ

(X

, X

, X

) = X

1

· X

2

· X

3

˅ X

1

· X

2

· X

3

=

 

 

 

 

 

 

 

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= X

2

· X

3

· (X

1

˅ X

) = X

2

· X

3

· 1

= X

2

· X

.

(1.44)

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

импликанта

 

 

 

 

 

Соседними называют две конституенты единицы (нуля) одинакового ранга, который является функциями одних и тех же аргументов и отличаются знаком отрицания только одного из сомножителей (слагаемых).

Возможен случай, когда в совершенной форме логической функции нет соседних конституент, тогда сокращенная форма логической функции будет тождественно равна совершенной.

Второй этап. Выполняется переход от сокращенной нормальной формы логической функции к тупиковой. Тупиковой будем называть такую нормальную дизъюнктивную (или конъюнктивную) форму функции, членами которой являются импликанты, среди которых нет ни одной лишней. Термин «лишняя» импликанта, означает, что ее удаление не влияет на значение истинности функции. Возможны случаи, когда в сокращенной форме логической фукнции не оказывается лишних членов. Тогда тупиковая форма функции будет тождественно равна сокращенной. Название «тупиковая форма» показывает, что дальнейшая минимизация в рамках нормальных форм уже невозможна.

Третий этап. Осуществляется переход от тупиковой формы функции (минимальной среди нормальных форм) к ее минимальной форме. Здесь подразумевается поиск возможностей упрощения функции методом проб и ошибок. Для уменьшения числа операций отрицания следует применять закон инверсии, а для уменьшения числа конъюнкций и дизъюнкций – распределительные зако-

76

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

Различные методы минимизации отличаются друг от друга путями и средствами практической реализации того или иного этапа. При расчетном методе минимизации логических функций склеивание и поиск лишних импликант производится с использованием законов и тождеств алгебры логики. Его недостатком является сложность. Табличный метод (метод Квайна) отличается от расчетного только методикой выявления лишних членов сокращенной ДНФ (КНФ). Табличный метод используется для минимизации логических функций любой сложности с применением ЭВМ.

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

1.4.5 Минимизация логических функций с применением карт Карно

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

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

77

 

x

2

x

3

 

 

 

 

 

 

 

x

3

x

4

 

 

 

 

 

 

 

 

x

 

x

 

 

 

 

 

 

 

 

00

01

11

10

 

 

 

 

00

01

11

10

x

1

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

f(000)

f(001)

f(011)

f(010)

 

 

 

00

f(0000)

f(0001)

f(0011)

f(0010)

 

1

 

f(100)

f(101)

f(111)

f(110)

 

 

 

01

f(0100)

f(0101)

f(0111)

f(0110)

 

 

 

 

 

 

 

а)

 

 

 

 

11

f(1100)

f(1101)

f(1111)

f(1110)

 

 

 

 

 

 

 

 

 

 

 

 

10

f(1000)

f(1001)

f(1011)

f(1010)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б)

 

Рисунок 1.30 – Карты Карно для логических функций трех (а) и четырех (б) аргументов

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

Для нумерации строк и столбцов на карте Карно значения аргументов следует проставлять не в обычном двоичном коде 00, 01, 10, 11, а в коде Грея 00,

01, 11, 10 (рисунок 1.30). Особенностью кода Грея является то, что две соседние кодовые комбинации отличаются значениями только одного разряда, следовательно, в смежных по строке либо колонке клетках карты Карно будут находиться соседние конституенты и их можно будет склеивать. Числа в коде Грея можно получить из двоичных чисел путем сложения по модулю 2 с теми же числами, сдвинутыми на один разряд вправо. Например, представление двоичного числа 10 в коде Грея получается следующим образом:

1

0

 

исходное двоичное

 

 

 

 

 

1

0

сдвинутое вправо

1

1

 

число в коде Грея

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

78

Рассмотрим пример задания логической функции трех аргументов, функционирование которой задано в табличной форме (таблица 1.10), с помощью карты Карно (рисунок 1.31).

Таблица 1.10 – Таблица истинности для логической функции трех аргументов

Номер набора

0

1

2

3

4

5

6

7

 

 

 

 

 

 

 

 

 

х1

0

0

0

0

1

1

1

1

 

 

 

 

 

 

 

 

 

х2

0

0

1

1

0

0

1

1

 

 

 

 

 

 

 

 

 

х3

0

1

0

1

0

1

0

1

 

 

 

 

 

 

 

 

 

f(X1 , X2 , X3 )

1

0

1

0

0

0

1

1

 

 

 

 

 

 

 

 

 

 

X

X

3

 

 

 

 

2

 

 

 

 

X

1

 

00

01

11

10

 

 

 

 

 

 

 

0

 

1

0

0

1

 

1

 

0

0

1

1

Рисунок 1.31 – Карта Карно для логической функции трех аргументов, функционирование которой задано таблицей 1.10

Процесс минимизации логических функций с помощью карт Карно состоит из трех этапов.

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

Второй этап объединение (склеивание) соседних конституент (мин-

термов либо макстермов). В общем случае соседние конституенты склеиваются в следующих случаях:

единицы (нули) соответствующих конституент, число которых равно 2j (2j = 1, 2, 4, 8, …), расположены рядом в одной строке (в одном столбце) или образуют прямоугольник (квадрат);

единицы (нули) соответствующих конституент расположены на противоположных концах столбца (строки) или по противоположным углам;

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

79

Чем больше клеток в замкнутой области, тем проще результат минимизации, так как при склеивании ранг понижается на j единиц. Следовательно замкнутые области должны охватывать максимальное число единиц (нулей), а число замкнутых областей должно быть минимальным. Причем при минимизации в СДНФ в замкнутые области следует объединять только единицы, а в СКНФ – только нули. За счет этого достигается оптимальный вариант минимизации, не требующий дополнительных действий.

Третий этап получение результата минимизации. Импликанта, со-

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

Рассмотрим примеры минимизации логических функций с помощью карт Карно. В примерах 1.24…1.27 (рисунки 1.32…1.35) результат минимизации запишем в МДНФ. При этом следует помнить, что в ДНФ логической функции справедливо соотношение:

 

X

 

;

0

i

ДНФ

 

 

X

 

 

1

.

 

 

i

 

 

(1.45)

Пример 1.24. Минимизируем логическую функцию трех аргументов

fсднф(x1, x2, x3) = V(0, 1, 2, 6), т. е. логическая функция принимает единичное значение на нулевом, первом, втором и шестом наборах аргументов.

X2

X3

 

 

 

 

 

X1

00

01

11

10

 

 

0

1

1

0

1

 

 

 

 

 

 

 

 

 

1

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fТДНФ(X1, X2, X3) = fМДНФ(X1, X2, X3) = (X1 · X2) ˅ X2 · X3.

Рисунок 1.32 – Карта Карно и результат минимизации к примеру 1.24

Пример 1.25. Минимизируем логическую функцию трех аргументов fсднф(x1, x2, x3) = V(0, 1, 4, 5, 6).

80