Se debe a que no pudo leer desde puertos de tipo OUT en VHDL.
Si el valor que controla un puerto OUT se debe leer dentro del diseño, se debe usar una señal para mantenerlo, luego esa señal asignada al puerto OUT.
La capacidad para hacerlo se agregó en VHDL-2008. Sin embargo, se crearon una gran cantidad de diseños antes de 2008 y antes de que la utilización de VHDL-2008 estuviera disponible en las herramientas de software. Estos diseños, por lo tanto, utilizarían el método de salida de señales.
Además, depende de sus circunstancias como ingeniero, pero es posible que la opción de usar VHDL-2008 no esté disponible para usted. Algunas compañías requerirán que las revisiones de diseño sean sintetizadas o simuladas por una versión específica del software (Quartus, Xilinx ISE, ModelSim, etc.) sin cambios en la configuración del proyecto de diseño, por lo que no puede usar VHDL-2008. He trabajado en muchas compañías que hacen esto, por ejemplo, en compañías de defensa. Pasar a una versión más nueva del software presenta un riesgo innecesario de cambios inesperados que pueden desacreditar todas las pruebas y la experiencia adquirida con ese firmware hasta ahora, con el tiempo y los gastos que conlleva. Por lo tanto, hay mucho valor en escribir VHDL 'en la mitad del camino' que será aceptado por la gama más amplia de herramientas de software que pueda, en lugar de usar una sintaxis específica para VHDL-2008 o VHDL-2002. Las desventajas de esto son pocas o ninguna: no tengo conocimiento de nada que no pueda hacer en las versiones anteriores que requiere la gran mayoría de los diseños. Como dije, depende de tus circunstancias y es algo a considerar. Para mí, definitivamente usaría señales de salida. Ser completamente portátil entre las herramientas de software y las versiones es valioso para mí y una de mis prioridades.