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?
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?
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).
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.
> kingt aber verdammt clever...
Danke für die Lorbeeren, aber das ist das Standardverfahren zur
Beschreibung von Speicher.
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.
m "XST User Guide" von Xilinx (xst.pdf) sind Beispiele zur Beschreibung von RAM (genauer gesagt Block-RAM). Das sollte Dir weiterhelfen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.