VHDL Converti sottotipo per digitare per HDL attivo
-
21-12-2019 - |
Domanda
Ho un pakcgae in cui dichiaro un mucchio di sottotipi e tipi.In HDL attivo, sembra che ci sia un problema ogni volta che provo a fare un porto da un sottotipo, quindi mi chiedo se c'è un modo per convertirli su tipi.Il seguente sarebbe un sottotipo che vorrei convertire:
sottotipo word_t è std_logic_vector (15 downto 0);- Parola (definizione)
È possibile senza solo creare un tipo che è un record o un array? Grazie
Soluzione
Non pensare che sia possibile creare direttamente un type
basato su un altro subtype
, ma senza il subtype
può essere fatto come:
type word_t is array (15 downto 0) of std_logic;
.
Tuttavia, la creazione di un nuovo type
per la porta avrà l'uso del porto ingombrante, a causa della natura di tipo dura del VHDL.
Un'operazione alternativa può essere quella di creare un subtype
con la gamma per word_t
, come:
subtype word_range_t is natural range 15 downto 0;
.
e quindi utilizzare quel subtype
con std_logic_vector
nella dichiarazione port
, come:
... std_logic_vector(word_range_t);
.
La porta è quindi ancora compatibile con std_logic_vector
e la dimensione della parola è quindi ancora facilmente manterrabile.