Forum: FPGA, VHDL & Co. Casten.Convertion.


von peter (Gast)


Lesenswert?

Hallo, guten Tag.
Ich möchte ein Integervaribale in ein std_logic_vector umwandeln.
Geht das nur über eine Convertion mit value_u wie unten oder gibt es 
eine andere Möglichkeit.

Danke.
Gruss
1
library IEEE; 
2
use IEEE.STD_LOGIC_1164.ALL; 
3
use IEEE.NUMERIC_STD.ALL; 
4
5
entity conv is
6
  port(
7
    clk    : in  std_logic;
8
    led_g  : out std_logic_vector(7 downto 0)
9
    );
10
end conv;
11
12
architecture behave of conv is
13
14
signal value_u : unsigned(7 downto 0);
15
16
begin
17
 
18
  process(clk)  
19
  variable value_i : integer range 0 to 255 := 129;
20
  
21
  begin
22
  if rising_edge(clk)  then
23
    value_u <= to_unsigned(value_i,value_u'length);
24
    led_g <= std_logic_vector(value_u);
25
  end if;
26
  end process;
27
28
end behave;

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


Lesenswert?

peter schrieb:
> Geht das nur über eine Convertion mit value_u wie unten oder gibt es
> eine andere Möglichkeit.
Du kannst die Funktion to_unsigned() und den Cast std_logic_vector() 
schachteln:
1
    led_g <= std_logic_vector(to_unsigned(value_i,value_u'length));

Du hättest dir übrigens mit diesem Konstrukt einen Takt Latency 
eingefangen:
1
  if rising_edge(clk)  then
2
    value_u <= to_unsigned(value_i,value_u'length);
3
    led_g <= std_logic_vector(value_u);
4
  end if;
Denn GENAU das value_u hier wäre der ideale (und eigentlich auch 
einzige) Fall für eine Variable...

von peter (Gast)


Lesenswert?

Jup danke.

Gruss

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.