Борис Цирлин

Речь идет об одном методе реализации полумодулярных схем, описанном еще в монографии "Автоматное управление асинхронными процессами в ЭВМ и дискретных системах" под редакцией В. И. Варшавского.

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

Рассматривается совершенная реализация (далее СР) - метод, который не смотря на амбициозное название, достаточно прост и заключается в том, что для получения прямого zi и инверсного ~zi значений используются RS-триггеры. Показываются ограничения универсальности этого метода и предлагается способ преодоления этих ограничений.

Введение

СР основана на использовании для каждого элемента исходной схемы RS-триггера типа рис.1, с выходов которого и снимаются прямое и инверсное значения, построенного на элементах И-ИЛИ-НЕ.

Рис.1
Рис.1

Особенностью таких триггеров является переключение из одного устойчивого состояния в другое через одно и тоже транзитное состояние, равное 00. Это состояние не может вызвать нового возбуждения ни для одного другого элемента схемы. С другой стороны, если к моменту переключения какого-либо элемента zi другой элемент zj уже был возбужден, то транзитное состояние zi не может снять возбуждения zj, т.к. в силу полумодулярности исходной схемы в функции сброса (установки) RS-триггера соответствующего zj найдется не нулевой терм, поддерживающий его возбуждение и не содержащий zi ни в прямом ни в инверсном виде.

Заметим, что во всех состояниях СР для функций установки S и сброса R триггера должно выполняться условие

S & R == 0

В противном случае триггер устанавливается в состояние 00, которое при этом называется гашением и активно используется для других способов реализации полумодулярных схем, но это другая история.

Для пояснения же обсуждаемого метода рассмотрим СР генератора на трех инверторах, приведенного в статье "Генераторы". Схема двух его изоморфных вариантов дана на рис. 2,а и б.

Рис.2
Рис.2

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

Рис.3
Рис.3

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

Рис.4
Рис.4

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

Рис.5
Рис.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), необходимые для его функционирования.

Рис.6
Рис.6

Второй пример не менее известен, но уже среди тех, кто интересовался полумодулярными схемами. Это кольцо из двух инверторов и так называемого С-элемента Малера или Г-триггера в отечественной литературе. Этот логический элемент переключается в 1 (0) тогда и только тогда, когда все его входы равны 1 (0), что наводит на аналогию с гистерезисом, откуда и произошло русское название.

Граф переходов этой схемы и ее система уравнений даны на рис.7, а и б. СР элемента x (С-элемента) очевидна из приведенного описания его работы, т. е.

Sx = y & z
Rx = ~y & ~z

А для элементов y и z можно воспользоваться аналогией с рис. 4:

Sy = Sz = ~x Ry = Rz = ~x

Рис.7
Рис.7

Надо признаться, что приведенные схемы вполне реализуемы на тех же элементах И-ИЛИ-НЕ без использования СР причем с меньшими затратами оборудования, но привести их СР было соблазнительно с точки зрения наглядности. Однако в силу простоты этих примеров может сложиться ошибочное представление об универсальности метода. Далее будут рассмотрены некоторые проблемы его применения.

Проблемы СР

Вернемся к генератору на одном инверторе рис.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,в. Надо сказать, что в отличие от двух предыдущих, она не имеет никакого практического смысла и выбрана для демонстрации описанного приема только исходя из критерия простоты.

Рис.8
Рис.8

Заключение

Процент схем, неблагополучных для метода традиционной СР, на множестве полумодулярных схем, очевидно, не так уж мал, причем очевидно растет с ростом n, где n - число элементов схемы

Для n = 1 такая схема 1 (рис. 5) из 4 т.е. 25%,
для n = 2 - 47 из общего числа 98, т. е. 47,9%, а
для n = 3, аж 75507, при общем количестве 112020, т.е. 67,4%

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