Forum: FPGA, VHDL & Co. type of std_logic_vector definieren


von Hans-Werner (Gast)


Lesenswert?

Wie kann ich folgendes sinngemäß definieren ?

type data_type is std_logic_vector (data_width-1 downto 0);

Damit ich dieses z.B. so verwenden kann:

procedure swap is (a : inout data_type; b : inout data_type)
begin
end procedure;

Ist dies überhaupt möglich ? Wenn ja in welcher VHDL Version (93,2008) ?
Eine Typdefinition von "array of std_logic_vector" ist ja möglich.

von Matthias F. (flint)


Lesenswert?

subtype?

von SuperWilly (Gast)


Lesenswert?

Hi,

man kann bspw. in einem Package einen Subtype definieren:


package my_package is
constant data_width : integer := 8;
subtype data_type is std_logic_vector (data_width-1 downto 0);
end my_package;


Das Package musst Du dann noch im Modul, indem du die Prozedur aufrufst,
einbinden:

library work;
use work.my_package.all;

Gruß,
SuperWilly

von Hans-Werner (Gast)


Lesenswert?

Lieber SuperWilly,

vielen Dank.
Was aber wenn data_width generisch definiert ist ?
Sind generische Definitionen in einem package möglich ?

von Morin (Gast)


Lesenswert?

Wenn der Typ nicht in mehreren Entities verwendbar sein soll (z.B. in 
Portdeklarationen), dann reicht es, in deinem ursprünglichen Code "type" 
durch "subtype" zu ersetzen. VHDL-Syntax halt...

von Hans-Werner (Gast)


Lesenswert?

Ja, danke.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.