Kmila
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 — din entra por el bit 0, el MSB se descarta.
  • reset asíncrono activo en alto pone r a ceros.
  • q refleja r.

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.

Ocurrió un error no controlado. Recargar 🗙