Борис Цирлин
Речь идет об одном методе реализации полумодулярных схем, описанном еще в монографии "Автоматное управление асинхронными процессами в ЭВМ и дискретных системах" под редакцией В. И. Варшавского.
Проблема реализации заключается в том, что логические функции системы уравнений задающей такие схемы могут быть и немонотонными, т. е. содержать некоторый переменные zi как в прямом, так и в инверсном виде. Между тем собственные функции элементов, из которых строится схема, как это известно схемотехникам, обычно антитонные, например И-ИЛИ-НЕ. В силу этого на одном элементе не может быть реализована ни изотонная, ни немонотонная функция описывающая элемент в исходной схеме, т. е. в реализации должны быть элементы с выходами и zi (прямым), и ~zi (инверсным).
Рассматривается совершенная реализация (далее СР) - метод, который не смотря на амбициозное название, достаточно прост и заключается в том, что для получения прямого zi и инверсного ~zi значений используются RS-триггеры. Показываются ограничения универсальности этого метода и предлагается способ преодоления этих ограничений.
Введение
СР основана на использовании для каждого элемента исходной схемы RS-триггера типа рис.1, с выходов которого и снимаются прямое и инверсное значения, построенного на элементах И-ИЛИ-НЕ.

Особенностью таких триггеров является переключение из одного устойчивого состояния в другое через одно и тоже транзитное состояние, равное 00. Это состояние не может вызвать нового возбуждения ни для одного другого элемента схемы. С другой стороны, если к моменту переключения какого-либо элемента zi другой элемент zj уже был возбужден, то транзитное состояние zi не может снять возбуждения zj, т.к. в силу полумодулярности исходной схемы в функции сброса (установки) RS-триггера соответствующего zj найдется не нулевой терм, поддерживающий его возбуждение и не содержащий zi ни в прямом ни в инверсном виде.
Заметим, что во всех состояниях СР для функций установки S и сброса R триггера должно выполняться условие
S & R == 0
В противном случае триггер устанавливается в состояние 00, которое при этом называется гашением и активно используется для других способов реализации полумодулярных схем, но это другая история.
Для пояснения же обсуждаемого метода рассмотрим СР генератора на трех инверторах, приведенного в статье "Генераторы". Схема двух его изоморфных вариантов дана на рис. 2,а и б.

Понятно, что эти конкретные схемы вполне реализуются и на обычных элементах. СР дает для приведенных изоморфных генераторов одну схему рис. 3, очевидно, не требующую пояснений.

Не менее понятна и СР двухэлементного генератора, изображенная на рис. 4, а и б вместе с исходной схемой.

А вот для предельного случая - генератора на одном инверторе - рис.5 применение впрямую этого метода невозможно. Отложим пока эту проблему, обратившись к более прозрачным примерам.

Примеры СР
Начнем с общеизвестной схемы счетного триггера, который за счет добавления элемента индикации окончания переходных процессов, чей выход замкнут со входом схемы, работает в режиме генератора. Из его диаграммы переходов - рис. 6,а, видно, что за время цикла элемент z меняет свое значение 4 раза, тогда как элементы x и y - только по 2. На рис. 6,б дана система логических уравнений, соответствующая этому графу. Чтобы получить СР этой схемы надо на основе этой системы уравнений определить функции установки S и сброса R триггеров, соответствующим элементам исходной схемы.
Чтобы не мучить читателя преобразованиями булевских выражений по правилам Де Моргана, путаясь в черточках инверсий, обратимся к их смысловому анализу. Уравнение элемента x содержит два терма, первый из которых:
y & ~z
показывает, что при ~z = 1, x принимает значение равное значению y, а второе:
x & z
что при z = 1, x сохраняет свое значение. Функции установки и сброса триггера, СР, для элемента x, тогда должны быть такими:
Sx = y & ~z
Rx = ~y & ~z
Аналогично для триггера, соответствующего элементу y, получим:
Sy = ~x & z
Ry = x & z
Для элемента z дело обстоит проще,- поскольку правая часть его уравнения не содержит переменной z, то оно и является функцией установки, а его инверсия сброса, т.е.
Sz = (~x & ~y) v (x & y)
Rz = (~x & y) v (x & ~y)
Полученная таким образом СР показана на рис. 6,в. Знатоки цифровой схемотехники легко узнают в ней двухтактный счетный триггер, к которому добавлена индикатор, проверяющий его состояние в каждом такте, и он же вырабатывает эти такты (z и ~z), необходимые для его функционирования.

