Bit Slice Checker

1

Estoy intentando usar el diseño de segmentos de bits para implementar un circuito que verifique si un número binario A de n bits tiene un número par de 1 en su representación binaria. Decidí que el circuito debería producir una salida de 0 si el número de 1 es impar, o 1 de lo contrario.

Actualmente estoy fijo en un escenario donde el segmento de bits comunica la suma de los bits anteriores, a (i-1), con el bit actual, a (i), todo ignorando el bit de acarreo. Transmitirá esta suma al siguiente segmento de bits. Esencialmente, si un número binario de N bits es par, la suma de salida final será 0, en cuyo caso invertiría el último bit de suma. No estoy totalmente convencido de mi enfoque, ¿hay un mejor enfoque?

Esta es mi tabla de verdad actual: s (i) funciona como un bit de verificación en un circuito de sumador completo. Al menos la forma en que lo modelé. Honestamente, siento que estoy haciendo esto mal.

a(i)    s(i)     output
------------------------

 0       0         1

 1       0         0

 0       1         1

 1       1         0
    
pregunta Omar Ayala

2 respuestas

0

Está calculando la paridad de un bit de su entrada de n bits. La forma estándar de hacerlo es con un árbol de compuertas XOR de 2 entradas, que minimiza el conteo y la profundidad de la compuerta.

    
respondido por el shuckc
0

No hay nada malo en tu enfoque:

sum = 0
for i=1:n loop
   sum = sum + a(i)
end 
output = !sum

Pero no veo la necesidad de una versión completa aquí. Puede implementar esta lógica utilizando medio sumador o XOR gate.

XOR será una mejor alternativa: output = !(a(1) xor a(2) xor ... xor a(n))

    
respondido por el nidhin

Lea otras preguntas en las etiquetas