Любая цифровая комбинационная схема (логическая схема без памяти) полностью описывается таблицей истинности. При этом не обязательно чтобы все комбинации входных цифровых сигналов были полезными. Возможна ситуация, когда только часть комбинаций входных логических сигналов является полезной. В этом случае выходные сигналы цифрового устройства для оставшихся комбинаций входных логических сигналов могут быть доопределены произвольно. Обычно при этом стараются выбирать цифровые значения выходных сигналов таким образом, чтобы схема цифрового устройства получилась простейшей.
Для реализации цифровых логических схем с произвольной таблицей истинности используется сочетание простейших логических элементов "И" "ИЛИ" "НЕ". Существует два способа синтеза цифровых схем, реализующих произвольную таблицу истинности. Это СКНФ (логическое произведение суммы входных сигналов) и СДНФ (сумма логических произведений входных сигналов).
При синтезе цифровой схемы, реализующей произвольную таблицу истинности, каждый выход анализируется (и строится схема) отдельно и независимо. В настоящее время наиболее распространены цифровые микросхемы, совместимые с ТТЛ технологией, а в этой технологии производства микросхем проще всего получить логические элементы "И". Поэтому первым рассмотрим способ реализации произвольной таблицы истинности основанный на СДНФ.
Совершенная дизъюнктивная нормальная форма (СДНФ)
Для реализации таблицы истинности при помощи логических элементов "И" (СДНФ) достаточно рассмотреть только те строки таблицы истинности, которые содержат логические "1" в выходном сигнале. Строки, содержащие в выходном сигнале логический 0 в построении цифровой схемы не участвуют. Каждая строка, содержащая в выходном сигнале логическую "1", реализуется схемой логического элемента "И" с количеством входов, совпадающим с количеством входных сигналов в таблице истинности.
Входные сигналы, описанные в таблице истинности логической единицей, подаются на вход этого логического элемента непосредственно, а входные сигналы, описанные в таблице истинности логическим нулем, подаются на вход этого же логического элемента "И" через инверторы. Объединение сигналов с выходов логических элементов "И", реализующих отдельные строки таблицы истинности, производится при помощи логического элемента "ИЛИ". Количество его входов определяется количеством строк в таблице истинности, в которых в выходном сигнале присутствует логическая единица.
Рассмотрим конкретный пример. Пусть цифровому устройству необходимо реализовать таблицу истинности, приведенную на рисунке 1:
Рисунок 1. Произвольная таблица истинности
Для синтеза цифровой схемы, реализующей сигнал Out0, достаточно рассмотреть строки, выделенные красным цветом. В таблице истинности три строки, содержащие единицу в выходном сигнале Out0, поэтому в формуле СДНФ будет содержаться три произведения входных сигналов — термов, а точнее минтермов:
Так как количество переменных в каждом терме (ранг терма) данного логического выражения равно, то такое логическое выражение называется совершенным. (Совершенная Дизъюнктивная Нормальная Форма — СДНФ)
Полученное логическое выражение реализуются микросхемой D2 в схеме, приведенной на рисунке 2. Как и в формуле, каждая строка (терм) реализуется своим логическим элементом "И", затем выходы этих логических элементов объединяются при помощи логического элемента "ИЛИ". Количество входов логического элемента "И" (ранг минтерма) в СДНФ однозначно определяется количеством входных сигналов в таблице истинности. Количество этих элементов, а значит и количество входов в логическом элементе "ИЛИ" определяется количеством строк с единичным сигналом на реализуемом выходе цифровой схемы.
Рисунок 2. Принципиальная схема цифрового устройства, реализующая таблицу истинности, приведенную на рисунке 1
Для построения принципиальной схемы, реализующей сигнал Out1, достаточно рассмотреть строки, выделенные зеленым цветом. Эти строки реализуются микросхемой D3. Принцип построения этой схемы не отличается от примера, рассмотренного выше. В таблице истинности присутствуют всего три строки, содержащие единицу в выходном сигнале Out1, поэтому в формуле СДНФ выхода Out1 будет содержаться три произведения входных сигналов:
Обычно при построении цифровых схем после реализации таблицы истинности производится минимизация схемы по законам алгебры логики, но для упрощения понимания материала сейчас минимизация производиться не будет. Это оправдано еще и с той точки зрения, что неминимизированные схемы обычно обладают максимальным быстродействием. При реализации схемы на ТТЛ микросхемах быстродействие всего узла будет равно быстродействию одиночного инвертора (см. описание ТТЛ микросхем).
По СДНФ форме логического выражения обычно строятся современные микросхемы большой интеграции — программируемые логические интегральные схемы (ПЛИС), такие как программируемые логические матрицы (ПЛМ), программируемые матрицы логики ПМЛ или CPLD.