2012-06-05 13 views
5

Quindi, recentemente ho ereditato del codice VHDL e la mia prima reazione è stata: "VHDL ha delle strutture, perché usano i bit-vettori ovunque?" E poi mi sono reso conto che questo è perché non sembra essere un modo di scrivere qualcosa di simile:È possibile scrivere entità generiche di tipo in VHDL?

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

Vorrei davvero questo fosse possibile. C'è qualcosa che lo approssima anche lontanamente? Anche se devo ridigitare le dichiarazioni di entità o componente, solo un modo per evitare di ridigitare la definizione dell'architettura per ogni tipo (modulo di larghezza generica)?

risposta

3

Sì, e l'implementazione di una coda è uno dei motivi classici per farlo!

Questo è stato in VHDL dal VHDL-2008. Il supporto degli strumenti è variabile a partire dalla metà del 2012. Parla di un'industria in movimento lento!

  • Aldec supports it completely.
  • Modelsim ha supporto parziale - non riesce a trovare un collegamento pubblico alle proprie capacità. Se lo hai installato, è in /technotes/vhdl2008.note
  • Xilinx (XST/ISIM) non lo supporta, o anche VHDL-2002. Non riesco a trovare un collegamento semplice, ma thesePDFs hanno sezioni sulla compatibilità VHDL, che parlano solo di VHDL-1993.
  • strumenti di Altera have partial support, but not for type generics
+0

Non sono sicuro che tu abbia ragione su Xilinx: utilizzo i costrutti del 2002 nel mio codice e simula e sintetizza bene (con XST e ISIM). Inoltre, ISE consente un'impostazione di compatibilità VHDL di "200X". Tuttavia, i loro documenti ufficiali sul supporto standard potrebbero non essere aggiornati. – detly

+0

@detly: grazie per l'aggiornamento, è passato un po 'di tempo da quando mi sono preoccupato di provare qualcosa di "questo secolo" con ISIM. –

+0

Bene, purtroppo sto usando XST ... – Owen

1

Sì e no ...

tipi generici sono una nuova funzionalità del prossimo standard di VHDL-2008: http://www.doulos.com/knowhow/vhdl_designers_guide/vhdl_2008/vhdl_200x_major/#GenericTypes

Tuttavia il supporto di VHDL-2008 da strumenti EDA è ancora molto limitata. Anche se i tuoi strumenti lo supportano, l'uso di questa funzione renderebbe il tuo codice non portatile.

Attenersi a VHDL-2002, una soluzione sarebbe quella di dichiarare i tipi di interfaccia in un pacchetto e e utilizzarlo ovunque necessario con use work.mytypes.all.

+0

"imminente VHDL-2008 standard" - che mi fa grin :) Un giorno sarà descritto come il "standard VHDL corrente", un giorno! –

Problemi correlati