Um comparador de contagem de bits (BCC) é um circuito lógico que recebe um número de entradas de contagem A1, A2, A3, ..., An
e entradas que B1, B2, B4, B8, ...
representam um número. É, em seguida, retorna 1
se o número total de A
entradas que estão em é maior do que o número representado em binário por as B
entradas (por exemplo B1
, B2
, e B8
iria tornar o número 11
), e 0
de outra forma.
Por exemplo, para um comparador de contagem de bits que converte 5
entradas, das quais A2
, A4
, A5
, e B2
são definidos como 1
, voltará 1
porque existem 3 A
entradas que estão em, que é maior do que 2
(o número representada por apenas B2
estar em).
Sua tarefa é criar um comparador de contagem de bits que consiga um total de 16 A
entradas e 4 B
entradas (representando bits de 1
até 8
), usando apenas portas NAND de duas entradas e usando o menor número possível de portas NAND. Para simplificar, você pode usar as portas AND, OR, NOT e XOR em seu diagrama, com as seguintes pontuações correspondentes:
NOT: 1
AND: 2
OR: 3
XOR: 4
Cada uma dessas pontuações corresponde ao número de portas NAND necessárias para construir o portão correspondente.
O circuito lógico que usa o menor número de portas NAND para produzir uma construção correta vence.
fonte
AND
== twoNAND
Respostas:
169 nands
Adiciona os A's para obter A {1,2,4,8,16}. Então faz uma comparação binária com os Bs.
Eu uso mais alguns blocos de construção:
Os somadores metade e cheio têm 2 saídas - eles são distinguidos com um r para resultado e c para transporte.
O A {1,2,4,8,16} são os resultados dos semi-somadores.
fonte
751 nand gates
Isto ainda não está totalmente jogado. Dei a resposta em Verilog porque, dessa forma, consegui escrever um programa para produzir cada seção. Se for obrigatório responder com um diagrama, entre em contato. Eles são equivalentes.
&
é e,~
não|
é e é ou.Minha estratégia:
A
e colocar mover todos os1
s para os números baixos, loja emis
. (esta é a maioria do programa)B
e descompacte em 16 bits (eu o chameieB
de expandidoB
)fonte