dynamische Datenstruktur in VHDL

Gast #606410
Ich kann mir die Antwort schon fast selbst geben, trozdem: Gibt es in 
VHDL eine Möglichkeit eine dynamische Datenstruktur aufzubauen? Also 
sowas wie eine verkettete Liste?
Ich muss ein paar Daten vorausberechnen, auf die ich hinterher zugreifen 
muss. Dabei ist die Anzahl der Daten per Register einstellbar
Gast
Hallo Peter,

in VHDL kannst Du (fast) alles machen, meine 1. Frage ist:
soll das synthesefähig sein oder nicht?

2. warum muss es eine verkettete Liste sein? (Ich nehme jetzt mal
an, die Datenblöcke sind unterschiedlich groß)
also wenns unbedingt so eine Liste sein soll, dann baust
Du Dir einfach eine entspr. RAM-Struktur.
z.B. 1. Byte=Anzahl Blöcke, dann jeweils pro Block 1.Byte=Block-Nr., 
2.Byte = Blocklänge, damit hast Du eine einfache Liste.

Ist es das, was Du suchst?
Gast
Hi Marc! Danke für deine Antwort.
Zu 1.: ja, der Code soll synthetisierbar sein.
Zu 2.: so richtig habe ich das nicht verstanden.
Ich erkläre mein Problem mal vielleicht etwas ausführlicher.
Per mathematischer Funktion werden Stützstellen einer Funktion 
berechnet. Die Anzahl der Stützstellen hängt von verschiedenen 
Parametern ab, die über Register eingestellt werden.
> Zu 1.: ja, der Code soll synthetisierbar sein.

Nein, dann geht es nicht, schließlich muss VHDL in Hardware umgesetzt 
werden und man kann (leider noch ) nicht Transistoren dynamisch 
erzeugen.

Du muss mit der maximalen Anzahl von Stützstellen rechnen, bzw. den Kode 
für den größten Fall dimensionieren.
Gast
Hallo Peter,

hmm, mal angenommen so eine Stützstelle lässt sich mit Hilfe eines
Records beschreiben. Und die Anzahl dieser Records ist erstmal
nicht bekannt. Dann kann man doch einfach eine Funktion schreiben,
die so einen Record in eine RAM-Adresse X schreiben kann.
In dem Record gibt es ein Flag z.B. 'Last_Record'. Das setzt Du
auf 1 beim Schreiben des letzten Datums.
Der Ablauf wäre nun wie folgt:
1) Math-Funktion liefert Datum (Record)
2) Record im RAM ablegen, beim letzten das Flag setzen
3) Adresse inkrementieren
4) Loop solange wiederholen bis alle Datensätze abgelegt wurden.

Die RAMs müssen natürlich - da hat Klaus Recht - in der max. möglichen
Anzahl verfügbar sein. Das ist aber bei einem PC auch nicht anders -
OK da gibts noch andere Speichermöglichkeiten - aber wenn das RAM
voll ist dann ist eben Schluss.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.