Forum: FPGA, VHDL & Co. 2D Array mit Werten initialisieren (über Adresskonstanten)


von FPGA (Gast)


Lesenswert?

Hallo zusammen,

Problemstellung:

Ich möchte ein 2D Array initialisieren. Hierbei sollen die Elemente mit 
Werten initialisiert werden.

Machbar wäre das theoretisch so (Beispiel):
1
-- Typdefinition
2
type ByteArrayType is array (natural range <>) of std_logic_vector(7 downto 0);
3
subtype register_vector  is ByteArrayType(0 to 3);
4
5
-- Initialisierung
6
signal register_memory : register_vector := (x"00",x"FA",x"00",x"01");

Soweit so gut. Doch nun möchte ich in einem Konstanten-Package Adressen 
definieren und diese sollen bei der Initialisierung von register_memory 
verwendet werden um dem Compiler zu sagen "an Adresse X im Array soll 
der und der Wert initialisiert werden).

Wie könnte man das geschickt lösen?

Danke und Gruß
FPGA

von Valko Z. (hydravliska)


Lesenswert?

FPGA schrieb im Beitrag #4059719:
> -- Initialisierung
> signal register_memory : register_vector := (x"00",x"FA",x"00",x"01");

signal register_memory : register_vector :=
( 0 => x"00",
  1 => x"FA",
  2 => x"00",
  3 => x"01");

Die Werte dann in ein Package definieren.

von FPGA (Gast)


Lesenswert?

Valko Zapalko schrieb:
> FPGA schrieb im Beitrag #4059719:
>> -- Initialisierung
>> signal register_memory : register_vector := (x"00",x"FA",x"00",x"01");
>
> signal register_memory : register_vector :=
> ( 0 => x"00",
>   1 => x"FA",
>   2 => x"00",
>   3 => x"01");
>
> Die Werte dann in ein Package definieren.

vielen Dank!

Du meinst dann in diesem Stile? (wobei AddressA-D konstanten sind):
1
 signal register_memory : register_vector :=
2
 ( AddressA  => x"00",
3
   AddressB  => x"FA",
4
   AddressC  => x"00",
5
   AddressD  => x"01");

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.