Casten.Convertion.

Gast #3661191
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;
Moderator (Firma: Titel) Persönliche Seite #3661329
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...

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