VHDL Generate

Gast #4177943
Lesenswert?

Hallo zusammen,
ich bin VHDL Anfänger daher die Frage.
Ich habe einen Array von 128 Bytes.

in C kann man mit einer for Schleife das Feld mit einem Byte füllen:
1
for(i=0; i<128; i++)
2
 Array[i] = data;
wie geht das in VHDL?
Geht das irgendwie hier auch mit generate? (Bei mir gibt es Fehler)
Oder muss ich doch alles selber schreiben
Array(0) <= data;
Array(1) <= data;
..
Array(127) <= data;?

Vielen Dank für die Hilfe
Gast #4178027
Lesenswert?

type t_byte is std_logic_vector(7 downto 0);
type t_byte_array is array(127 downto 0) of t_byte;


signal byte_array : t_byte_array := (others => data);

Kommt darauf wofür und wann man das array gefüllt haben möchte.
#4178739
Lesenswert?

Nur am Rande: Es gibt natürlich auch normale for-Schleifen in VHDL, mit 
der man das Array wie in C füllen kann, das hat noch nichts mit 
for-generate zu tun. Diese Schleifen lassen sich natürlich auch in HW 
umsetzen, verhindern durch die Parallelität aller Zuweisungen aber, dass 
im FPGA ein echtes RAM benutzt wird *) Stattdessen wird für jedes Bit 
eine Logikzelle geopfert... Wenn der Code nur in der Testbench laufen 
muss, kann einem das aber völlig egal sein.

*) Da gibts ohnehin noch mehr DOs and DONTs dazu...
Gast #4181830
Lesenswert?

Dumme Frage: Hat der TO überhaupt was von Synthese gesagt? Könnte sich 
ja auch um eine Testbench handeln, oder?

Und die machen ja eh' den größten Teil eines Designs aus, oder?

... nein, bei mir auch nicht.

Grüße,
 Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren