mikrocontroller.net

Forum: FPGA, VHDL & Co. Datentyp umwandeln


Autor: Mari Gross (mariaa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

wie kann man std-ulogic to  integer umwandeln ? und std-logic to 
u-logic umwandeln?
danke schön

Autor: Stanko T. (newie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Mari Gross (mariaa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen vielen dank..
Gruss und schönes wochenende

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist Google kaputt?
Eine Suche mit "umwandlung std_logic_vector std_ulogic_vector" bringt 
z.B.
http://eesun.free.fr/DOC/vhdlref/refguide/language...

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:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
:
signal vect: std_logic_vector (N downto 0);
signal int:  integer range 0 to 2^(N+1)-1;
:
:
vect <= std_logic_vector(to_unsigend(int,vect'length));
-- bzw.
int  <= to_integer(unsigned(vect));

Autor: Josh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich würde std_ulogic überhaupt nicht verwenden
Warum nicht? so erkennt man doch Designfehler falls ein Signal mehrere 
Treiber hat?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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:
  type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;
  type SIGNED is array (NATURAL range <>) of STD_LOGIC;

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Imili Haha (Firma: ftf) (imi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Mari Gross (mariaa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Mari Gross (mariaa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.