www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Indizierung bei mehrdimensionalen Arrays


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe ein Problem mit mehrdimensionalen Arrays und ihrer
Indizierung. Ich möchte ein kleines Speichermodul aufbauen, welches
eine bestimmte Anzahl von Byte in einer Tabelle speichert. Schon im
vorraus, Rams will ich nicht, da sie schon auf der Platine vorhanden
sind, auch die Daten zwischenspeichert, ich allerding eine bestimmte
Anzahl von Daten jeweils in aufeinanderfolgenden Takten benötige. hat
irgendwer schon mal mehrdimensionale Arrays gemacht. Habe es so
versucht:

type TYPE1 is Array (7 downto 0) of std_logic;
type TYPE2 is Array (128 downto 0) of TYPE1;
shared Variable Type_mem : Type2;


Hat irgendwer ne ahnung was die Synthese daraus macht, habe versucht
Type_mem mit nem byte zu beladen, kriege aber nur ne Fehlermeldung,
also kann mir irgendwer helfen.

Danke Steffen

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da zu nur Byteweise zugreifen willst, könntest du es so umformulieren:

type TYPE_MEM is array (128 downto 0) of std_logic_vector(7 downto 0);
signal ram : TYPE_MEM;

Schreibzugriff : ram(conv_integer(unsigned(writeaddress)))<= din;
Lesezugriff    : dout<=cycle_ram(conv_integer(unsigned(readaddress)));

Gruß Jörn

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jörn

werde es morgen gleich mal testen.

Gruß Steffen

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörn oder auch alle anderen

habe das array so aufgebaut, und will damit daten speichern die per usb
übertragen werden. Haut auch alles soweit hin, bis auf das auslesen mit
einer leseadresse. Muß dazu sagen das ich die convertierung nicht mit
eingebaut habe, sondern die adresse direkt als index benutze.
vielleicht liegt dort mein fehler, auf jeden fall funktioniert es in
der simulation. Bekomme allerdings keine vernünftigen daten wieder bei
der übertragung. vielleicht kann mir jemand sagen ob ich die
convertierung unbedingt benötige oder nicht, und ob jemand weiß wie die
indizierung mal funzt.

gruß steffen

Autor: Jörn Kaipf (joern)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für eine Simulation hast du laufen lassen? RTL?

Wenn du nur auf RTL Ebene simuliert hast, würde ich dir empfehlen noch
eine Post Synthese und/oder eine P&R zu machen.

Gruß Jörn

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok bin dabei, mal sehen.

danke

ich melde mich mit ergebnissen

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

habe jetzt mal eine post place and route Simulation mit Modelsim
gemacht, habe auch keine Probleme. Die Simulation funktioniert also wie
sie soll. Hab allerdings meinen Eingang und Ausgang etwas verändert, da
ich beides sonst auf einem INOUT Port habe(USB). Das Problem ist das
ich es also nicht genau sagen kann ob es im FPGA also Probleme mit der
Treiberumschaltung gibt. Glaube ich allerdings auch nicht, da ich
andere Daten (ändern des VHDL-Codes) senden kann. Habe also anscheinend
Probleme mit der Indizierung meines Arrays.



"variable fifo_adr_count:integer range 511 downto 0;

type FIFO_MEM is array(511 downto 0) of std_logic_vector(7 downto 0);
variable fifo_memo: FIFO_MEM;


GPIF_DATAL <= Fifo_Memo( fifo_adr_count);"


Hab dann noch ne Schleife die alle 4 Takte den fifo_adr_count
runterzählt.

Hat wer ne Idee ob ich noch ne Convertierung machen muß?

Gruß Steffen

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.