Второй пример не менее известен, но уже среди тех, кто интересовался полумодулярными схемами. Это кольцо из двух инверторов и так называемого С-элемента Малера или Г-триггера в отечественной литературе. Этот логический элемент переключается в 1 (0) тогда и только тогда, когда все его входы равны 1 (0), что наводит на аналогию с гистерезисом, откуда и произошло русское название.
Граф переходов этой схемы и ее система уравнений даны на рис.7, а и б. СР элемента x (С-элемента) очевидна из приведенного описания его работы, т. е.
Sx = y & z
Rx = ~y & ~z
А для элементов y и z можно воспользоваться аналогией с рис. 4:
Sy = Sz = ~x Ry = Rz = ~x

Надо признаться, что приведенные схемы вполне реализуемы на тех же элементах И-ИЛИ-НЕ без использования СР причем с меньшими затратами оборудования, но привести их СР было соблазнительно с точки зрения наглядности. Однако в силу простоты этих примеров может сложиться ошибочное представление об универсальности метода. Далее будут рассмотрены некоторые проблемы его применения.
Проблемы СР
Вернемся к генератору на одном инверторе рис.5. Как уже говорилось, получить его СР на одном триггере не удается. Схемотехники, правда, утверждают, что схема типа рис.5 в принципе не работоспособна, но не будем вдаваться в физику, здесь хватает и чисто логических проблем. Дело в том, что в СР каждый элемент заменяется одним RS-триггером, который в сущности представляет из себя кольцо из двух инвертирующих логических элементов. Изменение состояний этого кольца осуществляется действием внешних для него входных сигналов, а в данной ситуации необходимо использовать значение выходов самого триггера, что в принципе разрушает логику работы схемы.
Выход из этого противоречия есть, он приведен на рис. 4,б и заключается в использовании подключенного последовательно к RS-триггеру буфера, причем значения выходов буфера и используются в схеме вместо выходов триггера, в том числе и для управления им самим. А то, что в качестве буфера используется такой же триггер, как и основной, является особенностью (достоинством) СР. Заметим, что исходная схема рис. 4,а, описывающая этот прием, сохраняет полумодулярность, что обеспечивает таковую и для СР.
Применение такой буферизации поясним примером, приведенным на рис. 8,а и б. Признаком неблагополучия этой схемы, с точки зрения СР, является наличие в графе переходов короткого цикла для элемента x в состояниях 2 и 3, что подтверждается и термом
~x & y
в правой части логического уравнения этого элемента.
Дело в том, что по определению полумодулярности каждый возбужденный элемент zi становится устойчивым только путем изменения значения своего выхода. Таким образом в термах логической функции соответствующим состояниям, где элемент был возбужден, а потом стал устойчив, переменная соответствующая этому элементу представлена в прямом zi и инверсном ~zi виде, что позволяет склеить по ней эти термы и, в конечном итоге исключить ее инверсию ~zi из минимальной формы функции, а саму эту переменную zi из функций S и R триггера СР.
Но изменив свое значение выхода элемент zi, тем не менее, может оставаться возбужденным, что не противоречит определению полумодулярности и является признаком наличия короткого цикла на графе переходов. Из-за этого же в минимальной форме правой части логического элемента zi имеется вхождение инверсии ~zi соответствующей ему переменной, а в функциях S и R самой zi и ее инверсии ~zi.
Это все и показывает, что для построения СР рассматриваемой схемы элемент x необходимо буферизировать и далее в качестве его выходов (прямого х и инверсного ~x) использовать выходы буфера. Тогда функции S и R СР этой схемы будут следующие:
Sx = ~x & y
Rx = x & y
Sy = ~x & z
Ry = x & z
Sz = ~x & ~y
Rz = x & ~y
Полученная на основе этого СР приведена на рис. 8,в. Надо сказать, что в отличие от двух предыдущих, она не имеет никакого практического смысла и выбрана для демонстрации описанного приема только исходя из критерия простоты.

Заключение
Процент схем, неблагополучных для метода традиционной СР, на множестве полумодулярных схем, очевидно, не так уж мал, причем очевидно растет с ростом n, где n - число элементов схемы
Для n = 1 такая схема 1 (рис. 5) из 4 т.е. 25%,
для n = 2 - 47 из общего числа 98, т. е. 47,9%, а
для n = 3, аж 75507, при общем количестве 112020, т.е. 67,4%
Предложенный прием буферизации хотя достаточно прост и очевиден, тем не менее позволяет обеспечить подлинную универсальность метода СР включив в его обойму и такие схемы.
