Часть 2. Синтез схемы комбинационного устройства по заданной таблице истинности.
В цифровой схемотехнике можно выделить два основных класса устройств – комбинационные устройства (КУ) и последовательности устройства или конечные автоматы (КА). Оба класса устройств служат для преобразования и обработки цифровых сигналов, которые представляют входную и выходную информацию на каждом такте работы устройства в двоичной системе счисления в виде наборов (кодовых слов) из двух знаков «0», «1».
В радиотехнических, телевизионных и других системах цифровые сигналы получаются при преобразовании исходных аналоговых сигналов в цифровую форму в аналогово-цифровых преобразователях (АЦП), в вычислительной технике при записи чисел в двоичной системе. Тактовая частота, определяющая быстродействие цифровых устройств, зависит от времени переключения логических элементов (ЛЭ), входящих в состав КУ или КА, их схемами и технологией изготовления.
Комбинационным называют устройство, в котором значение выходного сигнала на данном такте определяется значением входного сигнала на том же такте.
Последовательностным называют устройство, в котором значение выходного сигнала на данном такте определяется значением входного сигнала на том же и ряде предыдущих тактов. Такое устройство должно включать элементы памяти, в которых хранятся значения сигнала с предыдущих тактов.
Пусть комбинационное устройство имеет n входов, на которые подаётся входной сигнал в виде комбинации xn, xn-1, …x2, x1 и m выходов ym, ym-1, …y2, y1 , каждый из которых соответствует одной логической функции от аргументов xi , i=1,2,…n. Число m возможных логических функций yj , j=1,2,…m ограничено и определяется числом n аргументов логической функции. Это получается ввиду того, что каждый аргумент xi и каждая функция yj могут принимать только два дискретных значения xi=0,1; yj=0,1.
Рассмотрим логические функции одной x и двух x2 ,x1 переменных, задавая их таблицами истинности.
Для одной переменной
(n=1)
возможны всего
=4
функции, приведённые в таблице истинности.
На графике в переменных x, y значения этих функций соответствуют углам квадрата.
|
x y1 y2 y3 y4 0 0 1 0 1 1 0 0 1 1
|
|
Функции имеют следующие названия:
y1 ≡0 – тождественный ноль
y2=
- отрицание, «не»
y3=x – повторение
y4≡1 – тождественная 1.
Наиболее важное значение имеет функция «не». Выполняющий её логический элемент обозначается следующим образом:
![]()
Для двух переменных
(n=2)
возможны 2n=4
комбинации аргументов и m=
=16
логических функций. Приведем 5 наиболее
важных логических функций двух переменных
в одной таблице истинности. На графике
в зависимости от x1,
x2
значения этих функций лежат в углах
куба
|
x2
x1 y1 y2 y3 y4 y5 0
0 0 0 1 1 0 0
1 1 0 0 1 1 1
0 1 0 0 1 1 1
1
1 1 0 0 0 |
|
Они имеют следующие формы записи, названия и обозначение соответствующих ЛЭ:
|
|
логическое сложение |
«или» |
|
|
|
логическое умножение |
«и» |
|
|
|
функция Пирса |
«или-не» |
|
|
|
функция Шеффера |
«и-не», |
|
|
|
|||
При увеличении
числа аргументов n
число их комбинаций растет как 2n,
число возможных логических функций как
.
Комбинационные устройства, выполняющие эти логические функции, можно создать на основе логических элементов для одной и двух входных переменных. Это следует из соотношений алгебры логики, с помощью которых можно показать, что любая логическая функция выражается через один из наборов следующих базисных функций:
«и», «или», «не» - базис Буля;
«или-не» - базис Пирса;
«и-не» - базис Шеффера.
Сводя логическую функцию многих переменных к логическим функциям одного из этих базисов, можно затем построить схему соответствующего КУ на основе логических элементов одного базиса.
В целом синтез КУ можно разбить на следующие этапы:
-
Сформулировать алгоритм задачи, выполняемой КУ.
-
Составить таблицу истинности КУ на основании алгоритма его действия.
-
Записать логическую (структурную) формулу, описывающую работу КУ, на основании таблицы истинности КУ.
-
Минимизировать логическую формулу КУ, сведя её к тупиковому выражению, содержащему минимальное количество операций.
-
При необходимости перевести логическую формулу в заданный базис.
-
Составить схему КУ по его логической формуле.
Для выполнения этапов 3,4,5 в общем случае используем следующие правила.
Этап 3. Запись логической функции по таблице истинности производится в виде совершенной дизъюнктивной нормальной формы (СДНФ) или совершенной конъюнктивной нормальной формы (СКНФ).
Для составления логической формулы в СДНФ выбираем в таблице истинности строки, где логическая функция y=1, число таких строк обозначим Р; записываем логическую сумму Р произведений всех переменных xi; в соответствующем данной строке произведении xi записываем без инверсии, если хi=1 и с инверсией, если xi=0. Такие произведения называют минтермами.
Для составления логической формулы в СКНФ выбираем в таблице истинности строки, где логическая функция у=0, число таких строк обозначим Q; записываем логическое произведение Q сумм всех переменных xi; в соответствующей данной строке сумме xi записываем без инверсии, если xi=0, и с инверсией, если xi=1.
Целесообразно составлять логическую функцию в СДНФ, если P<Q и в СКНФ, если P>Q.
Этап 4. Минимизацию логических функций проводят с применением законов алгебры логики и карт Карно. Основные законы алгебры логики имеют вид:
|
|
(коммутативность) |
|
(ассоциативность) |
|
|
|
|
но
|
|
|
|
Следствия:
|
|
При алгебраической минимизации используют ряд приемов:
-
Добавление имеющихся слагаемых, т.к.
, -
Умножение на
, -
Выделение
, -
Применение законов поглощения и склеивания и др.
Карты Карно используют для минимизации логических функций, представленных в СДНФ как суммы минтермов m. Вид карт Карно для двух, трёх и четырёх переменных представлен на рисунке.
|
|
|
|||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
Каждому минтерму соответствует клетка на пересечении строки и столбца и если в полученную СДНФ входит этот минтерм, то ставим в такой клетке 1.
Структура карт Карно такова, что при переходе в соседний столбец или соседнюю строку инвертируется только одна переменная. Это же получается при переходе между верхней и нижней строками, между правым и левым столбцами, которые также могут считаться соседними. Поэтому минтермы соседних клеток склеиваются, причём можно склеивать группы минтермов из двух или четырёх соседних клеток.
Общие правила работы с картами Карно:
-
Склеиваться могут 2,4,8 и т.д. членов, расположенных в линию или прямоугольником; они очерчиваются контуром
-
Одним контуром следует объединять максимальное количество клеток
-
Одна и та же клетка может охватываться несколькими контурами, т.к. m=m+m+…m.
-
Крайние строки и крайние столбцы считаются соседними
С размеченной таким образом карты Карно производим считывание, т.е. запись логической функции в виде выделенных групп минтермов, включая и отдельные необъединенные минтермы. Далее внутри каждой группы производим склеивание, в результате получим минимальную дизъюнктивную нормальную форму (МДНФ) исходной логической функции.
Чтобы использовать
карты Карно при записи логической
функции у через строки таблицы истинности,
соответствующие у=0, целесообразно
применять СДНФ для инвертированной
функции
,
выбирая строки
.
Получив с помощью карты Карно МДНФ для
,
инвертируя её и применяя законы де
Моргана, придем к минимизированной
СКНФ. Запись функции в СДНФ целесообразна
при использовании логических элементов
«и-не», в СКНФ – при использовании
логических элементов «или-не».
Этап 5. Для перевода логической функции, записанной в виде СДНФ, к базису «и-не» (в виде СКНФ – к базису «или-не»), используется закон двойного отрицания и законы де Моргана.
Примеры синтеза КУ.
Пример 1. Полусумматор.
-
Полусумматор выполняет сложение двух одноразрядных двоичных чисел x1 , x2 . В соответствии с правилами сложения в данном разряде получаем сумму S=0 при x1=x2=0 и x1=x2=1 и S=1 при x1=0, x2=1; x1=1, x2=0. Перенос в следующий разряд С=1 только при x1=x2=1, в остальных случаях С=0.
-
Таблица истинности получается на основе правил сложения
x2
x1
S
C
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
-
Для данной таблицы S представляет функцию неравнозначности
,
С-функцию «и» C=x1x2.
Общие правила записи логической функции
по таблице истинности приведены выше. -
Для минимизации S используем соотношения алгебры логики:
.
В преобразованном выражении получаем 4 логических операции «и», «или», «не» (базис Буля), по сравнению с 6 операциями в исходных выражениях для S и C.
-
Преобразование к базису Шеффера «и-не»

