Por que precisamos usar transistores ao criar um OR
portão? Não conseguiríamos alcançar o mesmo resultado sem transistores, apenas juntando as duas entradas e lendo a saída?
Por que precisamos usar transistores ao criar um OR
portão? Não conseguiríamos alcançar o mesmo resultado sem transistores, apenas juntando as duas entradas e lendo a saída?
Respostas:
O que você descreve é chamado de OR com fio . É possível em algumas famílias lógicas, particularmente ECL (lógica acoplada ao emissor), mas não nas mais comuns (TTL e CMOS).
No CMOS, isso não é possível porque, quando a saída do CMOS é baixa, ele cria um curto muito próximo do pino de saída do chip ao terra. E quando está alto, cria um curto muito próximo do VDD, passando pelo chip até o pino de saída.
Portanto, se você conectasse duas saídas CMOS juntas e uma saída alta, enquanto a outra saída baixa, você teria um curto muito próximo do VDD ao terra, o que consumiria uma grande corrente e provavelmente superaqueceria um ou outro dos dois chips envolvidos.
Para TTL, há um problema semelhante, mas os "curtos" do pino de saída ao VDD ou terra não são tão curtos quanto no CMOS.
Existe um estilo de saída variável, chamado dreno aberto para CMOS ou coletor aberto para TTL, que permite AND vez de OR com fio. Essas saídas são projetadas para serem capazes de absorver apenas a corrente para o terra, para não produzir corrente de saída quando estiverem nominalmente no estado alto. Normalmente, eles são usados com um resistor de pull-up externo, para que a tensão de saída atinja o nível de tensão "alta" quando necessário.
Nota: O coletor aberto ou o dreno aberto podem ser usados para OU com fio, se você usar lógica ativa-baixa (baixa tensão representa a lógica 1, alta tensão representa a lógica 0).
isso permite que você "junte as saídas"
simular este circuito - esquemático criado usando o CircuitLab
this lets you "join the outputs" schematic
com um link para circuitlab
Se você apenas conectar os fios, teria a possibilidade (bastante provável) de 0 e 1 juntos. Como um 0 é gnd e um 1 é 5V (dependendo dos chips, mas é um padrão), você teria 5V e gnd conectados juntos por fios. O termo para isso é um curto-circuito!
Você pode usar diodos para um simples portão OR. Ou até resistores. Os problemas ocorrem quando você conecta esse portão a outros portões, outros circuitos. Você pode construir uma porta AND a partir de 2 diodos ao contrário. Mas se você tentar conectar muitos deles, você acaba com um circuito gigante que não funciona como pequenas partes separadas, mas como uma grande. Conexões que não estão no seu plano de portão simples podem surgir na vida real, atrapalhando o que você deseja que aconteça.
Um transistor permite separar a entrada da saída. A saída de um transistor não pode retroceder e afetar sua entrada. Um revezamento seria outra alternativa, embora mais lenta. Como o interruptor não pode afetar o eletroímã.
A lógica inicial era RTL ou DTL, lógica resistor-transistor ou lógica diodo-transistor. Os resistores, inicialmente, e depois os diodos posteriores, foram usados para formar a porta, depois um transistor atuou para amortecer o resultado, de modo que a próxima porta que você usou não realimentou essa entrada para suas entradas.
Agora, como os transistores nos chips são praticamente gratuitos, ou seja, financeiramente, temos o luxo de tudo ser adequadamente armazenado em buffer e separado. Geralmente é isso que queremos. Lógica TTL!
Considere o que acontece se uma entrada for alta e outra baixa e você conectar as duas entradas. Depende de como você constrói seus portões lógicos.
Se seus portões lógicos são projetados para que uma alta seja realmente elevada e uma baixa seja realmente baixa (CMOS), então este é um curto-circuito e algo explodirá.
Se suas portas lógicas forem projetadas para que uma alta seja "fraca" ou alta resistência (por exemplo, NMOS), a saída será baixa, mas também a outra entrada (que supostamente é alta) será forçada a ser baixa, mesmo que seja supostamente alto, e isso terá um efeito indireto em outras portas lógicas que usam a mesma entrada.
Existe uma abordagem analógica:
combine qualquer número de entradas (suponha 0 ou 5 volts) com resistores.
Se a tensão resultante for 0, todos estão desligados.
Se a tensão resultante for 5, todos estarão ligados.
Tensões intermediárias indicam que algumas estão ativadas e outras desativadas.
Exemplo: Se houver 4 entradas, 2,5 volts significa que 2 estão ligados e 2 estão desligados.
resultado == 0: nem
resultado do portão == 5: e portão
resultado do ! = 0: ou
resultado do portão ! = 5: portão nand
Você não precisa de transistores para as entradas, apenas para a saída verificar a tensão e restaurar um resultado lógico de 0 ou 5 volts.
Isso pode ser usado para um nó de rede neural analógico com uma função de saída não linear que possui um resultado "suave" que pode não ser totalmente verdadeiro ou falso.
Pensando bem: os
resistores usados dessa maneira podem diminuir a velocidade lógica, pois a capacitância após os resistores deve ser carregada ou descarregada quando as entradas mudam. Além disso, o uso de transistores pode reduzir bastante o consumo de energia. Os resistores usados dessa maneira sempre podem consumir energia com uma mistura de estados de entrada. Com os transistores, o consumo de energia pode ser dividido aproximadamente pelo ganho dos transistores.
Com alguns elementos lógicos (todas as portas do carro acendem a mesma lâmpada), isso é possível, mas não por exemplo com portas CMOS, pois são construídas com transistores FET de canal P e N, de modo que eles precisam de entrada de alta e baixa tensão definida para fornecer a saída , a entrada não pode ser deixada para flutuar. Conectar saídas CMOS juntas não funcionaria.