2012-06-05 11 views
5

Por lo tanto, heredé recientemente un código VHDL, y mi primera reacción fue: "VHDL tiene estructuras, ¿por qué usan vectores de bits en todas partes?" Y entonces me di cuenta de esto se debe a que no parece haber ninguna manera de escribir algo como esto:¿Es posible escribir entidades de tipo genérico en VHDL?

entity Queue is 
    generic (
     EL : type 
    ); 
    port (
     data_in : EL; 
     data_out : EL; 
     ... 
    ); 
end entity Queue; 

Realmente deseo que esto fuera posible. ¿Hay algo que se aproxime remotamente a él? Incluso si tengo que volver a escribir la entidad o las declaraciones de componentes, ¿hay alguna manera de evitar volver a escribir la definición de arquitectura para cada tipo (módulo un ancho genérico)?

Respuesta

3

Sí, ¡y la implementación de Queue es una de las razones clásicas para hacerlo!

Esto ha estado en VHDL desde VHDL-2008. El soporte de herramientas es variable a partir de mediados de 2012. ¡Habla sobre una industria que se mueve lentamente!

  • Aldec supports it completely.
  • Modelsim tiene soporte parcial: no se puede encontrar un enlace público a sus capacidades. Si lo tiene instalado, está en /technotes/vhdl2008.note
  • Xilinx (XST/ISIM) no lo admite, o incluso VHDL-2002. No puedo encontrar un enlace simple, pero thesePDFs tienen secciones sobre compatibilidad VHDL, que solo hablan de VHDL-1993.
  • herramientas de Altera have partial support, but not for type generics
+0

No estoy seguro de que tenga razón acerca de Xilinx: uso construcciones 2002 en mi código y simula y sintetiza bien (con XST e ISIM). Además, ISE permite una configuración de compatibilidad VHDL de "200X". Sin embargo, sus documentos oficiales sobre soporte estándar pueden estar desactualizados. – detly

+0

@detly: gracias por la actualización, ha pasado un tiempo desde que me molesté en intentar algo "de este siglo" con ISIM. –

+0

Bueno, ay, estoy usando XST ... – Owen

1

Sí y no ...

tipos genéricos son una nueva característica de la próxima norma VHDL-2008: http://www.doulos.com/knowhow/vhdl_designers_guide/vhdl_2008/vhdl_200x_major/#GenericTypes

Sin embargo, el apoyo de VHDL-2008 por herramientas EDA es todavía muy limitada. Incluso si sus herramientas lo admiten, el uso de esta característica haría que su código no sea portátil.

Ajustándose a VHDL-2002, una solución sería declarar sus tipos de interfaz en un paquete y mytypes y usarlo en todas partes con use work.mytypes.all.

+0

"próxima VHDL-2008 estándar" - que me hace sonreír :) Un día que va a ser descrito como el "estándar VHDL actual", un día! –

Cuestiones relacionadas