Detector de MSB
El detector de MSB informa el indice del bit mas significativo que esta en 1 dentro del bus de entrada, junto con un indicador de habilitacion que se activa solo si hay al menos un bit en 1. Al recorrer desde arriba, ubica el primer uno, la funcion clasica de prioridad usada para normalizacion y estimacion de magnitud.
Primer uno en 4 bits
Para la entrada 0110 el bit mas alto en 1 esta en el indice 2, asi que el detector entrega 2 y activa habilitacion. Cuando la entrada es 0000 no hay bit en 1, la habilitacion queda en bajo y el indice no esta definido.
| Input | Enable | Index |
|---|---|---|
| 0000 | 0 | - |
| 0001 | 1 | 0 |
| 0010 | 1 | 1 |
| 0100 | 1 | 2 |
| 0110 | 1 | 2 |
| 1000 | 1 | 3 |
Recorrer una palabra mas ancha
En una entrada de 8 bits el detector devuelve la posicion del primer 1 visto desde el extremo mas significativo. Para 00101101 el primer uno esta en el indice 5. Equivale a una operacion de contar ceros a la izquierda menos uno.
Normalizacion en punto flotante
Normalizar un valor significa desplazar su uno mas significativo a una posicion fija. El indice del MSB da directamente la cantidad de desplazamiento, por eso las unidades de conteo de ceros a la izquierda alimentan normalizadores de flotantes, arbitros de prioridad y estimadores de log2.
Citas
- Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Referencia 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.