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 1si el número total de Aentradas que están en es mayor que el número representado en binario por las Bentradas (por ejemplo B1, B2y B8haría que el número 11), y 0de otra manera.
Por ejemplo, para un comparador bit de recuento que se lleva a 5las entradas, de las cuales A2, A4, A5, y B2se fijan a 1, volverá 1porque hay 3 Aentradas que están en, que es mayor que 2(el número representado por solamente B2estar en).
Su tarea es crear un comparador de conteo de bits que tome un total de 16 Aentradas y 4 Bentradas (que representan bits de 1a 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: 1AND: 2OR: 3XOR: 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== twoNANDRespuestas:
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:
Ay poner mover todos los1s a los números bajos, almacenaris. (esta es la mayoría del programa)By descomprimirlo en 16 bits (lo llaméeBpara expandidaB)fuente