Tiene varias opciones aquí:
- Para usar un inout -mode port, y leer el valor directamente
- Para utilizar un búfer -mode puerto, y lea el valor directamente
- Para usar un puerto de modo fuera y leer el valor directamente (solo VHDL-2008)
- Para utilizar un puerto de modo out y leer el valor utilizando el atributo 'driving_value
- Para usar una señal interna y copiar su valor en la salida
- Para modelar el estado interno como una variable y copiar su valor en la salida
El consejo general es usar una señal interna, principalmente porque se trata de una solución altamente portátil. Pero también me gustan los métodos de usar el atributo 'driving_value , o leer directamente desde el puerto de salida (solo VHDL-2008). Mantener el estado en una variable también se ve bien porque impide declarar señales innecesarias solo para hacer feliz al compilador; también es tan portátil como el uso de señales internas, y las variables son más eficientes que las señales desde un punto de vista de simulación.
Tenga en cuenta que si usa un puerto de entrada, otras entidades conectadas al puerto (y que no tienen nada que ver con su modelo FF) podrían cambiar el valor leído dentro de su modelo. Por otro lado, si usa el modo de búfer, puede tener problemas de conectividad en revisiones anteriores de VHDL, que especifican que los puertos del modo de búfer solo pueden conectarse a otros puertos del modo de búfer o señales internas (es decir, no puede conectarlo directamente a un puerto fuera de modo cuando crea una instancia de su FF).