Todos los ejercicios
Difícil
Corrige el error
5 pruebas
Multiplicador de Booth — shift erróneo
Una iteración de Booth debe hacer un shift derecho aritmético sobre el acumulador (extensión de signo). El starter hace un shift derecho lógico (rellena con 0), corrompiendo cualquier valor negativo.
Encuentra la línea que convierte a unsigned antes del shift y reemplázala por shift_right(signed(...), 1) para que el bit de signo se propague.
Caso de prueba visible
a=-8 (signed), b=001
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
a |
0 ns | 11111000 |
b |
0 ns | 001 |
4 casos de prueba ocultos — resuélvelos para revelarlos.