Detecteur de MSB

Le detecteur de MSB indique l'index du bit de poids fort a 1 dans le bus d'entree, ainsi qu'un drapeau d'activation actif uniquement si au moins un bit est a 1. En balayant depuis le haut, il localise le premier un, la fonction de priorite classique utilisee pour la normalisation et l'estimation de grandeur.

Basique

Premier un sur 4 bits

Pour l'entree 0110 le bit le plus haut a 1 est a l'index 2, donc le detecteur sort 2 et active le drapeau. Quand l'entree est 0000 il n'y a aucun bit a 1, le drapeau reste bas et l'index est indefini.

InputEnableIndex
00000-
000110
001011
010012
011012
100013
Intermédiaire

Balayer un mot plus large

Sur une entree de 8 bits le detecteur renvoie la position du premier 1 vu depuis l'extremite de poids fort. Pour 00101101 le premier un est a l'index 5. Cela equivaut a compter les zeros de tete moins un.

Balayer un mot plus large
Avancé

Normalisation en virgule flottante

Normaliser une valeur consiste a decaler son un de poids fort vers une position fixe. L'index du MSB donne directement le decalage, c'est pourquoi les unites de comptage de zeros de tete pilotent les normaliseurs flottants, les arbitres de priorite et les estimateurs de log2.

Normalisation en virgule flottante

Citations

  • Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Référence 1
  • Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.
  • Wakerly, J. F. (2018). Digital design: Principles and practices (5th ed.). Pearson.