Detector de LSB
El detector de LSB informa el indice del bit menos significativo en 1 dentro del bus de entrada, con un indicador de habilitacion que se activa solo si hay al menos un bit en 1. Al recorrer desde abajo, aisla el uno mas bajo, la operacion detras del find-first-set y la logica de asignacion.
Ultimo uno en 4 bits
Para la entrada 0110 el bit mas bajo en 1 esta en el indice 1, asi que el detector entrega 1 y activa habilitacion. Con 0000 no hay nada 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 | 1 |
| 1000 | 1 | 3 |
Aislar el uno mas bajo
En 8 bits el detector devuelve el primer 1 visto desde el extremo menos significativo. Para 01101000 el ultimo uno esta en el indice 3. El truco clasico x AND (-x) aisla ese mismo bit como mascara.
Asignador find-first-free
Los grupos de recursos guardan un mapa de bits donde 0 marca una ranura libre. Al invertirlo y tomar el indice del LSB se obtiene la primera ranura disponible en un paso, el nucleo de asignadores de buffers, listas de listos del planificador y arbitros round-robin.
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.