mikrocontroller.net

Forum: FPGA, VHDL & Co. Übergabe von Arrays


Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Bjarne Streusand (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bjarne Streusand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> kingt aber verdammt clever...

Danke für die Lorbeeren, aber das ist das Standardverfahren zur
Beschreibung von Speicher.

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na egal... dann hast du es dir gut gemerkt :-)

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bjarne Streusand (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m "XST User Guide" von Xilinx (xst.pdf) sind Beispiele zur
Beschreibung
von RAM (genauer gesagt Block-RAM).

Das sollte Dir weiterhelfen.

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.