Forum: FPGA, VHDL & Co. 2 D Array Initialisieren


von Max (Gast)


Lesenswert?

Hallo,

ich habe da mal eine Frage wie schaffe ich es ein 2 D Array zu
initialisieren? Ich habe bisher nur 1D Arrays initialisiert in der
Form:

type Feld is array (0 to 29) of std_logic_vector (15 downto 0)
signal Wort : Feld :=(  "0000000000000000",
    "0000000000000000",             "0000000000000000",

Ich hätte nun gern ein 2D Array in der Form wie oben (ich würde gerne
wieder die Werte so initialiseren können). Wie bekomme ich es nun in
VHDL hin das ich ein 2D Array der Form 2 Spalten mit jeweils Wort zu
bekommen, so dass ich einen Aufruf z.B. Wort(1)(10) machen kann.

Grüße

Max

von Axel (Gast)


Lesenswert?

Suchst du etwas in der Form...

TYPE feld IS ARRAY (1 TO 10, 1 TO 10) OF integer; -- zweidimensional

???
Dann schau mal
http://www.nt-nv.fh-koeln.de/Labor/VhdlEasy/Kap3/k321.html#ConArrDef
dort nach, da ist das etwas genauer erklärt.

Oder hilft das noch nicht weiter?

Axel

von Max (Gast)


Lesenswert?

Doch das hilft mir schon einen Schritt. Aber wie kann ich die einzelnen
Elemente jetzt initialisieren?

type feld is array (0 to 29, 0 to 29) of std_logic_vector (7 downto
0);

für eindimensionale Arrays geht es ja so:

signal Koeff : feld := ("00000000",

Wie kann ich das gleiche für zweidimensionale Arrays machen?

Max

von Max (Gast)


Lesenswert?

Hallo ich bins nochmal...

hat keiner eine Idee? Ich habe schon probiert ob es so geht:

type feld is array (0 to 29) of std_logic_vector (7 downto 0);
type feld1 is array (0 to 1) of feld;

signal Koeff : feld := ("000...

aber dann steht doch in beiden Spalten das selbe?

Ich hoffe jemand bringt mir noch den Lichtblick

Max

von Stefan (Gast)


Lesenswert?

vielleicht in etwa so, für ein 8x8-bit-array?
also in modelsim funktioniert das:

if(reset = '1') then
   8x8bit_array <= (others => (others => '0'));
end if;

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> vielleicht in etwa so, für ein 8x8-bit-array?
Nach über 3 Jahren????   :-o

BTW
Es geht auch (abhängig vom Synthesetool und der Plattform) bei der 
Signaldefinition:
signal Koeff : feld := (others => (others => '0'));

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.