Forum: FPGA, VHDL & Co. Typecast in VHDL


von Andi Z. (duderino65)


Lesenswert?

Guten Tag,

ich habe das Problem, dass ich ein Signal (Typ: std_logic) in ein Vector 
(Typ: std_logic_vector) wandeln muss. Wie kann ich das machen?

Hier ein Teil des Codes:

entity:
SDTI_OUT : out std_logic_vector(0 downto 0);

arch:
signal SDTI_BUF_1   : std_logic_vector(0 downto 0);
signal SDTI_BUF_2   : std_logic_vector(0 downto 0);
signal RDEN_BUF   : std_logic;
...
SDTI_OUT <= (SDTI_BUF_1 and (RDEN_BUF) or (SDTI_BUF_2 and 
not(RDEN_BUF));


Das Vector Signal stammt aus nem FIFO den ich mit IPexpress von Lattice 
hab generieren lassen. Deshalb nur (0 downto 0). Hab dann meine Signale 
einfach angepasst.

MfG

Andi

von SuperWilly (Gast)


Lesenswert?

Hi Andi,

z.B. so:
1
SDTI_OUT(0) <= (SDTI_BUF_1(0) and (RDEN_BUF) or (SDTI_BUF_2(0) and
2
not(RDEN_BUF));

Gruß,
SuperWilly

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Dumme Frage eines VHDL-Anfängers, sollte es nicht so gehen:
1
SDTI_OUT(0) <= (SDTI_BUF_1 and (RDEN_BUF) or (SDTI_BUF_2 and not(RDEN_BUF));

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


Lesenswert?

Nimm doch nur das nullte Element des Vektors, vielleicht geht das  ;-)
So etwa:
1
SDTI_OUT(0) <= (SDTI_BUF_1(0) and (RDEN_BUF) or (SDTI_BUF_2(0) and not(RDEN_BUF));

Edit: Pech, Dritter ;-)

von Andi Z. (duderino65)


Lesenswert?

mh, funktioniert.
habs gestern aber auch in etwar so gemacht. naja ok.

vielen dank :-)

MfG

andi

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lothar Miller schrieb:

> Edit: Pech, Dritter ;-)

Dafür hast du als Einziger von uns dreien geschnallt, dass die
Eingangsseite ja auch ein Vektor ist. ;-)

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


Lesenswert?

Jörg Wunsch schrieb:
> Dafür hast du als Einziger von uns dreien geschnallt, dass die
> Eingangsseite ja auch ein Vektor ist. ;-)
Danke der Ehre, aber SuperWilly hat das auch schon gesehen.
Leider hat er dabei inkompatible Tags verwendet (vermutlich [c])...

Und ausserdem haben wir alle die falsche/unnötige Klammerung nicht 
korrigiert. Sei's drum...   ;-)

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.