¿Por qué este patrón VHDL simple para un registro de desplazamiento no funciona como se esperaba?

A primera vista, esperaría que el código fuente VHDL a continuación se comportara como un registro de desplazamiento. En ese q, con el tiempo sería "UUUU0", "UUU00", "UU000", "U0000", "00000", .... pero en su lugar siempre es Udespués de cinco (o más) ciclos de reloj consecutivos. ¿Por qué es...