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.
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.
| Input | Enable | Index |
|---|---|---|
| 0000 | 0 | - |
| 0001 | 1 | 0 |
| 0010 | 1 | 1 |
| 0100 | 1 | 2 |
| 0110 | 1 | 2 |
| 1000 | 1 | 3 |
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.
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.
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.