Ich kriege die Kriese. Ich will einem std_logic_vector (15 downto 0) den Wert C000 in Hex zuweisen und es geht nicht (mehr). Modelsim meckert. Wie lautet die korrekte Syntax ?
signal s : std_logic_vector (15 downto 0); begin s <= x"c000"; end;
verdammt, war wieder einer schneller... ;) s <= 16#C000# geht aber auch!
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 ...
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!
> 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?
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 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.
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";
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.