Gast
#808349
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 ?
|
Anzeige
|
Wie einem std_logic_vector einen HEX zuweisen?
Gast
#808349
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 ?
Gast
#808378
signal s : std_logic_vector (15 downto 0); begin s <= x"c000"; end;
Gast
#808383
verdammt, war wieder einer schneller... ;) s <= 16#C000# geht aber auch!
Gast
#808386
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 ...
Gast
#808390
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!
Gast
#808394
> 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
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
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
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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|