integer to string

Gast #1503247
Lesenswert?

hi Leute,
vielleicht hat ja jemand einen guten Rat für mich. Also, folgendes 
Problem:

Habe ein Integer-Signal

signal test : integer range 0 to 31;

Nun möchte ich aus diesem Integer ein entsprechendes String-Signal 
bauen.

z.B.
test <= 28;

Das entsprechende string-signal soll dann so aussehen: "28"

Wie bekomme ich das hin ?

vielen dank für eure hilfe :-)
nicole
Gast #1503302
Lesenswert?

die ausgabe in einem report ist mir klar:

assert false report "string representation is " integer'image(test) 
severity note;


aber wie mache ich das über ein Signal des Typs string, also
z.B.: signal ls_str : string(1 to ?) ?

danke,
nicole
Moderator (Firma: Titel) Persönliche Seite #1503333
Lesenswert?

Mit
1
TYPIDimage(expr)
also z.B.
1
signal str : string(1 to 100);
2
str <= integer'image(wert);
erhältst du einen String von wert.

Hier eine praktische Anwendung:
1
LIBRARY ieee;
2
:
3
use std.textio.all;
4
:
5
  tb : process
6
  variable l : line;
7
  begin
8
    for i in -128 to 127 loop
9
      write(l, "i: " & integer'image( i) & ht);
10
      writeline(output, l);
11
    end loop;
12
  end process;
13
:

>> signal ls_str : string(1 to ?)
Numm einfach den Datentyp line, dann brauchst du keine Länge ;-)
http://www.velocityreviews.com/forums/t21647-string-declaration.html
Gast #1503342
Lesenswert?

hi lothar,

danke für deine antwort. Aber welche Länge müsste ich denn verwenden, 
wenn
ich sie tatsächlich benötige ?

Wenn ich wie in deinem Beispiel den Integer-Wert 100 als String "100" 
ausgeben möchte, müssten es dann nicht drei Zeichen sein, also (1 to 3) 
?
Das scheint aber nicht zu funktionieren.

lg,
nicole
Gast #1503793
Lesenswert?

>Ok, da fehlt was, du brauchst einen range für den String:
>str(integer'image(wert)'range) <= integer'image(wert);
>write(OUTPUT, str);

Lothar, danke für deine Hilfe. Wie wird denn das Signal "str" denn dann 
deklariert ?

So vielleicht ?

signal str : string(integer'image(wert)'range);

lg,
nicole

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren