Detector de MSB
O detector de MSB informa o indice do bit mais significativo em 1 no barramento de entrada, junto com um sinalizador de habilitacao que fica alto apenas se ao menos um bit estiver em 1. Varrendo do topo, localiza o primeiro um, a funcao classica de prioridade usada para normalizacao e estimativa de magnitude.
Primeiro um em 4 bits
Para a entrada 0110 o bit mais alto em 1 esta no indice 2, entao o detector entrega 2 e ativa a habilitacao. Quando a entrada e 0000 nao ha bit em 1, a habilitacao fica em baixo e o indice fica indefinido.
| Input | Enable | Index |
|---|---|---|
| 0000 | 0 | - |
| 0001 | 1 | 0 |
| 0010 | 1 | 1 |
| 0100 | 1 | 2 |
| 0110 | 1 | 2 |
| 1000 | 1 | 3 |
Varrer uma palavra mais larga
Em uma entrada de 8 bits o detector retorna a posicao do primeiro 1 visto do extremo mais significativo. Para 00101101 o primeiro um esta no indice 5. Equivale a contar zeros a esquerda menos um.
Normalizacao em ponto flutuante
Normalizar um valor significa deslocar seu um mais significativo para uma posicao fixa. O indice do MSB fornece diretamente a quantidade de deslocamento, por isso unidades de contagem de zeros a esquerda alimentam normalizadores de ponto flutuante, arbitros de prioridade e estimadores de log2.
Citações
- Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Referência 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.