Введение
Цифровая логическая схема
В цифровых вычислениях элемент Мюллера C (C-шлюз, гистерезисный триггер, триггер по совпадению, или схема безопасности с двумя каналами) — это небольшая бинарная логическая схема, широко используемая в проектировании асинхронных схем и систем. Он выдает 0, когда все входы равны 0, выдает 1, когда все входы равны 1, и в противном случае сохраняет свое выходное состояние. Он был формально описан в 1955 году Дэвидом Э. Мюллером и впервые использован в компьютере ILLIAC II. С точки зрения теории решеток, элемент C является полумодульной распределительной схемой, работа которой во времени описывается диаграммой Хассе. Элемент C тесно связан с элементами "встречи" и "соединения", где вход не может изменяться дважды подряд. В некоторых случаях, когда известны соотношения между задержками, элемент C может быть реализован в виде схемы "сумма произведений" (SOP). Более ранние методы реализации элемента C включали триггер Шмитта, триггер Экклза-Джордана и триггер последней точки переключения.
Реализация элемента С
В зависимости от требований к скорости переключения и энергопотреблению, элемент C может быть реализован как схема с крупным или мелким зерном. Также следует различать реализации элемента C с одним и двумя выходами. Двухвыходной элемент C может быть реализован только на двухвходовых элементах NAND (или NOR). Реализация с одним выходом возможна только в том случае, если: схема, в которой каждый вход элемента C соединен через отдельный инвертор с его выходом, является полумодульной относительно состояния, в котором все инверторы находятся в активном состоянии. Это состояние является рабочим для выходного каскада элемента C.
The circuit, where each input of a C element is connected through a separate inverter to its output, is semimodular relatively to the state, where all the inverters are excited. This state is live for the output gate of C element.
Статические и полустатические реализации
В своем докладе он отметил, что в целом элементы C с различными временными характеристиками могут быть построены на основе логических элементов AND OR Invert (AOI) или их двойных, OR AND Invert (OAI), а также инверторов. Другой вариант, запатентованный Варшавским и др., заключается в замыкании входных сигналов на землю, когда они не равны друг другу. Эти реализации, несмотря на свою простоту, потребляют больше энергии из-за возникновения коротких замыканий. Подключив дополнительный мажоритарный элемент к инвертированному выходу элемента C, мы получаем функцию инклюзивного ИЛИ (EDLINCOR). Некоторые простые асинхронные схемы, такие как распределители импульсов, могут быть построены исключительно на мажоритарных элементах. Полустатический элемент C сохраняет свое предыдущее состояние с помощью двух перекрестно связанных инверторов, аналогично ячейке SRAM. Один из инверторов слабее остальной схемы, поэтому его можно переключить сетями подтяжки и стяжки. Если оба входа равны 0, сеть подтяжки изменяет состояние триггера, и элемент C выдает 0. Если оба входа равны 1, сеть стяжки изменяет состояние триггера, в результате чего элемент C выдает 1. В противном случае вход триггера не подключен ни к питанию, ни к земле, и поэтому доминирует слабый инвертор, а триггер выдает свое предыдущее состояние. Существуют также версии полустатических элементов C, построенных на устройствах с отрицательным дифференциальным сопротивлением (NDR). Поскольку NDR обычно определяется для малого сигнала, трудно ожидать, что такой элемент C будет работать во всем диапазоне напряжений или токов.
Внедрение на уровне шлюза
Существует ряд различных схем с одним выходом для элемента C, построенных на логических элементах. В частности, так называемая реализация Маевского является полумодульной, но недистрибутивной (или причинной) схемой, основанной на. Элемент NAND3 в этой схеме может быть заменен двумя элементами NAND2. Следует отметить, что элемент C Маевского фактически является элементом Join, входные сигналы которого не могут переключаться дважды. Реализация элемента C только на двухвходовых элементах была предложена Цирлиным, а затем синтезирована Стародубцевым и др. с использованием языка Taxogram. Эта схема совпадает со схемой, приписываемой Бартки. Быстрая транзисторная реализация этой схемы используется в предлагаемом полустатическом элементе C. Предложена еще одна полустатическая схема, использующая проходные транзисторы (фактически MUX 2:1). Еще одна версия элемента C, построенная на двух SR-триггерах, была синтезирована Мерфи с помощью инструмента Petrify. Однако эта схема включает инвертор, подключенный к одному из входов. Этот инвертор должен иметь небольшую задержку. Однако существуют реализации RS-триггеров, которые уже имеют один инвертированный вход, например. Некоторые подходы, не зависящие от скорости, предполагают наличие инверторов с нулевой задержкой на всех элементах, что является нарушением истинной независимости от скорости, но в практике достаточно безопасно. Существуют и другие примеры использования этого предположения.
, Its fast transistor level implementation is used in the semistatic C element proposed. Yet another semistatic circuit using pass transistors (actually MUX 2:1) has been proposed. Yet another version of the C element built on two SR latches has been synthesized by Murphy using Petrify tool. However, this circuit includes inverter connected to one of the inputs. This inverter should have small delay. However, there are realizations of RS latches that already have one inverted input, for example. Some speed independent approaches assume that zero delay input inverters are available on all gates, which is a violation of true speed independence but is fairly safe in practice. Other examples of using this assumption also exist.
Нетранзисторные реализации
Другими технологиями, подходящими для реализации асинхронных примитивов, включая C-элемент, являются: углеродные нанотрубки, туннельные устройства с одним электроном, квантовые точки и молекулярная нанотехнология.