Desenhe o diagrama de portas lógicas para um circuito comparador que receba como entrada dois números inteiros de quatro bits cada um e produza uma saída em nível ALTO apenas quando os dois números forem idênticos.
Passo 1
O enunciado pede que seja desenhado um diagrama de portas lógicas para um circuito comparador que:
Recebe como entradas dois números inteiros de quatro bits cada um.
Vou chamar o primeiro número de A com bits \,A_3,A_2,A_1,A_0.
Vou chamar o segundo número de B com bits \,B_3,B_2,B_1,B_0.
Produza uma única saída em nível ALTO (nível lógico 1) apenas quando os dois números forem idênticos bit a bit.
Informações relevantes dadas pelo enunciado:
Entradas: \,A_3,A_2,A_1,A_0 e \,B_3,B_2,B_1,B_0.
Saída: um sinal lógico que deve valer 1 somente se A for exatamente igual a B (todos os 4 bits iguais).
Passo 2
Ideia básica (sem ainda desenhar): para que dois números de 4 bits sejam idênticos é necessário e suficiente que cada par de bits correspondentes seja igual. Logo precisamos:
Para cada índice i=0,1,2,3 determinar um sinal que indique se A_i é igual a B_i.
Combinar esses quatro sinais de igualdade com uma operação lógica que só entregue 1 se todos os quatro forem 1 (ou seja, um AND de todos eles).
Conceitos básicos usados:
Porta XOR: a saída é 1 quando as entradas são diferentes. Para duas entradas X e Y a função é \,X\oplus Y.
Porta XNOR: a saída é 1 quando as entradas são iguais; é a negação do XOR. Para duas entradas X e Y a função é \,\overline{X\oplus Y}. A XNOR é ideal para testar igualdade bit a bit.
Vou mostrar a tabela verdade de XOR e XNOR para ficar claro (apenas para duas entradas X e Y):
Essa expressão diz exatamente o que se quer: cada par de bits deve ser igual (cada XNOR = 1) e todos devem ser verdadeiros simultaneamente.
Passo 4
Descrição do diagrama de portas (passo a passo para desenhar):
Desenhe os 8 fios de entrada à esquerda rotulados \,A_3,A_2,A_1,A_0 e \,B_3,B_2,B_1,B_0.
Para cada par (A_i,B_i) coloque uma porta XNOR (ou uma combinação que implemente XNOR) com a saída rotulada E_i.
Assim há quatro XNORs: um para (A_3,B_3) produz E_3, outro para (A_2,B_2) produz E_2, etc.
Pegue as quatro saídas E_3,E_2,E_1,E_0 e alimente-as em uma porta AND com quatro entradas (ou em uma árvore de ANDs 2-entradas) cuja saída é EQ.
Saída EQ é o sinal que fica em nível ALTO apenas quando A=B.
Observação prática de desenho:
Se não houver AND de 4 entradas no conjunto de portas disponível, use três portas AND de 2 entradas para fazer uma árvore equilibrada, por exemplo:
T_1 = E_3 \land E_2
T_2 = E_1 \land E_0
EQ = T_1 \land T_2
Passo 5
Implementação alternativa caso não exista XNOR na biblioteca:
XNOR pode ser implementada com portas básicas (AND, OR, NOT). Duas formas úteis:
Usando XOR e NOT:\overline{A_i\oplus B_i} = \text{NOT}(A_i\oplus B_i).Então coloque uma porta XOR em (A_i,B_i) e depois uma NOT na saída.
Fórmula direta (mais gate-friendly):\overline{A_i\oplus B_i} = (A_i\land B_i) \lor (\overline{A_i}\land \overline{B_i}).Isso usa duas ANDs (uma para A_i\land B_i, outra para \overline{A_i}\land \overline{B_i}), um NOT em cada entrada (para obter \overline{A_i} e \overline{B_i}), e uma OR final.
Mostre como desenhar um XNOR por essa segunda forma:
Para cada bit:
Faça NOT de A_i e NOT de B_i.
AND1 = A_i \land B_i.
AND2 = \overline{A_i} \land \overline{B_i}.
XNOR out E_i = OR(AND1, AND2).
Passo 6
Exemplo numérico passo a passo (para fixar):
Tome A = 1011 e B = 1011.
Para i=3: A_3=1, B_3=1 \Rightarrow A_3\oplus B_3=0, então E_3=\overline{0}=1.
Algum E_i=0 já faz EQ=0. Saída BAIXA: números diferentes.
Passo 7
Considerações práticas rápidas para prova/implementação:
Se o conjunto de portas tem XNOR de 2 entradas e AND de 4 entradas, a implementação é direta e curta: 4 XNOR + 1 AND(4).
Se só há portas 2-entrada, faça a árvore de ANDs (duas AND para pares, depois uma AND final).
Se só há NAND (comum em algumas bibliotecas), é possível implementar XNOR e AND usando apenas NANDs (mas isso exige conhecer transformações De Morgan — posso mostrar se quiser).
Propagação de atraso: o caminho crítico passa por uma XNOR e depois pela árvore de ANDs. Em circuitos de alta velocidade pode-se balancear a árvore de ANDs para reduzir atraso.
Passo 8
Resumo para desenhar rapidamente na folha da prova (instrução direta):
Saídas XNOR3…XNOR0 vão para uma porta AND de 4 entradas (ou para uma árvore de ANDs 2x2 conforme explicado).
Saída dessa AND é EQ — nível ALTO somente se todos os XNORs indicarem igualdade.
Resposta
Use quatro portas XNOR aplicadas aos pares (A_3,B_3),(A_2,B_2),(A_1,B_1),(A_0,B_0) para gerar E_3,E_2,E_1,E_0 com E_i=\overline{A_i\oplus B_i}, e então aplique um AND de quatro entradas em E_3,E_2,E_1,E_0. A saída é