1. Методы анализа и синтеза комбинационных схем.
Техническим аналогом булевой функции в вычислительной технике является, так называемая, комбинационная схема, на вход которой поступают и с выхода снимаются электрические сигналы в виде одного из уровней напряжения, соответствующих значениям логического 0 и логической 1.
Для выяснения, что же такое комбинационная схема, рассмотрим схему S, имеющую m входов и n выходов (рис. 1). На её входы могут быть поданы наборы значений входных переменных Xi {0,1},
, а на выходах формируются выходные переменные
YjÎ{0,1},
.
Схема S называется комбинационной, если каждую из n функций её выходов Y1,Y2, ..., Yn можно представить как булеву функцию входных переменных X1, X2, ..., Xm.
Комбинационная схема описывается с помощью системы уравнений (1), где Fi– булева функция.
Как следует из определения комбинационной схемы, значения выходных переменных Yjв произвольный момент времени однозначно определяются значениями входных переменных Xi.
Структурно комбинационная схема может быть представлена как совокупность элементарных логических схем – логических элементов (ЛЭ). ЛЭ выполняют над входными переменными элементарные логические операции типа И-НЕ, И, ИЛИ, ИЛИ-НЕ и т.д. Число входов логического элемента соответствует числу аргументов воспроизводимой им булевой функции. Графическое изображение комбинационной схемы, при котором показаны связи между различными элементами, а сами элементы представлены условными обозначениями, называется функциональной схемой.
В ходе разработки комбинационных схем приходится решать задачи анализа и синтеза.
Задача анализа состоит в определении статических и динамических свойств комбинационной схемы. В статике определяются булевы функции, реализуемые комбинационной схемой по известной ей структуре. В динамике рассматривается способность надёжного функционирования схемы в переходных процессах при смене значений переменных на входах схемы, т.е. определяется наличие на выходах схемы возможных нежелательных импульсных сигналов, которые не следуют непосредственно из выражений для булевых функций, реализуемых схемой.
Задача синтеза заключается в построении из заданного набора логических элементов комбинационной схемы, реализующей заданную систему булевых функций.
Решение задачи синтеза не является однозначным, можно предложить различные варианты комбинационных схем, реализующих одну и ту же систему булевых функций, но отличающихся по тем или иным параметрам. Разработчик комбинационных схем из этого множества вариантов выбирает один, исходя из дополнительных критериев: минимального количества логических элементов, необходимых для реализации схемы, максимального быстродействия и т.д. Существуют различные методы синтеза комбинационных схем, среди которых наиболее разработан канонический метод.
1.1. Канонический метод синтеза комбинационных схем.
Как отмечалось выше, комбинационная схема (КС) может иметь несколько выходов. При каноническом методе предполагается, что каждая выходная функция реализуется своей схемой, совокупность которых и даёт требуемую КС. Поэтому синтез сложной КС с n выходами заменяется синтезом n схем с одним выходом.
Согласно каноническому методу синтез КС включает в себя ряд этапов.
1. Подлежащая реализации булева функция (или её отрицание) представляется в виде СДНФ.
2. С использованием методов минимизации определяется минимальная ДНФ (МДНФ) или минимальная КНФ (МКНФ). Из полученных двух минимальных форм выбирается более простая.
3. Булеву функцию в минимальной форме согласно п.2 представляют в заданном (или выбранном разработчиком) базисе .
4. По представлению функции в заданном базисе строят комбинационную схему.
Необходимо отметить, что подлежащая реализации булева функция F(X1,X2,...,Xm) может быть задана не на всех возможных наборах аргументов X1, X2, ..., Xm. На тех наборах, где функция неопределенна, её доопределяют так, чтобы в результате минимизации получить более простую МДНФ или МКНФ. При этом упростится и сама КС. Кроме того, довольно часто с целью получения ещё более простого представления функции МДНФ, полученная в п.2, представляется в так называемой скобочной форме, т.е. выносятся за скобки общие части импликант МДНФ.
Рассмотрим канонический метод синтеза на примере построения схемы полного одноразрядного двоичного сумматора.
Как известно из курса машинной арифметики, полный одноразрядный сумматор - это устройство, которое осуществляет сложение по mod 2 соответствующих разрядов (X1,X2) двоичных чисел с учётом переноса (Рm) в данный разряд из соседнего младшего разряда суммы. Сумматор вырабатывает цифру результата (S) в данном разряде и перенос (Рс) в соседний старший разряд суммы. Таблица истинности такого сумматора (т.е. представление булевой функции, которую он реализует, в виде СДНФ) представлена ниже.
Pm 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | S | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
Pc | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
Необходимо получить булевы функции S=F1(X1,X2,Рm) и Рс=F2(X1,X2,Рm). Карты Карно для этих функций приведены ниже (рис.2).
Как следует из приведённых карт, МДНФ соответствующих функций имеет вид:
S= Pm+ X2 +X1 + X1 X2 Pm Pc= X1 X2+X1 Pm+X2 Pm
Полученная система булевых функций представлена в базисе И, ИЛИ, НЕ. Соответствующая ей КС приведена на рисунке 4.
Полученную комбинационную схему можно упростить, вынеся за скобки общие части в выражениях для S и Рc, однако существенного результата это не даст (желательно самостоятельно в этом убедиться).
Значительно упростить схему можно, если воспользоваться другим базисом, например логическим элементом "ИСКЛЮЧАЮЩЕЕ ИЛИ". В этом случае выражение для S можно записать S = (X1+X2+ Рm)mod2= X1Å X2Å Рm. Тогда схема для S будет иметь вид (рис.3).
Иногда для синтеза КС с несколькими выходами может использоваться следующий приём. Будем считать, что при синтезе схемы сумматора функция S является функцией четырёх переменных: S=f(X1,X2,Рm,Рс). Таблица истинности для этого случая принимает вид изображенный в таблице 2.
Неопределённые значения для S соответствуют наборам, которые никогда не могут быть в реальной схеме. Карта Карно для функции S=f(X1,X2,Pm,Pc) представлена на рис.5.