Почему мы должны использовать транзисторы при строительстве OR
ворот? Разве мы не смогли бы достичь того же результата вообще без транзисторов, просто соединив два входа и прочитав результат?
Почему мы должны использовать транзисторы при строительстве OR
ворот? Разве мы не смогли бы достичь того же результата вообще без транзисторов, просто соединив два входа и прочитав результат?
Ответы:
То, что вы описываете, называется проводным ИЛИ соединением. Это возможно в некоторых логических семействах, особенно в ECL (логика с эмиттерной связью), но не в наиболее распространенных (TTL и CMOS).
В CMOS это невозможно, потому что когда выходной сигнал CMOS низкий, он создает очень короткое замыкание от выходного контакта через микросхему до земли. И когда он высокий, он создает очень короткое замыкание от VDD через микросхему к выходному контакту.
Таким образом, если вы свяжете два выхода CMOS вместе и один выход высокого уровня, в то время как другой выход низкого уровня, у вас будет очень короткое замыкание от VDD к земле, которое будет потреблять большой ток и, вероятно, перегревать одну или другую из двух задействованных микросхем.
Для TTL есть аналогичная проблема, но «шорты» от выходного контакта до VDD или заземления не так коротки, как в CMOS.
Существует вариант стиля вывода, называемый открытым стоком для CMOS или открытым коллектором для TTL, который допускает проводные И- соединения, а не ИЛИ-проводные. Эти выходы рассчитаны только на то, чтобы подавать ток на землю, а не на какой-либо выходной ток, когда они номинально находятся в высоком состоянии. Они обычно используются с внешним подтягивающим резистором, так что выходное напряжение фактически достигает "высокого" уровня напряжения, когда это необходимо.
Примечание. Открытый провод или открытый сток можно использовать для проводного ИЛИ, если вы используете логику активного низкого уровня (низкое напряжение соответствует логике 1, высокое напряжение соответствует логике 0).
это позволяет вам "присоединиться к выходам"
смоделировать эту схему - схема, созданная с использованием CircuitLab
this lets you "join the outputs" schematic
со ссылкой на circuitlab
Если вы просто подключите провода, у вас будет (вполне вероятно) вероятность, что 0 и 1 вместе. Поскольку 0 - это gnd, а 1 - это 5 В (в зависимости от чипов, но это стандарт), у вас будет 5 В и gnd, соединенные вместе проводами. Термин для этого - короткое замыкание!
Вы можете использовать диоды для простых ИЛИ ворот. Или даже резисторы. Проблемы возникают, когда вы подключаете эти ворота к другим воротам, другим схемам. Вы можете построить вентиль AND из 2-х диодов наоборот. Но если вы попытаетесь соединить многие из них вместе, вы получите одну гигантскую цепь, которая функционирует не как маленькие отдельные части, а как одна большая. Соединения, которых нет в вашем простом плане ворот, могут возникнуть в реальной жизни, испортить то, что вы хотите, чтобы произошло.
Транзистор позволяет отделить вход от выхода. Выходной сигнал транзистора не может иметь обратную связь и влиять на его вход. Эстафета была бы другой альтернативой, хотя и медленнее. Поскольку выключатель не может влиять на электромагнит.
Ранней логикой была RTL или DTL, резисторно-транзисторная логика или диодно-транзисторная логика. Сначала для формирования затвора использовались резисторы, а затем более поздние диоды, затем транзистор действовал, чтобы буферизовать результат, чтобы следующий затвор, который вы использовали, не передавал через этот вход на свои входы.
Теперь, поскольку транзисторы на микросхемах практически бесплатны, то есть с финансовой точки зрения, мы можем позволить себе роскошь, когда все правильно буферизуется и разделяется. Обычно это то, что мы хотим. Логика ТТЛ!
Подумайте, что произойдет, если один вход высокий, а другой низкий, и вы подключите два входа. Это зависит от того, как вы строите свои логические ворота.
Если ваши логические элементы спроектированы так, что максимум действительно повышается, а минимум действительно понижается (CMOS), то это короткое замыкание и что-то взорвется.
Если ваши логические элементы спроектированы таким образом, что высокое значение является «слабым» или высоким сопротивлением (например, NMOS), то выходной сигнал будет низким, но также и другой вход (который должен быть высоким) будет вынужден быть низким, даже если он должен быть высоким, и это будет влиять на другие логические элементы, которые используют тот же вход.
Существует аналоговый подход:
объедините любое количество входов (предположим, 0 или 5 вольт) с резисторами.
Если результирующее напряжение равно 0, все выключены.
Если результирующее напряжение равно 5, то все включено.
Промежуточные напряжения указывают на то, что некоторые включены, а некоторые выключены.
Пример: если имеется 4 входа, 2,5 вольт означает, что 2 включены, а 2 выключены.
результат == 0: ни
результат гейта == 5: и
результат гейта ! = 0: или
результат гейта ! = 5: n и гейта
Вам не нужны транзисторы для входов, только для выхода, чтобы проверить напряжение и восстановить логический результат 0 или 5 вольт.
Это может быть использовано для аналогового узла нейронной сети с нелинейной функцией вывода, которая имеет «мягкий» результат, который может быть не совсем истинным или ложным.
После размышления:
резисторы, используемые таким образом, могут замедлять логическую скорость, поскольку емкость, следующая за резисторами, должна заряжаться или разряжаться при изменении входов. Также использование транзисторов может значительно снизить энергопотребление. Резисторы, используемые таким образом, всегда могут потреблять энергию при различных входных состояниях. В транзисторах потребление энергии можно условно разделить на коэффициент усиления транзисторов.
С некоторыми логическими элементами (все переключатели автомобильных дверей загораются на одной лампе) это возможно, но не, например, с затворами КМОП, так как они построены с транзисторами FET P и N каналов, поэтому им необходим определенный вход высокого и низкого напряжения для обеспечения выхода , вход не может быть оставлен на плаву. Соединение выходов CMOS вместе не будет работать.