-
Схемы полусумматора в различных базисах.
Полусумматор в базисе Буля по п.3

Полусумматор в базисе Буля после минимизации по п.4

Полусумматор в базисе Шеффера по п.5

При соединении входов ЛЭ «и-не» получаем элемент «не».
Полусумматор обозначается следующим образом, где А≡x1 , B≡x2 .

Пример 2. Составить схему полного одноразрядного сумматора, выполняющего сложение двоичного числа в i-m разряде с учетом переноса из предыдущего i-1 – го разряда.
Запишем порядок составления схемы по этапам.
-
Полный одноразрядный сумматор должен выполнять сложение трёх одноразрядных двоичных чисел по правилам двоичной арифметики:
0+0+0=0, 0+0+1=1, 0+1+1=10, 1+1+1=11.
-
Применение этих правил к сложению чисел Ai , Bi i-го разряда и переноса Сi в i-й разряд из предыдущего i-1 – го разряда приводит к следующей таблице истинности, в которой Si – сумма в i-м разряде, Ci+1 – перенос в i+1 – разряд.
|
Ai |
Bi |
Ci |
|
Si |
Ci+1 |
|
0 |
0 |
0 |
0 |
0 |
|
|
1 |
0 |
0 |
1 |
0 |
|
|
0 |
1 |
0 |
1 |
0 |
|
|
1 |
1 |
0 |
0 |
1 |
|
|
0 |
0 |
1 |
1 |
0 |
|
|
1 |
0 |
1 |
0 |
1 |
|
|
0 |
1 |
1 |
0 |
1 |
|
|
1 |
1 |
1 |
1 |
1 |
-
По таблице истинности составим логические формулы для Si и Ci+1 в совершенной дизъюнктивной нормальной форме (СДНФ):
,
(1)
(2)
-
Минимизируем полученные выражения. Для Ci+1 используем карту Карно

Получаем на карте Карно три объединения минтермов, которые склеиваются
(3)
То же самое получается чисто алгебраически, если в исходное выражение для Сi+1 добавить дважды уже имеющееся в нем слагаемое AiBiCi и сгруппировать члены.
В выражении для Si нет склеивающихся минтермов, в чем можно убедиться, составляя для Si карту Карно, т.е. выражение (1) является тупиковым.

Однако количество логических операций для совместной реализации логических функций Si, Ci+1 можно уменьшить, преобразуя Si к виду (доказать!):
(4)
-
Преобразование логических функций Si, Ci+1 к базису «и-не». Для этого используем законы двойного отрицания и инверсии де Моргана.
Получим:
(5)
(6)
Логический элемент
«не» также реализуется на логическом
элементе «и-не» при объединении его
входов, т.к.
![]()
Можно получить также выражение Si через неравнозначность.
Из (1) имеем:
(7)
т.к.
(доказать!)
Функцию «неравнозначность» представим через логическую функцию «и-не» следующим образом
(8)
-
Согласно выражениям (5) и (7) получим следующую схему полного одноразрядного сумматора
|
|
где ЛЭ |
|
выполняющий |
|
функцию неравнозначность, может быть построен на ЛЭ «и-не» согласно формуле (8).
|
|||
Полный одноразрядный сумматор обозначается следующим образом:

Пример 3. Минимизировать алгебраически и с помощью карты Карно логическую функцию.
![]()
Для алгебраической
минимизации добавим имеющееся в этом
выражении слагаемое
и сгруппируем члены следующим образом
![]()
Карта Карно имеет вид:

Объединение «а»
даёт х2х3
, объединение четырёх членов «в»
,
т.е.
.
Пример 4. Минимизировать с помощью карты Карно логическую функцию 4-х переменных.
![]()
Карта Карно имеет вид:

![]()
![]()
![]()
![]()
Минимизированная функция имеет вид:
![]()
Библиографический список
-
Ю.А. Быстров, И.Г. Мироненко. Электронные цепи и микросхемотехника, Москва, «Высшая школа», 2002.
-
С.В. Мухин, О.П. Новожилов. Цифровые и микропроцессорные устройства. Учебное пособие, МИЭМ.М.:2005.
Утверждено на заседании кафедры «Радиоэлектроника».
Протокол № 5 от 26 апреля 2006г.





