C-элемент


В цифровых вычислениях С-элемент Мюллера ( C-затвор , гистерезисный триггер , триггер совпадения или двуручная схема безопасности ) представляет собой небольшую двоичную логическую схему, широко используемую при проектировании асинхронных схем и систем. Он выводит 0, когда все входы равны 0, выводит 1, когда все входы равны 1, и сохраняет свое выходное состояние в противном случае. Он был официально определен в 1955 году Дэвидом Э. Мюллером [9] и впервые использован в компьютере ILLIAC II . [10] В терминах теории решеток, С-элемент является полумодульной распределительной схемой, работа которой во времени описывается диаграммой Хассе . [11] [12] [13] C-элемент тесно связан с элементами рандеву [14] и соединения [15] , где ввод не может изменяться дважды подряд. В некоторых случаях, когда соотношения между задержками известны, С-элемент может быть реализован как схема суммы произведений (SOP). [16] [17] Более ранние методы реализации C-элемента [18] [19] включают триггер Шмидта , [20] триггер Эклза-Джордана и триггер последней движущейся точки.

Для двух входных сигналов C-элемент определяется уравнением , которое соответствует следующей таблице истинности:

Эту таблицу можно превратить в схему, используя карту Карно. Однако полученная реализация наивна, так как ничего не говорится о предположениях о задержках. Чтобы понять, при каких условиях полученная схема работоспособна, необходимо провести дополнительный анализ, выявляющий, что

Таким образом, наивная реализация верна только для медленной среды. [21] Определение C-элемента можно легко обобщить для многозначной логики [22] или даже для непрерывных сигналов:

В зависимости от требований к скорости коммутации и потребляемой мощности С-элемент может быть реализован в виде крупно- или мелкозернистой схемы. Также следует различать одновыходную и дифференциальную [23] реализации С-элемента. Дифференциальная реализация возможна с использованием только NAND (только NOR). Реализация с одним выходом работоспособна тогда и только тогда, когда: [24]

Существует ряд различных одновыходных схем С-элемента, построенных на логических вентилях. [25] [26] В частности, так называемая реализация Маевского [27] [28] [29] представляет собой нераспределительную схему, слабо основанную на. [30] Нераспространяемость иногда вводится для увеличения параллелизма. Элемент 3NAND в этой схеме можно заменить двумя элементами 2NAND. С-элемент, использующий только двухвходовые вентили, был предложен Цириным [31] и затем синтезирован Стародубцевым с соавт. на языке Taxogram [32] Эта схема совпадает с той, что приписывается (без ссылки) Бартки [27]и может работать без входной защелки. Еще одна версия С-элемента, построенная на двух защелках RS , была синтезирована Мерфи [33] с помощью инструмента Petrify. Однако эта схема включает в себя инвертор, подключенный к одному из входов. Этот инвертор должен иметь небольшую задержку. Однако существуют реализации RS-защелок, например, уже имеющие один инвертированный вход. [34] Некоторые независимые от скорости подходы [35] [36] предполагают, что входные инверторы с нулевой задержкой доступны на всех вентилях, что является нарушением истинной независимости от скорости, но на практике достаточно безопасно. Существуют и другие примеры использования этого предположения. [37]


Задержки в наивной (на основе защелки Эрла ) реализации и среде
Временная диаграмма C-элемента и инклюзивного вентиля ИЛИ
Поведение среды, допустимое для C-элемента и недопустимое для элемента Join
Реализация мажоритарного элемента С-элемента и инклюзивного элемента ИЛИ (а); Реализации, предложенные Маевским (б), Цирлиным (в) и Мерфи (г)
Статические реализации двух- и трехвходового С-элемента [1] [2] [3]
Полустатические реализации двух- и многовходового C-элемента. [4] [5] [6] Для более быстрой версии см. [7]
Ячейка Давида (а) и ее быстрые реализации: на уровне затвора (б) и на уровне транзистора (в) [8]