Un comparador de conteo de bits (BCC) es un circuito lógico que toma cierto número de entradas de conteo A1, A2, A3, ..., An
, así como entradas que B1, B2, B4, B8, ...
representan un número. A continuación, devuelve 1
si el número total de A
entradas que están en es mayor que el número representado en binario por las B
entradas (por ejemplo B1
, B2
y B8
haría que el número 11
), y 0
de otra manera.
Por ejemplo, para un comparador bit de recuento que se lleva a 5
las entradas, de las cuales A2
, A4
, A5
, y B2
se fijan a 1
, volverá 1
porque hay 3 A
entradas que están en, que es mayor que 2
(el número representado por solamente B2
estar en).
Su tarea es crear un comparador de conteo de bits que tome un total de 16 A
entradas y 4 B
entradas (que representan bits de 1
a 8
), utilizando solo compuertas NAND de dos entradas y utilizando la menor cantidad posible de compuertas NAND. Para simplificar las cosas, puede usar las compuertas AND, OR, NOT y XOR en su diagrama, con los siguientes puntajes correspondientes:
NOT: 1
AND: 2
OR: 3
XOR: 4
Cada una de estas puntuaciones corresponde al número de puertas NAND que se necesitan para construir la puerta correspondiente.
El circuito lógico que utiliza la menor cantidad de compuertas NAND para producir una construcción correcta gana.
fuente
AND
== twoNAND
Respuestas:
169 nands
Suma las A para obtener A {1,2,4,8,16}. Luego hace una comparación binaria con los Bs.
Yo uso algunos bloques de construcción más:
Los sumadores medios y completos tienen 2 salidas: se distinguen con una r por resultado yc por acarreo.
Las A {1,2,4,8,16} son las salidas de los medios sumadores.
fuente
751 puertas nand
Esto aún no está totalmente golfizado. Di la respuesta en Verilog porque de esta manera, pude escribir un programa para generar cada sección. Si es obligatorio responder con un diagrama, hágamelo saber. Son equivalentes
&
es y,~
no es, y|
es o.Mi estrategia:
A
y poner mover todos los1
s a los números bajos, almacenaris
. (esta es la mayoría del programa)B
y descomprimirlo en 16 bits (lo llaméeB
para expandidaB
)fuente