Forum: FPGA, VHDL & Co. Binär in Dezimalzahl


von alex (Gast)


Lesenswert?

Hey,

ich habe einen einen std_logic_vector definiert:


1
eingang: in std_logic_vector(6 downto 0);

diesen will ich umwandeln in eine integerzahl.
1
variable i:integer;


ich wollte das einfach so machen
1
 i:=(eingang(0)*1)+(eingang(1)*2)+(eingang(1)*4)+...+(eingang(6)*64));

beim kompilieren meckert er wegen dem  * Operator?

wieso kann ich sie nicht einfach multiplizieren?

beste grüße und vielen lieben dank!

von berndl (Gast)


Lesenswert?

vlt. mal nach 'library' und/oder 'numeric_std' googlen?

von T. F. (tf2206)


Lesenswert?

Hallo Alex,

Denke es geht nicht weil du nicht das notwendige Package benutzt. Welche 
Package hast du in Benutzung?

Du kannst es allerdings auch mit folgendem Befehl machen:
1
 
2
i <= to_integer(unsigned(Eingang));

Wenn du diesen Befehl verwenden möchtest musst du folgendes Package 
benutzen
1
use ieee.numeric_std.all;

Grüße TF

P.S. Schau mal auf folgender Hp. nach 
http://www.lothar-miller.de/s9y/archives/14-Numeric_Std.html

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

alex schrieb:
> ich habe einen einen std_logic_vector definiert:
> eingang: in std_logic_vector(6 downto 0);
> diesen will ich umwandeln in eine integerzahl.
> variable i:integer;
Du solltest dich mal zum Thema "Darstellung von Zahlen im Binärformat" 
schlau machen...

Eine Zahl wird im FPGA genau gleich implementiert, ob du sie jetzt 
als Vektor oder als Integer hinschreibst. Nur deine eigene auf das 
Zehnersystem basierte Betrachtungsweise hat damit Probleme. Für das FPGA 
ist eine 9 immer "1001", ganz egal, wie du das siehst. Und deshalb 
ist diese "Umrechnung" in der numeric_std nur eine andere 
Interpretation des selben Vektors mit dem selben Bitmuster.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.