Comparador de Bits

A Lógica da Comparação

Você sabe como os circuitos de um computador podem fazer comparações? Ao pensar nisso você pode imaginar comparações que perguntam algo como: 145 > 67? Mas o objetivo aqui é mostrar como o computador, que é uma máquina que trabalha com lógica binária, pode executar uma operação como essa. Em outra oportunidade irei mostrar como isso acontece para números maiores, mas hoje vou limitar as explicações aos números 0 e 1, já que os computadores digitais são binários e efetivamente só conhecem estes números - ou sinais.

Planejado a Comparação

Ao planejar qualquer tipo de circuito lógico, o projetista parte da construção de uma tabela verdade para representar um problema, usando zeros (sim, verdadeiro, ...) e uns (não, falso, ...). Faremos isso daqui a pouco. Agora vou apenas mostrar uma tabela verdade que apresenta as operações lógicas fundamentais. Ou seja, algo comparável às operações fundamentais da matemática, só que usam apenas 0s e 1s para execução de 4 operações, a saber: negação (!), e (&), ou (|) e ou exclusivo (^).

Voltando ao problema: como um computador pode saber, por exemplo, se 0 = 0 e 1 = 1? Observando a tabela anterior veja que esta operação não existe. Mas se usarmos duas delas (! e ^) podemos chegar a operação desejada. Explicando: se for feita uma negação de um ou exclusivo nos teremos exatamente o resultado desejado, ou seja, sempre que A for igual a B o resultado é 1.

E as outras operações? São fáceis assim? Nem tanto, mas usando um programa que permite que cria circuitos lógicos a partir de uma tabela verdade, a coisa fica bem mais fácil. Usando o Logic Circuit Simplification, para criar uma tabela verdade e seu circuito equivalente para verificar se A é maior que B, basta que: i) seja selecionada a opção para duas variáveis (A e B); ii) sejam selecionados os 0s ou 1s de acordo com o problema, ou seja, 1 sempre que A for maior a B, e 0 caso contrário (a esquerda) e; iii) seja submetida a operação, com posterior observação do resultado, que mostra, entre outras informações, o circuito lógico e a tabela verdade (a direita).

Criando o Circuito Lógico

Podemos repetir os passos anterior criar um circuito para A < B. Fazendo a inversão de A > B teremos A <= B, assim como na inversão de A < B teremos A >= B. Com todas estas informações e circuitos, usando um simulador de circuitos como o Falstad Circuit Simulator, podemos chegar a seguinte simulação. Basta clicar nos 0s ou 1s ao lado de A e B e verifique o funcionamento do circuito.