¿Podemos declarar la salida como "inout" para diseñar un flip flop en VHDL?

0

Quiero diseñar un flip flop JK en VHDL. En esta salida depende del estado anterior. Un método para implementar esta condición es declarar un estado como una señal dentro de la arquitectura.

Otro método es declarar salidas como "inout". Simulé el flip flop de JK usando "inout" y funcionó sin ningún error. En el hardware real, Q y Q_bar son salidas, así que dudo que declararlo como "inout" es un error técnico.

¿Cuál es el método correcto??

    
pregunta tollin jose

2 respuestas

1

Cualquiera funcionará, como descubrió. Sin embargo, me he topado con suficientes "fallas" con varias herramientas de simulación y síntesis al usar inout ports que ahora las evito siempre que sea posible. Así que diría que el primer método es preferible.

    
respondido por el Dave Tweed
1

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).

    
respondido por el rick

Lea otras preguntas en las etiquetas