Retornar para: Colunas - Fórum PCs
19/09/2005
< Computadores X: Portas Lógicas >
Na coluna anterior a esta construímos cinco circuitos elementares com transistores. Todos, exceto o primeiro, tinham duas "entradas" (ou seja, dois terminais, A e B, que poderiam ou não serem alimentados com tensões elétricas) e uma única saída (um terminal S que, dependendo do estado dos terminais A e B, poderia ou não apresentar tensão). Depois, analisamos seu funcionamento, ou seja, discutimos, caso a caso, se haveria ou não tensão no terminal S considerando todas as combinações possíveis de presença ou ausência de tensão nos terminais A e B. Para refrescar nossa memória, a Figura 1 transcreve o resumo dos resultados obtidos nos circuitos C1 a C5. Nela, "um" representa a presença de tensão elétrica e "zero" a ausência de tensão no respectivo terminal (que se reflete, naturalmente, no fato da lâmpada conectada ao terminal estar ou não acesa).
FIGURA 1: Estado das lâmpadas nos circuitos 1 a 5
Por outro lado, terminamos a coluna anterior citando um parágrafo da coluna "Lógica Digital e Álgebra Booleana", a terceira desta série:
"Com os conhecimentos da álgebra booleana podemos analisar todos os fenômenos relativos à lógica digital que rege as operações internas dos computadores. O que nos falta agora é um meio físico de implementar os circuitos eletrônicos baseados nessa lógica".
Feita a citação, sugerimos comparar a tabela representativa do estado das lâmpadas nos circuitos C1 a C5, reproduzida acima, com a tabela verdade das operações lógicas, exibida na coluna "Lógica Digital e Álgebra Booleana", que reproduzo na Figura 2 com algumas modificações para facilitar a compreensão (as modificações se limitaram a suprimir a coluna da operação lógica XOR e alterar a ordem das colunas). Sempre lembrando que enquanto a Figura 1 foi obtida exclusivamente analisando o comportamento (físico) de circuitos eletrônicos, a Figura 2 foi gerada a partir da análise (lógica) de conceitos puramente abstratos da Álgebra Booleana.
Figura 2: Tabela verdade de algumas operações lógicas
Comparou? Prestou atenção na citação aí de cima? Então nem vou me dar ao trabalho de ressaltar que, agora, não nos falta mais nada. Já temos o meio físico (os circuitos simples mostrados na coluna anterior) para implementar circuitos complexos, baseados exclusivamente na lógica digital. Mais que isso (e talvez você pense que estou exagerando...): com os conhecimentos obtidos até agora já temos tudo o que precisamos para fabricar nosso próprio microprocessador.
Senão, vejamos. A comparação das figuras 1 e 2 leva à conclusão óbvia que o circuito C1, na prática, reproduz o comportamento esperado de uma operação lógica NOT, assim como os circuitos C2, C3, C4 e C5 reproduzem o comportamento esperado, respectivamente, das operações NAND, NOR, AND e OR. Isto implica uma importante conseqüência: é possível combinar aqueles circuitos para implementar fisicamente qualquer conjunto de operações lógicas, ou seja, pode-se, mediante a judiciosa combinação de circuitos simples como os C1 a C5, montar um circuito mais complexo que reproduza fisicamente o comportamento de qualquer expressão da álgebra booleana.
A vantagem disso é que como o circuito reproduz o comportamento da expressão, podemos analisar a expressão através do exame do comportamento do circuito a ela equivalente, o que é muito mais fácil. Em outras palavras: os circuitos examinados são a representação física das operações lógicas da álgebra booleana.
Vamos esclarecer isso usando como exemplo a mesma expressão simples analisada na coluna "Lógica Digital e Álgebra Booleana", ou seja:
(A OR B) AND (NOT C) =S
O que faz essa expressão? Bem, ela combina três variáveis lógicas, A, B e C. Portanto o circuito que a representa terá três entradas (e, naturalmente, uma saída S que corresponde ao valor da expressão).
As duas variáveis A e B são, inicialmente, submetidas a uma operação OR, enquanto a variável C é submetida a uma operação NOT, gerando dois resultados parciais:
S1 = A OR B
E
S2 = NOT C
Em seguida, estes resultados parciais são submetidos a uma operação AND, gerando o resultado da expressão S = S1 AND S2
Na coluna citada, avaliamos a expressão para os valores
A = 0
B = 1
C = 1
E concluímos que:
S1 = A OR B = 0 OR 1 = 1
S2 = NOT C = NOT 1 = 0 e, finalmente:
S = S1 AND S2 = 1 AND 0 = 0
Resultado que evidencia que a expressão (A OR B) AND (NOT C) vale S = 0 quando suas variáveis A, B e C assumem, respectivamente, os valores 0, 1 e 1. Isso foi tudo o que fizemos quando analisamos a operação. Mas poderíamos seguir adiante e calcular o valor da expressão para todas as combinações possíveis de valores de suas variáveis, exibindo os resultados em uma tabela. Essa tabela seria a Tabela Verdade da expressão e teria o aspecto da Figura 3 na qual foram incluídos, apenas para facilitar a analise, os valores dos resultados parciais S1 = (A OR B) e S2 = (NOT C).
Figura 3: Tabela verdade da expressão (A OR B) AND (NOT C) = S
Ora, mas dissemos acima que pode-se montar um circuito mais complexo que reproduza fisicamente o comportamento de qualquer expressão da álgebra booleana combinando os circuitos que representam as operações lógicas elementares. E que poderíamos analisar o comportamento da expressão através do exame do comportamento do circuito assim montado. Portanto, deverá haver um circuito eletrônico que reproduza o comportamento da expressão acima e que se comporte exatamente de acordo com sua tabela verdade.
Figura 4: Circuito equivalente à expressão S = (A OR B) AND (NOT C)
E de fato assim é. Esse circuito é o representado na Figura 4. Nele, o trecho assinalado por um retângulo vermelho claro corresponde à operação lógica OR efetuada com os valores de A e de B, o limitado pelo retângulo azul corresponde à operação lógica NOT efetuada com o valor de C e o marcado com o retângulo verde corresponde à operação lógica AND efetuada com os resultados das duas operações anteriores. Note que o circuito representa a situação em que A, B e C valem zero (os três interruptores estão desligados) e, portanto, a lâmpada S2 está acesa (veja Figura 3).
Mas como analisar a expressão com a ajuda do circuito? Simples: implementa-se o circuito como mostrado na Figura 4 e utilizam-se os interruptores para aplicar ou não tensão às entradas C, B e A, verificando-se para cada combinação o estado da lâmpada S (acesa, valendo um, ou apagada, valendo zero). Cada combinação de valores deve corresponder a uma situação mostrada na tabela verdade da expressão. Verifique você mesmo ligando e desligando os interruptores na Animação 1.
CLIQUE NOS BOTÕES LIGAR/DESLIGAR PARA ACOMPANHAR A ANIMACÃO 1
(Ao analisar o circuito, não se limite a clicar nos botões e ver o que ocorre com a lâmpada S. Tente entender o porquê das coisas. Use os conceitos discutidos na coluna anterior sobre transistores para analisar o "caminho" das correntes elétricas nos circuitos, sempre lembrando que quando se aplica uma tensão à base de um transistor ele permite que a corrente flua entre coletor e emissor com resistência praticamente nula e que, quando não há tensão aplicada à base, ele age como um isolante, não permitindo a passagem da corrente; por outro lado, quando a corrente elétrica encontra uma bifurcação na qual pode "escolher" entre atravessar um transistor um uma lâmpada, ela "escolherá" sempre o caminho de menor resistência, ou seja, atravessará o transistor quando este conduzir, mantendo a lâmpada apagada, ou a lâmpada quando o transistor não conduzir, acendendo a lâmpada; Tente, é mais simples do que parece...)
Em uma expressão singela como a que acabamos de analisar, com apenas três entradas, não faz muita diferença trabalhar com os conceitos puramente lógicos ou com sua correspondente representação física que pode ser implementada apenas com sete transistores. Mas imagine uma expressão realmente complexa, com dezenas ou centenas de entradas, cuja construção do circuito equivalente exigiria milhares de transistores. Os resultados correspondentes a quaisquer combinações podem ser obtidos imediatamente apenas ligando ou desligando os interruptores correspondentes às entradas.
Circuitos como os mostrados na coluna anterior, ou seja, circuitos que produzem uma saída que representa o resultado de uma operação da álgebra booleana usando como operandos os sinais de entrada, são chamados "portas lógicas". Elas replicam o comportamento das operações elementares da lógica digital. Neles, não nos interessa o valor numérico da tensão, mas sim sua presença (indicando o valor "um", ou "verdadeiro") ou ausência (indicando o valor "zero", ou "falso"). Circuitos deste tipo são chamados "circuitos digitais". Portas lógicas são, então, artefatos da eletrônica digital.
Na próxima coluna discutiremos detalhes das portas lógicas, instituiremos uma convenção para sua representação gráfica e veremos como usá-las em circuitos digitais que tenham uma serventia prática.