Comparateur de magnitude

Compare deux bus non signés A et B et rapporte le résultat sur trois sorties distinctes : A>B, A=B et A<B. Exactement l'une d'elles est HIGH à chaque instant, car deux nombres sont toujours soit supérieurs, soit égaux, soit inférieurs. Il répond à la question qu'un soustracteur ne fait que suggérer, et il y répond sans produire une différence qu'il faudrait ensuite interpréter.

Basique

Lire les trois drapeaux

Alimentez A et B depuis deux entrées multibit et placez une LED sur chacune des trois sorties. Changez l'un des nombres et observez la LED allumée se déplacer entre les trois drapeaux. Le tableau ci-dessous utilise des valeurs sur 2 bits pour rester court ; le comportement est le même quelle que soit la largeur.

ABA>BA=BA<B
00010
10100
23001
33010
Intermédiaire

Un détecteur de seuil

Maintenez B fixe avec un interrupteur DIP et pilotez A depuis un compteur. La sortie A>B passe alors à HIGH au moment où le comptage dépasse votre seuil, et y reste ensuite. Combinez A>B avec A=B via une porte OR lorsque vous voulez la condition « supérieur ou égal », que le comparateur ne fournit pas sur une broche dédiée.

Avancé

L'égalité est la partie facile

Il vaut la peine de savoir ce que coûte le comparateur. L'égalité seule est peu coûteuse : appliquez un XNOR à chaque paire de bits puis un AND aux résultats, car deux nombres sont égaux exactement lorsque toutes les positions concordent. L'ordre est la partie coûteuse, car il doit être décidé à partir du bit le plus significatif qui diffère, et c'est pourquoi un comparateur de magnitude croît avec la largeur d'une manière qu'un détecteur d'égalité ne connaît pas. Si votre conception n'a besoin que de A=B, la construire avec des XNOR est plus compact que de placer un comparateur complet.

Citations

  • Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson. Référence 1
  • Wakerly, J. F. (2018). Digital design: Principles and practices (5th ed.). Pearson.