¿Es posible que un componente VHDL tenga múltiples arquitecturas?

3

Solo un pensamiento que tuve: ¿es posible que un componente VHDL tenga múltiples arquitecturas si las salidas no son modificadas por ambos? Si es así, ¿cómo podemos seleccionar el que se usará en el momento de la síntesis (como el preprocesador de C)? ¿Qué sucede si varias arquitecturas pueden coexistir y generar conflictos?

    
pregunta Mister Mystère

2 respuestas

5

Para complementar la respuesta de @vermaete:

Una entidad define una interfaz para un cuadro; Una arquitectura define lo que hay dentro. Si no tiene la misma interfaz, no tiene la misma entidad. Si tiene los mismos nombres de puerto, pero cada arquitectura los usa para diferentes propósitos, bueno, eso es legal, pero tal vez no sea recomendable, depende de los detalles.

Si desea utilizar varias arquitecturas simultáneamente, una alternativa a las configuraciones es simplemente usar la creación de instancias directas:

U1 : entity my_lib.my_comp(arch1)
   ...

U2 : entity my_lib.my_comp(arch2)
   ...

Si desea utilizar solo uno a la vez, es probable que se trate de algún tipo de configuración.

    
respondido por el fru1tbat
4

Una entidad VHDL puede tener diferentes arquitecturas VHDL. Puede seleccionar el enlace correcto entre 'entidad' y 'arquitectura' con la 'configuración'. La entidad está describiendo las entradas y salidas. Por lo tanto, tienen que permanecer igual.

Puede encontrar más información en sitio web de Doulos

Nota: aunque una "configuración" es VHDL correcta, no encontrarás muchos ejemplos reales de ella. En la mayoría de los casos, los diseños VHDL tienen una arquitectura para cada entidad y no se utiliza ninguna configuración. Aunque es posible usarlo si es necesario.

Otra forma de vincular la arquitectura correcta con la entidad es dividir la entidad y las arquitecturas en diferentes archivos y cargar la correcta en la herramienta (por ejemplo, simulación, implementación, ...)

    
respondido por el vermaete

Lea otras preguntas en las etiquetas