L'utilisation de portes NAND / NOR augmente-t-elle le retard du circuit?

12

Je me souviens avoir appris à l'école que l'on peut construire n'importe quel circuit logique à partir de portes NANDou uniquement NOR.

Tout d'abord, je me demande si c'est ainsi que cela se fait réellement: c'est-à-dire lorsque Intel fabrique un processeur, construit-il tous les registres, etc. en utilisant NAND/ NORgates, ou a-t-il une autre manière plus sophistiquée de faire les choses?

Deuxièmement, je me demande si tout construire de cette manière augmente le délai de propagation par rapport à un circuit fabriqué à l'aide de portes AND/ OR/ NOT.

Je sais que lorsque vous utilisez PMOS/ NMOSconfigurations pour construire des portes, un ANDou un ORsort comme 2 étapes par opposition à un NANDou un NORqui ne sont tous les deux que 1. Puisque je sais que vous pouvez faire un ANDde 2 en cascade NANDet un ORde 2 en cascade NOR, il semble que le délai de propagation n'augmente pas tant que les fabricants utilisent à la fois NANDs et NORs.

Quelqu'un a-t-il une idée de tout cela, en particulier de ce qui se fait réellement sur les circuits intégrés fabriqués?

llakais
la source

Réponses:

10

Tout d'abord, je me demande si c'est ainsi que cela se fait réellement: c'est-à-dire lorsque Intel fabrique un processeur, construit-il tous les registres, etc. en utilisant NAND/ NORgates, ou a-t-il une autre manière plus sophistiquée de faire les choses?

Les registres ne sont pas constitués de portes, le plus souvent ce sont des circuits dédiés. Ils peuvent être vus comme réalisés avec des onduleurs ( NOT), mais seulement dans une certaine mesure.

Dans la technologie CMOS, le circuit everlogic est basé sur l'onduleur: NORet les NANDportes ne sont que des onduleurs avec plusieurs entrées disposées de manière intelligente, fondamentalement. Les portes inverseuses sont donc plus rapides que les portes non inverseuses, qui ne sont que des portes inverseuses avec un NOTà la sortie.

Toujours en logique dynamique, il est plus simple de mettre en cascade deux blocs inverseurs que de placer des NOTportes partout.

Considérez que dans certains cas, un circuit peut être constitué de blocs séparés, il peut donc y avoir un cas dans lequel la sortie est interfacée via un ou plusieurs onduleurs pour la mise en mémoire tampon.

Et il y a un autre avantage: l' intégration . Le fait d'avoir un petit nombre de portes différentes aide à établir le circuit et à uniformiser les performances. Souvent, les bibliothèques incluent des blocs logiques à différents niveaux de complexité: transistor, grille, opérateur ou supérieur.

Donc, brièvement, oui, les processeurs rapides utilisent principalement des portes inverseuses.

clabacchio
la source
D'accord, je pense que cela a du sens pour moi. À titre de vérification - disons que je voulais faire un additionneur de base (par exemple 4 bits) en utilisant la logique combinatoire (c'est-à-dire pas en reliant des demi-additionneurs). Est-ce que j'aborder ce problème en essayant d'utiliser uniquement NANDet NORportes, et que quelques - uns d' entre eux que possible? Cela donnera-t-il presque toujours une meilleure conception (en termes de retard / nombre de portes) que si j'abordais le problème en utilisant un répertoire complet de portes, puis remplaçais AND/ OR/ NOTportes par leurs NAND/ NORéquivalents?
llakais
@llakais dans presque tous les cas, oui. Et au moins ce sera égal. Mais, par exemple, j'ai conçu un additionneur pour un cours universitaire, et j'ai fait deux choses: premièrement, j'ai utilisé des blocs additionneurs 4: 2 avec des additionneurs complets (les blocs gagnent!), Et deuxièmement, je ' Nous avons implémenté l'additionneur complet avec des portes XOR à transistor de passage, il y a donc parfois des solutions différentes.
clabacchio
Je mentionnerai que pour les additionneurs, avoir une cellule d'additionneur complet est généralement le plus rapide, pas une combinaison de portes.
W5VO
@ W5VO bien un additionneur complet est essentiellement une combinaison d'un XOR et d'une porte ET ... mais en effet le XOR peut être fait de manière intelligente sans utiliser les portes de base
clabacchio
3

Mon inclination avec CMOS est de penser à un bloc de construction de base comme étant un onduleur précédé d'une combinaison arbitraire de portes indépendantes "et" et "ou" sans interconnexions entre elles; toutes les fonctions suivantes:

not (X and (Y or Z))
not (X or (Y and Z))
not (X and Y and Z)
not (X or Y or Z)

ont essentiellement le même coût en silicium, même si seuls les deux derniers ont des noms. Essayer de composer les deux anciennes fonctions en utilisant une combinaison de portes NAND ou NOR donnerait quelque chose de beaucoup plus grand et plus lent qu'une réalisation directe.

supercat
la source