vector nach integer

Gast #1869025
Lesenswert?
• ▲
▼
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

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