Декомпозиция комбинационных логических схем
2.4.1. Оценка сложности синтезируемой схемы. Поскольку на этапе декомпозиции требуется уменьшение сложности схемы, необходимо ввести критерий сложности. Абстрактной оценкой сложности схемы будем считать величину, определяемую выражением
где Величина
Для рассмотренного выше двоичного сумматора (рис. 2.3) сложность схемы равна 16 бит (
2.4.2. Параллельная декомпозиция комбинационных устройств.
Структурная схема комбинационного устройства, получаемая в результате параллельной декомпозиции, представлена на рис. 2.4.
Рис. 2.4. Параллельная декомпозиция логических блоков Определим условия, при которых целесообразно выделение параллельного блока, то есть уменьшается сложность описания синтезируемой схемы. Исходная сложность КЛС равна
После разделения на два блока сложность схемы составляет
Утверждение 2.3. Выделение параллельного блока будем считать целесообразным, если в системе Доказательство. Чтобы сложность схемы после разделения уменьшилась, должно выполняться неравенство (2.10):
После несложных преобразований неравенство (2.10) может быть записано в виде (2.11):
Поскольку
Из выражения (2.12) следует, что для обеспечения уменьшения сложности схемы в результате параллельной декомпозиции Таким образом, процедура выделения параллельного блока включает проверку существенной зависимости каждого выхода схемы от каждого из её входов. Результаты проверки заносятся в специальную таблицу, строки которой отмечены именами выходов, а столбцы – весами входных переменных синтезируемой схемы. Указанную проверку удобно делать с помощью поочерёдного разложения логической последовательности в матрицу по каждой из входных переменных (см. разделы 2.2.3 и 2.2.6). В полученной таким образом матрице содержатся две строки. Далее элементы первого столбца поразрядно (в двоичном представлении) суммируются по модулю два и полученное число заносится в столбец таблицы, соответствующий переменной, по которой проводилось разложение. Единичные разряды полученного числа отмечают те выходы, которые существенно зависят от рассматриваемого входа. Затем операция суммирования выполняется над элементами второго столбца, и полученная сумма объединяется по «ИЛИ» с уже записанным в столбец таблицы числом. Процедура повторяется для всех последующих столбцов матрицы разложения до тех пор, пока не окажутся заполненными единицами все строки рассматриваемого столбца таблицы. Если после просмотра всех столбцов матрицы разложения в какой-либо строке таблицы остался символ «0», то это означает, что соответствующий выход зависит фиктивно от рассматриваемой входной переменной. Построенная таким образом таблица позволяет выбрать группу выходов устройства, которые зависят не от всех входов. Далее из схемы выделяется параллельный блок, входами которого являются существенные для выделенной группы выходов входные переменные. Для определения числовой последовательности блока из числовой последовательности устройства сначала выделяются двоичные последовательности выделенных выходов, объединяются, если их несколько, и из полученной таким образом числовой последовательности исключаются фиктивные переменные (см. разделы 2.2.6, 2.2.9 и 2.2.10). Числовая последовательность первого из параллельных блоков, выходы которого существенно зависят от всех входов, получается из исходной числовой последовательности путём исключения двоичных последовательностей, соответствующих выходам второго блока. Учитывая то, что при параллельной декомпозиции Лемма 2.1. При параллельной декомпозиции сложность описания схемы всегда уменьшается. В качестве примера исследуем зависимость выходных сигналов для КЛС с числовой последовательностью
Рис. 2.5 Построим матрицы разложения числовой последовательности рассматриваемого блока по каждой из входных переменных:
Результаты проверки зависимости выходов от входов приведены в таблице 2.2. Таблица 2.2 Таблица зависимости выходов схемы от её входов
В результате анализа указанной таблицы можно сделать вывод о том, что выход Структурная схема, полученная в результате декомпозиции рассматриваемого устройства, представлена на рис. 2.6.
Рис. 2.6 Для определения логической последовательности блока 1 (рис. 2.6) необходимо с помощью выполнения операции разделения числовой последовательности на старшую (выход
Последовательность блока 2 (рис. 2.6) определяется путём выделения выходной последовательности, зависящей фиктивно от некоторых входов, и исключения из указанной последовательности фиктивных входных переменных. Для этого необходимо выделенную старшую выходную последовательность
2.4.3. Последовательная декомпозиция комбинационных устройств.
При последовательной декомпозиции выходы одного блока являются входами другого и схема может быть представлена в виде рис. 2.7, соответствующего Определим условия, при которых разделение комбинационного устройства на два блока целесообразно, то есть приводит к уменьшению сложности описания разделённой схемы. Первоначальная сложность синтезируемого устройства определяется выражением (2.9). Сложность схемы после разделения определяется соотношением (2.13):
Рис.2.7. Последовательная декомпозиция После некоторых преобразований соотношение (2.13) может быть записано в виде (2.14):
В левой части неравенства (2.14) находится выражение, определяющее целое положительное число, не равное нулю. В правой части выражение в скобках может быть как положительным, так и отрицательным. Указанное выражение имеет физический смысл только при положительных значениях, следовательно, должно выполняться неравенство
которое справедливо при
Утверждение 2.4. Выделение последовательного блока будем считать целесообразным, если число различимых комбинаций Доказательство. Выполнение неравенства (2.15) свидетельствует о том, что число состояний на выходе старшего (первого) блока, равное Соотношение (2.15) является необходимым, но недостаточным условием уменьшения сложности при последовательной декомпозиции комбинационного устройства. Достаточным условием является выполнение соотношения (2.14). В общем случае неравенство (2.14) может быть нестрогим. И в случае равенства разделение схемы на последовательные блоки также является целесообразным, поскольку сложность каждого из полученных при декомпозиции блоков меньше исходной сложности схемы. Если разложить числовую последовательность заданного нам комбинационного, устройства по переменным старшего блока, то получится матрица с Процедура поиска последовательного блока заключается в разложении числовой последовательности комбинационного устройства по различным группам входных переменных и в отыскании такой матрицы, в которой число различных строк, хотя бы вдвое меньше, чем их общее число. Процесс начинается с поиска двухвходового блока с одним выходом. Для этого числовая последовательность поочерёдно раскладывается по различным парам аргументов и находится такая матрица, которая имеет лишь две (из четырёх) различные строки. Если в процессе построения матрицы мы уже обнаружили хотя бы три различных строки, то матрицу до конца можно не достраивать и сразу же переходить к рассмотрению следующего варианта. Если, перебрав все возможные варианты разложения по парам аргументов, мы не нашли матрицу, удовлетворяющую условию выделения блока, то это значит, что двухвходовый блок выделить нельзя и следует перейти к поиску трёхвходового блока. Для этого числовая последовательность раскладывается в матрицу по всевозможным тройкам аргументов. Теперь мы ищем матрицу с четырьмя (или меньше) различными строками из восьми. И так далее. Процедуру последовательной декомпозиции можно проиллюстрировать на примере синтеза логической схемы с последовательностью
Структурная схема синтезируемого устройства представлена на рис. 2.8.
Рис. 2.8 Параллельная декомпозиция в данном случае невозможна, поскольку схема имеет один выход. Попробуем выделить последовательный блок с двумя входами. Для этого проведём разложение логической последовательности в матрицу по различным парам входных переменных: В первых трёх вариантах разложения в матрицах получилось по три различные строки из четырёх. По условию последовательной декомпозиции число различных строк должно быть хотя бы вдвое меньше общего числа строк. Указанному условию удовлетворяет матрица разложения по входам Таким образом, из рассматриваемого комбинационного устройства возможно выделение последовательного блока с входами
Рис. 2.9 Для определения собственной числовой последовательности старшего (выделенного) блока 1 необходимо закодировать, начиная с нуля, двоичными символами строки указанной матрицы. При этом, одинаковым строкам сопоставляются во взаимнооднозначное соответствие одинаковые числа. Прочитав указанные числа сверху вниз, мы получим искомую последовательность выделенного блока – Процедура последовательной декомпозиции завершается определением числовой последовательности младшего блока. Аргументами указанного блока будут являться не вошедшие в старший блок входы устройства и выходы старшего блока, которые для определённости будем считать более младшими, по сравнению с внешними входными переменными. Таким образом, у младшего блока 2 осталось три входа. Введём для них новые обозначения – Для определения логической последовательности младшего блока 2 из матрицы разложения, определяющей выделенный блок, необходимо получить сокращённую матрицу, в которой остаются только различные строки. Далее полученная матрица разворачивается по столбцам, поскольку она соответствует разложению последовательности младшего блока по входной переменной с весом
Логическую последовательность младшего блока – В общем случае в сокращённой матрице должно остаться Далее проведём разделение младшего блока 2, для чего построим матрицу разложения его последовательности по входным переменным Содержащиеся в полученной матрице две различные строки говорят о возможности проведения последовательной декомпозиции. Логическая последовательность старшего блока 3 определяется кодированием строк матрицы –
Разворачиваем её по столбцам и получаем последовательность младшего блока 4 –
Рис. 2.10 Сложность схемы на этом этапе не изменилась, однако полученные в результате декомпозиции блоки 3 и 4 являются более простыми, по сравнению с исходным блоком 2. Общая схема рассматриваемого комбинационного устройства представлена на рис. 2.11. Для удобства проведения в дальнейшем анализа синтезированной схемы блоки получили буквенные обозначения: блок 1 –
Рис. 2.11
Сложность схемы, полученной в результате декомпозиции, составляет 12 бит. Пример синтеза рассматриваемой схемы классическим методом (с использованием карты Карно) приведен на рис. 2.12.
Рис. 2.12
После выполнения процедуры минимизации логическая функция может быть записана в следующем виде:
Реализация указанной функции в базисе «И», «ИЛИ», «НЕ» представлена на рис. 2.13.
Рис. 2.13
Сложность схемы на рис. 2.13 составляет 16 бит. Если выполнить некоторые алгебраические преобразования (
2.4.4. Параллельно-последовательная декомпозиция комбинационных устройств. Используя рассмотренные выше алгоритмы параллельной и последовательной декомпозиции, из исходной схемы можно выделить блоки 1 и 2, зависящие от одних и тех же
Рис. 2.14. Параллельно-последовательная декомпозиция
Два выделенных блока целесообразно объединить в один параллельно-последовательный блок, поскольку сложность схемы при этом не увеличится, а количество блоков сократится (рис. 2.15).
Рис. 2.15. Объединение блоков при параллельно-последовательной декомпозиции
В общем случае число входов выделенных параллельного (1) и последовательного (2) блоков (рис. 2.14) может быть различным. Тогда в один из блоков добавляются фиктивные переменные для выравнивания количества входов. В качестве примера на рис. 2.16 представлена блок-схема комбинационного устройства, у которого последовательный блок 1 зависел до объединения от
Рис. 2.16. Объединение блоков при параллельно-последовательной декомпозиции с добавлением фиктивных переменных
2.4.5. Алгоритм декомпозиции логических схем.
1 этап. Выделение параллельного блока. Процедура выделения параллельного блока из комбинационного устройства менее трудоёмка по сравнению с процедурой выделения последовательного блока. При параллельной декомпозиции производятся всевозможные разложения числовой последовательности комбинационного устройства по одному аргументу. Матриц разложения по одному из аргументов будет гораздо меньше, чем в случае разложения сразу по нескольким аргументам, которые приходится строить при выделении последовательного блока. Кроме того, сами матрицы разложения по группам переменных строятся сложнее. Поэтому начинать декомпозицию целесообразно с выделения из устройства параллельных блоков. Кроме того, как было доказано выше (см. раздел 2.4.2), при параллельной декомпозиции всегда уменьшается сложность описания схемы. Уменьшив, таким образом, сложность синтезируемого устройства, мы тем самым облегчаем задачу последовательной декомпозиции. 2 этап. Проверка возможности выделения последовательного блока с теми же входными переменными, что и у выделенного параллельного блока. Для этого подсчитываем число различимых комбинаций на выделенных входах и общее число их комбинаций. 3 этап. Объединение выделенных параллельного и последовательного блоков. При этом сложность схемы не изменится, а число блоков уменьшится. При необходимости уравнивается число входов параллельного и последовательного блоков путем добавления к одному из блоков фиктивных переменных (см. раздел 2.4.4). Каждый из полученных таким образом блоков снова делится на две части и так продолжается до тех пор, пока не получатся недекомпозабельные блоки. Недекомпозабельным будем называть блок, из которого невозможно выделить более мелкие (простые) блоки при соблюдении в общем случае критерия неувеличения сложности.
|