Forum: FPGA, VHDL & Co. VHDL: Array mit verschiedenen Datentypen


von Alexander (Gast)


Lesenswert?

Hallo ich habe folgendes Problem:

ich möchte eine Tabelle schreiben die die Ausgangssignale eines 
Automaten speichert. Da die Ausgangssignale verschiedene Datentypen 
haben(Teilweise Aufzählungstypen, teilweise std_logic oder 
std_logic_vector) fällt mir das etwas schwierig, habe schon rumgegoogelt 
und probiert, mit records rumprobiert aber bekomme es grade nicht hin. 
Vielleicht könnt ihr mir ja weiterhelfen. Eigentlich sollte es aber 
nicht so schwierig sein.

Frage 1:
Zunächst mal, wie erstelle ich denn einen Datentyp der verschiedene 
andere Datentypen enthält? Also quasi ein 1-dimensionales Array mit 
verschiedenen Datentypen a la:

Typen die ich davor definiert habe:
type auzaehlungstyp1 is (a,b,c)
type auzaehlungstyp2 is (x,y,z)

neuer_Datentyp soll so aufgebaut sein:
(aufzählungstyp1, auzaehlungstyp2, std_logic, std_logic_vector(…))

sodass man sowas hier machen kann:
variable out1,out2,out3: neuer_Datentyp;

out1  :=(a,x,'1', "10101")
out2 :=(a,z,'1', "10101")
out3 :=(c,x,'1', "10101")

Das würde mir schon viel helfen.

Frage 2:
Dann möchte ich ne 2D-Tabelle/Array machen die sich aus Zuständen 
(state_type) und neuer_Datentyp zusammensetzt.

type state_type(state1, state2, state3)

Einträge der Tabelle würden also z.Bsp.so aussehen:
state1 out1
state2 out2
state3 out3

bzw:
state1 (a,x,'1', "10101")
state2 (a,z,'1', "10101")
state3 (c,x,'1', "10101")

Gibt's da ne Möglichkeit das übersichtlich hinzubekommen?
Zur Not bekomme ich das was ich machen muss auch ohne Tabelle hin, von 
dem her Tipps wie ich das ohne Tabelle/Array machen kann brauche ich 
dann keine, will nur wissen ob das geht.

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


Lesenswert?

Alexander schrieb:
> Also quasi ein 1-dimensionales Array mit verschiedenen Datentypen a la:
Such mal nach "record"...
http://vhdl.renerta.com/mobile/source/vhd00055.htm

> sodass man sowas hier machen kann:
> variable out1,out2,out3: neuer_Datentyp;
Ein Tipp: vergiss und meide Variablen am Anfang deiner VHDL-Karriere. 
Sie sind nicht das, was du von C her kennst. Und auch der Rest tut nicht 
das, was du von C her kennst...

von Vancouver (Gast)


Lesenswert?

Alexander schrieb:
> Gibt's da ne Möglichkeit das übersichtlich hinzubekommen?

Kommt drauf an, was du unter übersichtlich verstehst. Es gibt in VHDL 
keine Tabellen wie in Python. Du kannst einen neuen Record-typ 
definieren, der jeweils ein Field für state_type und neuer_Datentyp 
enthält und davon dann viele in ein Array packen.

Und ich hoffe mal ganz stark, dass wir hier von einer Testbench oder 
einem reinen Simulationsmodell reden und nicht von einem 
Hardwaredesign...

von Markus F. (mfro)


Lesenswert?

Du suchst nicht zufällig nach dem hier: 
https://www.gaisler.com/doc/vhdl2proc.pdf ?

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.