
Структурная оптимизация логических схем
Поскольку при покрытии производится формальное замещение блоков их реализацией на заданных логических элементах и не принимаются во внимание никакие другие блоки кроме покрываемого, то синтезированная схема, как правило, оказывается избыточной. Это вызывает необходимость проведения структурной оптимизации полученной схемы.
Процесс оптимизации включает выполнение двух этапов:
1) исключение из схемы очевидных избыточных элементов;
2) анализ схемы с учётом логической недоопределённости.
Исключение из схемы очевидных избыточных элементов.
На первом этапе оптимизации производится исключение из схемы цепочек последовательно соединенных инверторов и элементов, выполняющих одинаковые логические функции. Цепочки инверторов могут образовываться в схемах при покрытии элементами «2И-НЕ» либо «2ИЛИ-НЕ», поскольку для совпадения числовых последовательностей при формальном замещении покрываемых блоков требуется инвертирование входных или выходных последовательностей покрывающих элементов.
Элементы, выполняющие одинаковые логические функции, как правило, оказываются подключенными к одноимённым входам схемы. В таком случае на их выходах формируются одинаковые логические последовательности, и один из этих элементов может быть удалён, а выходной сигнал оставшегося элемента используется для подачи на оба узла синтезируемой схемы.
В начале на втором этапе оптимизации проводится полный анализ схемы, который позволяет получить числовые последовательности на выходах всех элементов и ещё раз убедиться в правильности предшествующих процедур синтеза и первого этапа оптимизации.
Далее от выхода к входу выполняется анализ отдельных элементов с учётом возможной логической недоопределённости их входных числовых последовательностей. При таком анализе в поступающие на входы логических элементов числовые последовательности вводится неопределённость (звёздочки).
ПРИМЕР
0 9 12 5 11 13 14 13 6 14 6 6 4 12 4 12 в 10чной системе
0 9 C 5 B D E D 6 E 6 6 4 C 4 C в 16ричной системе
Из данной последовательности путем перевода в 2ичную систему счисления получаем следующие четыре:
0110 1111 0100 0101
0011 0111 1111 1111
0000 1010 1111 0000
0101 1101 0000 0000
0110 1111 0100 0101
Проведём декомпозицию данного блока:
-
4 различных строки и столбца;
-
4 различных строки и столбца;
-
3 различных строки и столбца;
-
3 различных строки и столбца;
-
4 различных строки и столбца;
-
4 различных строки и столбца.
Отсюда
делаем вывод, что декомпозиция данного
блока невозможна. Проводим детализацию.
Для этого раскладываем последовательность
по весу
:
-
отсутствует столбец
.
Сокращённая матрица выглядит следующим образом:
.
В
случае детализации разложение проводится
до тех пор пока не будет получена матрица,
в которой отсутствует один из столбцов:
или
.
Раскладываем данный блок следующим образом:
Разложим
блок А с последовательностью
на
два последова-тельно соединённых блока.
-
2 различных столбца, обозначим их
следующим образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Разложим
блок В с последовательностью
на
два последова-тельно соединённых блока.
-
3 различных строки и столбца;
-
3 различных строки и столбца;
-
2 различных столбца, обозначим их
следующим образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Разложим
блок С с последовательностью
на
два последова-тельно соединённых блока.
-
3 различных строки и столбца;
,
если дополнить звёздочки нулями, то
получим:
.
,
если дополнить звёздочки единицами, то
получим:
.
Возьмём
разложение по весу
,
тогда сокращённая матрица выглядит
следующим образом:
.
Общая схема данного блока:
Анализ блока:
Анализ
проводитс в соответствии с выходными
последовательностями. Например для
блока D:
.
В результате анализа получили выходную последовательность данного блока.
2) 0011 0111 1111 1111
Проведём декомпозицию данного блока:
-
3 различных строки и столбца;
-
2 различных строки, обозначим их следующим
образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Разложим выходную последовательность блока В:
-
2 различных строки, обозначим их следующим
образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Общая схема данного блока:
Анализ блока:
Анализ
проводится в соответствии с выходными
последовательностя-ми. Например для
блока А:
.
В результате анализа получили выходную последовательность данного блока.
3) 0000 1010 1111 0000
Проводим
детализацию. Для этого раскладываем
последовательность по весу
:
-
отсутствует столбец
.
Сокращённая матрица выглядит следующим образом:
.
Раскладываем данный блок следующим образом:
Разложим блок А с последовательностью на два последова-тельно соединённых блока.
-
2 различных столбца, обозначим их
следующим образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Выходная
последовательность блока D
совпадает с последователь-ностью
поэтому
ставим перемычку.
Разложим блок В с последовательностью на два последова-тельно соединённых блока.
-
2 различных столбца, обозначим их
следующим образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Выходная
последовательность блока D
совпадает с последователь-ностью
поэтому
ставим перемычку.
Разложим блок С с последовательностью на два последова-тельно соединённых блока.
, если дополнить звёздочки единицами, то получим: .
Возьмём разложение по весу , тогда сокращённая матрица выглядит следующим образом: .
Общая схема данного блока:
Анализ блока:
В результате анализа получили выходную последовательность данного блока.
4) 0101 1101 0000 0000
Проведём декомпозицию данного блока:
-
2 различных строки, обозначим их следующим
образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Разложим выходную последовательность блока В:
-
2 различных строки, обозначим их следующим
образом:
,
тогда сокращённая матрица выглядит
следующим образом:
.
Общая схема данного блока:
Анализ блока:
В результате анализа получили выходную последовательность данного блока.
Схемы 1 и 2 содержат элементы со следующими последовательностя-ми: 0110; 0100; 0010; 0111; 0001. Для покрытия схем элементами «2и-не» необходимо реализовать эти последовательности в базисе «2и-не».
1) 0110
2) 0100
3) 0010
4) 0001
5) 0111
Покрываем схему 1 полученными блоками и удалим последовательно соединённые инверторы:
Анализ схемы:
После покрытия схемы элементами «2и-не» выходная последователь-ность не изменилась.
Покрываем схему 2 полученными блоками и удалим последовательно соединённые инверторы:
Анализ схемы:
,
После покрытия схемы элементами «2и-не» выходная последователь-ность не изменилась.
Схемы 3 и 4 содержат элементы со следующими последовательностя-ми: 0111; 0100; 001; 0110. Для покрытия схем элементами «2или-не» необхо-димо реализовать эти последовательности в базисе «2или-не».
1) 0111
2) 0100
3) 0010
4) 0110
Покрываем схему 3 полученными блоками и удалим последовательно соединённые инверторы:
Анализ схемы:
,
После покрытия схемы элементами «2или-не» выходная последова-тельность не изменилась.
Анализ схемы:
,
После покрытия схемы элементами «2или-не» выходная последова-тельность не изменилась.