Gast
#1869025
Hallo Allerseits.
Folgendee Funktion soll einen std_logic_vector nach
integer umrechnen:
----------------------------------------------------------------
function int_conv( VECT: std_logic_vector; SIZE: integer )
return integer is
variable RESULT: integer range ((2**size)-1) downto 0 ;
begin
RESULT := 0;
for i in 0 to (SIZE-1) loop
if( VECT(i) = '1' ) then
RESULT := RESULT + 2**i;
end if;
end loop;
return RESULT;
end int_conv;
----------------------------------------------------------------
Angenommen ich habe einen vektor"00001000" dann bekomme ich 6
statt 8:
00001000 -- vector
76543210 --i schleifenzähler
Dann rechne ich im 4. Schleifendurchgang : result:=0+2*3=6.
Irgendwie bringe ich hier was durcheinander.Die Funktion sollte
eigentlich funktionieren, da sie aus einer Bibliothek eines bekannten
FPGA Hersteller stammt.
Danke für die Unterstützung
Gruß
Christian