Gast
#387477
Hallo ihr, wenn ich eine Hexadezimalzahl in VHDL einem Signal zuweisen will dann mache ich ja... hex <= x"FF"; wie funktioniert das bei einer Dezimalzahl, z.B. 99??? Danke
|
Anzeige
|
Kürzel für Dezimalzahl in VHDL
Gast
#387477
Hallo ihr, wenn ich eine Hexadezimalzahl in VHDL einem Signal zuweisen will dann mache ich ja... hex <= x"FF"; wie funktioniert das bei einer Dezimalzahl, z.B. 99??? Danke
Gast
#387478
sorry, natürlich hex(255 downto 0) <= x"FF";
Gast
#387479
direkt: garnicht, weil eine Dezimalzahl keine bestimmte Zahl an bits hat. Du musst sie konvertieren, z.b. wenn du eine 32bit Variable (signal asd: std_logic_vector(31 downto 0)) hast: asd <= std_logic_vector(to_unsigned(99,32)); dabei gibt der zweite Parameter von to_unsigned an, wieviel Bits das Ziel hat. Wenn das ganze im signed Format abgespeichert werden soll, dann to_signed statt to_unsigned. Alles in der Bibliothek ieee.numeric_std enthalten.
Gast
#387480
Hallo, ich gehe mal davon aus, dass Dein Signal vom Typ std_logic_vector ist, dann könntest Du z.B. schreiben: signal my_signal : std_logic_vector(7 downto 0); constant DezimalZahl : integer := 123; -- Beispiel .... my_signal <= conv_std_logic_vector(DezimalZahl, my_signal'LENGTH);
Gast
#387481
Dankeschön
Gast
#387482
Ach, und was ich wenn ich sowas hab...
test_signal(1399 downto 0) <= ( 15, -- Dezimalzahl 1
99, -- Dezimalzahl 2
x"AB", -- Kommentar
17, -- Dezimalzahl 3
usw.
25); -- Dezimalzahl n
Wie setzt man sowas am besten um?
Gast
#387483
naja, je nachdem wie lange deine einzelnen Dezimalzahlen sind. Könntest zB machen: test_signal(1399 downto 0) <= std_logic_vector(to_unsigned(15,32)) & std_logic_vector(to_unsigned(99,32)) & x"AB" & std_logic_vector(to_unsigned(17,32)) & ... & std_logic_vector(to_unsigned(25,32));
Gast
#387484
Das werde ich mal probieren. Nun noch eine andere Frage dazu. Das sollte mal auf einem CPLD laufen. Brauch das mehr Platz als wenn ich schreiben würde... test_signal(1399 downto 0) <= "00001111" & "01100011" & x"AB" &... Nach meiner Einschätzung ja nicht. Lieg ich da falsch? Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|