hallo, wie kann man std-ulogic to integer umwandeln ? und std-logic to u-logic umwandeln? danke schön
Hallo Mari, STD_LOGIC_VECTOR nach INTEGER würde ich so machen: signal SREG: std_ulogic_vector (N downto 0); signal VALUE: integer range 0 to 2^(N+1); ... ... VALUE <= CONV_INTEGER(SREG); ********************************************************* STD_LOGIC_VECTOR nach STD_uLOGIC_VECTOR würde ich so machen: signal SREG_A: std_logic_vector (N downto 0); signal SREG_B: std_ulogic_vector (N downto 0); ... ... SREG_B <= To_StduLogicVector(SREG_A); ********************************************************* Gruss Stanko
vielen vielen dank.. Gruss und schönes wochenende
Ist Google kaputt? Eine Suche mit "umwandlung std_logic_vector std_ulogic_vector" bringt z.B. http://eesun.free.fr/DOC/vhdlref/refguide/language_overview/using_standard_logic/standard_logic_type_conversions.htm Aber das steht zudem in jedem VHDL-Buch (wenn nicht: wirf es weg). BTW: Ich würde std_ulogic überhaupt nicht verwenden, die numeric.std Lib nehmen und das so machen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Gast
#1303033
> Ich würde std_ulogic überhaupt nicht verwenden
Warum nicht? so erkennt man doch Designfehler falls ein Signal mehrere
Treiber hat?
> so erkennt man doch Designfehler falls ein Signal mehrere Treiber hat? Was in der Schule alles erzählt wird... :-/ Wer FPGAs beschreibt, hat gar keine Möglichkeit, mehrere Treiber auf ein Signal loszulassen. Tristate-Busse gibt es dort schon seit geraumer Zeit nicht mehr. Das Thema hatten wir schon ausführlich im Beitrag "verschiedene Teile von std_Ulogic_vector aus mehreren Processen zuweisen" Warum, das sollte man sich fragen, warum gibt es in der (genormten und empfohlenen) numeric.std Lib diese Definition:
1 | |
2 | |
Gast
#1303149
Hier gibt es eine relativ umfassende Übersicht zur VHDL-Datentypumwandlung (zum Bookmarken empfohlen): http://dz.ee.ethz.ch/support/ic/hdl/vhdlsources.en.html Duke
Gast
#1303158
@Lothar: >Warum, das sollte man sich fragen, warum gibt es in der (genormten und >empfohlenen) numeric.std Lib diese Definition: Bei den Standardbibliotheke stellen sich mir auch manche Fragen (aber aus anderem Grund): Warum gibt es die Funktionen MAX und MIN nur im Body? Warum sind die Funktionen zum Rotieren (z.B. XROL) und Shiften für std_logic_vector nur im Body und nicht öffentlich? Es gibt da so einige Sachen, die man immer mal gebrauchen könnte, die sogar schon da sind, aber so toll versteckt werden :-( Duke
ULOGIC war in den Entwürfen zur numeric_std noch wesentlich umfassender enthalten, in der Release-Version gibt es davon nur noch die Auflösungstabelle. Ich habe die numeric.std Typumwandlungen mal irgendwo grafisch aufbereitet gefunden, das Ganze überarbeitet und mir dort abgelegt: http://www.lothar-miller.de/s9y/categories/16-Numeric_Std
hallo , ich habe eine problem mit datentyp ,ich will integer in std_ulogic_vector umwandlen .ich habe das so gemacht: ........ port( d: std_ulogic_vector( 0 to 7); ......... ); ........ .......... Signal A :integer ; ..... d(0 to 7)<=conv_std_logic_vector(A,Bits); aber leider funktioniert nicht weil ich A unterschiedliche werte nehmen soll. habe ich das falsch gemacht? danke schön.
hallo , ich habe eine problem mit datentyp ,ich will integer in std_ulogic_vector umwandlen .ich habe das so gemacht: ........ port( d: std_ulogic_vector( 0 to 7); ......... ); ........ .......... Signal A :integer ; ..... d(0 to 7)<=conv_std_logic_vector(A,Bits); aber leider funktioniert nicht weil ich A unterschiedliche werte nehmen soll. habe ich das falsch gemacht? danke schön.
hallo , ich habe eine problem mit datentyp ,ich will integer in std_ulogic_vector umwandlen .ich habe das so gemacht: ........ port( d: std_ulogic_vector( 0 to 7); ......... ); ........ .......... Signal A :integer ; ..... d(0 to 7)<=conv_std_logic_vector(A,Bits); aber leider funktioniert nicht weil ich A unterschiedliche werte nehmen soll. habe ich das falsch gemacht? danke schön.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.