Un comparateur de comptage de bits (BCC) est un circuit logique qui prend un certain nombre d'entrées de comptage A1, A2, A3, ..., An
ainsi que des entrées B1, B2, B4, B8, ...
représentant un nombre. Il retourne ensuite 1
si le nombre total d' A
entrées qui sont sur est supérieur au nombre représenté en binaire par les B
entrées (par exemple B1
, B2
et B8
rendrait le nombre 11
), et 0
autrement.
Par exemple, pour un comparateur de comptage de bits qui prend les 5
entrées, dont A2
, A4
, A5
, et B2
sont fixés à 1
, sera de retour , 1
car il y a 3 A
entrées qui sont sur, ce qui est plus grand que 2
(le nombre représenté par seulement B2
être activé).
Votre tâche consiste à créer un comparateur de comptage de bits qui prend un total de 16 A
entrées et 4 B
entrées (représentant les bits de 1
à 8
), en utilisant uniquement des portes NAND à deux entrées et en utilisant le moins de portes NAND possible. Pour simplifier les choses, vous pouvez utiliser les portes AND, OR, NOT et XOR dans votre diagramme, avec les scores correspondants suivants:
NOT: 1
AND: 2
OR: 3
XOR: 4
Chacun de ces scores correspond au nombre de portes NAND qu'il faut pour construire la porte correspondante.
Le circuit logique qui utilise le moins de portes NAND pour produire une construction correcte gagne.
la source
AND
== twoNAND
Réponses:
169 nands
Additionne les A pour obtenir A {1,2,4,8,16}. Effectue ensuite une comparaison binaire avec les Bs.
J'utilise quelques autres blocs de construction:
Les demi-additionneurs et les additionneurs complets ont 2 sorties - ils se distinguent par un r pour le résultat et un c pour le report.
Les A {1,2,4,8,16} sont les sorties des demi-additionneurs.
la source
751 portes nand
Ce n'est pas encore entièrement joué. J'ai donné la réponse dans Verilog parce que de cette façon, j'ai pu écrire un programme pour sortir chaque section. S'il est obligatoire de répondre avec un schéma, merci de me le faire savoir. Ils sont équivalents.
&
est et,~
n'est pas, et|
est ou.Ma stratégie:
A
et mettre déplacer tous les1
s vers les numéros bas, stockeris
. (c'est la majorité du programme)B
et décompresser en 16 bits (je l'ai appeléeB
pour développéB
)la source