Datentyp umwandeln

#1302854
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
Moderator (Firma: Titel) Persönliche Seite #1303017
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
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
:
5
signal vect: std_logic_vector (N downto 0);
6
signal int:  integer range 0 to 2^(N+1)-1;
7
:
8
:
9
vect <= std_logic_vector(to_unsigend(int,vect'length));
10
-- bzw.
11
int  <= to_integer(unsigned(vect));
Moderator (Firma: Titel) Persönliche Seite #1303057
> 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
  type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;
2
  type SIGNED is array (NATURAL range <>) of STD_LOGIC;
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
Moderator (Firma: Titel) Persönliche Seite #1303183
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
(Firma: ftf) #1318309
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.
OP #1318314
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.
OP #1318318
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.