Übergabe von Arrays

Gast #251176
Lesenswert?
• ▲
▼
Puh, also diese Arrays rauben mir noch den letzten nerv :-(
Also ich habe inzwischen mein Array aud die dimension:

type data_array is array (1 to 255, 1 to 99) of bit

reduziert.

So, dann habe ich zwei variablen

variable data_x: data_array;
variable data_y: data_array;

erstellt.
Nun kommt aber mein problem. Wie kann ich diese Datan zwischen meinen
componenten am besten hin und herschieben. Ich möchte ja nicht für jede
Komponente wieder diese grosse Menge an Speicher verbrauchen.
Nun habe ich gedacht das ich des mit shared variables mache, aber da
habe ich hier im Forum eher nicht so positive Meinungen lesen können.
Ist das für mein Fall trotzdem die richtige vergehensweise? Wie kann
ich eine solche shared variable deklarieren und wo?
Gast #251177
Lesenswert?
• ▲
▼
Vielleicht konkretisier ich meine frage nochmal.
Ich schreibe nun z.B. im Toplevel
shared variable data_x: data_array;
shared variable data_y: data_array;
Wenn ich dort dann Daten im Array ändere, und in einer anderen
component auf die daten zugreifen möchte, schreibe ich dort auch nur
shared variable data_x: data_array;
shared variable data_y: data_array;
und kann dann dort auch drauf zugreifen?
Wenn es so wär, dann kann man damit ja richtig viel machen. Aber da ist
bestimm ein Harken bei oder?
Gast #251178
Lesenswert?
• ▲
▼
Wieso kapselst Du die zwei Arrays nicht als eigenes Modul
(entity,architecture)?

Dann bindest Du das als Komponente ein. Du brauchts natürlich noch die
nötigen Schnittstellen-Signale, um lesend und schreibend darauf
zuzugreifen (Lese-, Schreibsignal, Addresse, Daten-Ein-/Ausgang).
Gast #251179
Lesenswert?
• ▲
▼
Ups... na sowas habe ich noch nie gemacht... kingt aber verdammt
clever... das muss ich mal ausprobieren. Dann übergebe ich einfach nur
die werte für zeile und reihe und verwende das somit als addresse ? Das
probier ich mal aus. Super idee... danke dir. Ich werd berichten ob es
geklappt hat.
Gast #251182
Lesenswert?
• ▲
▼
Wie ist es denn stilistisch am elegantesten? mit if-schleifen den status
von oe we etc abfragen? oder eher mit na case anweisung? oder hast du
irgendwo nen link wo ich ein beispiel finden kann... Muss in dem fall
das rad ja niht 2 mal erfinden.
Gast #251185
Lesenswert?
• ▲
▼
Och nö... ich bekomme gleich die kriese...
Sag mir doch bitte mal einer warum er die zuweisung nicht
akzeptiert...

data_x(1 to 256, addresse_z) <= daten_x_in(1 to 256);

Wobei:
type data_array is array (1 to 256, 1 to 64) of bit;
und addresse_z nen Integerwert ist.
ach ja und daten_:x_in ist nen std_logic_vector(1 to 256)

Die fehlermeldung lautet: parse error, unexpected Comma... aber das ist
doch nen array, da muss ich doch zeile und Spalte angeben.

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