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
TYPID’image(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

Eine eigene Frage? Dieser Thread ist über 16 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.