Forum: FPGA, VHDL & Co. VHDL: Typkonvertierung Integer<->irgendwas mit Tristate


von Thomas Faust (Gast)


Lesenswert?

Ich hätte bei meinem CPLD gerne Tristate-Ausgänge, da es sich den
Adressbus zum SRAM mit einem µC teilen muss (bei µC-Zugriff soll das
CPLD über einen Reset-Pin gesteuert auf High-Impedance/Z gehen).
Ich hatte das Prigramm für den CPLd zuerst unter der Benützung von
eingang : in unsigned (7 downto 0);
etc. geschrieben, jedoch bringe ich es nicht fertig, diesen Variablen
einen Z-Zustend zuzuweisen, obwohl sie ja prinzipiell als
STD_(U)LOGIC-Array definiert sind. Wie geht das, bzw alternativ: Kann
ich auch irgendwie von integern zu std_logic_vector konvertieren und
halt dann dort auf Z gehen?
Ich hab schon ein bisschen im Internet gescuht, aber alle Beispiele,
die ich fand, haben (un)signed stets bloß Zahlenwerte zugewiesen.

von toddoy (Gast)


Lesenswert?

einem unsigned wert einen Z Wert zuzuweisen geht nicht, weil nicht
definiert.

Um nur ein paar Beispiele zu nennen alles in std_logic_arith.all
definiert, da findest du noch einige andere Funktionen als auch in
std_logic_unsigned.all

Druck dir am besten die Interessierenden Seiten aus der Datei aus,
sonst hast du gar keinen Überblick was alles geht. Vergiss nicht Type
Cast gibt es auch noch


function CONV_STD_LOGIC_VECTOR(ARG: UNSIGNED; SIZE: INTEGER)
function CONV_STD_LOGIC_VECTOR(ARG: INTEGER; SIZE: INTEGER)
function CONV_STD_LOGIC_VECTOR [STD_ULOGIC, INTEGER return
STD_LOGIC_VECTOR]
CONV_STD_LOGIC_VECTOR [INTEGER, INTEGER return STD_LOGIC_VECTOR]
function CONV_STD_LOGIC_VECTOR(ARG: UNSIGNED; SIZE: INTEGER)

von Thomas Faust (Gast)


Lesenswert?

Vielen Dank, nachdem ich jetzt auch noch nebenbei von Lattice ISE mit
Synplify auf Xilinx Webpack umgestiegen bin (Reichelt hat keine
preiswerten CPLDs mit >32 IOs von Lattice) scheint alles gut zu
klappen...

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.