Wie einem std_logic_vector einen HEX zuweisen?

Gast #808394
Lesenswert?

> Ich würde mal kühn behaupten, daß Du in VHDL den Bus voll ausscreiben
> mußt:
> "1100 0000 0000 0000" -- Leerzeichen aber weglassen, dient hier nur der
>                       -- Übersichtlichkeit!

Nein, man muss nicht den Bus auschreiben. Was sagt denn Modelsim?
Gast #808465
Lesenswert?

Mist! In der Portdeklaration war ein "downto" nicht passend. Gemeckert 
hat er aber unten bei der zuweisung, daß ihm die Länge nicht passt. Habe 
es nur zufällig gesehen. Lässt man die Deklaration unten weg, findet er 
den Portfehler. Offenbar ist ein solcher Fehler für ModelSim 
"anzeigenswerter" als die eigentlich Ursache.

Scheiss M****or.
Gast #5620492
Lesenswert?

Gast schrieb:
> Ja, die erste ist mir auch bekannt, aber die will er nicht. Die zweite
> habe ich nun probiert. Geht auch nicht. Ist wohl was anderes. Mal suchen
> ...

16#xx# isse auch ein numerical literal, das man nur für integer, real 
oder physical verwenden kann, während
X"xx" ein string literal ist, was für strings aka eindimensionale 
vectoren wie std_logic_vector benutzt wird.
Gast #5620586
Lesenswert?

Bernd G. schrieb:
> Ich würde mal kühn behaupten, daß Du in VHDL den Bus voll ausscreiben
> mußt:
> "1100 0000 0000 0000" -- Leerzeichen aber weglassen, dient hier nur der
>                       -- Übersichtlichkeit!

signal zahl: integer := 2#1100_0000_0000_0000#;
signal vec: std_logic_vector(15 downto 0) := b"1100_0000_0000_0000";

sollte auch gehen, siehe 
http://www.vhdl.renerta.com/mobile/source/vhd00041.htm


signal hzahl: integer := 16#C000#;
signal hvec: std_logic_vector(15 downto 0) := x"C000";

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