Todos los ejercicios
Medio
Corrige el error
5 pruebas
Registro de desplazamiento de 8 bits — dirección equivocada
Se pedía un registro serie-entrada / paralelo-salida que desplaza a la izquierda en cada flanco.
Especificación
- En
rising_edge(clk):r <- r(6 downto 0) & din—dinentra por el bit 0, el MSB se descarta. resetasíncrono activo en alto ponera ceros.qreflejar.
Qué falla
La concatenación está invertida: din se inserta por el lado del MSB, así que tras varios ciclos con din = '1' se llenan primero los bits altos en lugar de los bajos.
Pista
En r <= a & b, el operando de la izquierda se convierte en los MSB. Para desplazar a la izquierda, descarta el MSB y coloca din a la derecha.
Caso de prueba visible
din en '1' tras reset — el shift a la izquierda llena primero los LSB
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
din |
0 ns | 1 |
4 casos de prueba ocultos — resuélvelos para revelarlos.