Forum: FPGA, VHDL & Co. VHDL Vektor mit "variablem" Index


von Lenni (Gast)


Lesenswert?

Hallo liebe Gemeinschaft,

ich suche nun schon eine ganze Weile nach einer Moeglichkeit mir einen 
Vektor mittels "type ... is array ..." zu bauen und dann die einzelnen 
Elemente zu adressieren.

Hier mal ein Beispiel was ich vor habe:
1
vector(index) = Zu_speichernder_Wert;

Ich habe mir also folgendes gebastelt:
1
type vector is array (0 to 9) of std_logic_vector(11 downto 0);
2
.
3
.
4
.
5
variable sample_vector : vector;
6
.
7
.
8
.
9
sample_vector(sample_index) := audio_sample_signal;

Wobei sample_index ein signal ist ... dass das nicht der richtige Typ 
ist hat mir ISE bereits klar gemacht, jetzt frag ich mich nur wie ich 
das sonst machen kann. Der Plan war immer an einem bestimmten Moment die 
naechste Zelle im Vektor zu beschreiben und ab einem bestimmte 
sample_index Wert wieder von vorne zu beginnen.
Wuerde mich um jede Hilfe freuen!

Besten Dank und schoene Gruesse,

Lennart

von voodoofrei (Gast)


Lesenswert?


von Lenni (Gast)


Lesenswert?

Da sucht man einen ganzen Abend und findets direkt nach dem Poast.
Hab sample_index jetzt einfach mal vom Typ natural gemacht und nun 
scheint es zu funktionieren.

Besten Dank trotzdem und verzeiht den unnoetigen Thread ...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lenni schrieb:
> Wobei sample_index ein signal ist ... dass das nicht der richtige Typ
> ist hat mir ISE bereits klar gemacht, jetzt frag ich mich nur wie ich
> das sonst machen kann.
Ein Signal oder Variable ist noch kein Typ. Erst bei der Deklaration 
wird ein Typ zugewiesen. Und zur Indizierung eines Arrays muss das ein 
Integer sein. Und wenn sample_index kein Integer ist, dann muss er 
passend konvertiert/gecastet werden.
http://www.lothar-miller.de/s9y/archives/14-Numeric_Std.html
Dann geht das problemlos...

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
Noch kein Account? Hier anmelden.