diff --git a/helpers.vhdl b/helpers.vhdl index f0bce95..1e0f781 100644 --- a/helpers.vhdl +++ b/helpers.vhdl @@ -29,59 +29,47 @@ end package helpers; package body helpers is function fls_32 (val: std_ulogic_vector(31 downto 0)) return integer is - variable ret: integer; begin - ret := 32; for i in val'range loop if val(i) = '1' then - ret := 31 - i; - exit; + return 31 - i; end if; end loop; - return ret; + return 32; end; function ffs_32 (val: std_ulogic_vector(31 downto 0)) return integer is - variable ret: integer; begin - ret := 32; for i in val'reverse_range loop if val(i) = '1' then - ret := i; - exit; + return i; end if; end loop; - return ret; + return 32; end; function fls_64 (val: std_ulogic_vector(63 downto 0)) return integer is - variable ret: integer; begin - ret := 64; for i in val'range loop if val(i) = '1' then - ret := 63 - i; - exit; + return 63 - i; end if; end loop; - return ret; + return 64; end; function ffs_64 (val: std_ulogic_vector(63 downto 0)) return integer is - variable ret: integer; begin - ret := 64; for i in val'reverse_range loop if val(i) = '1' then - ret := i; - exit; + return i; end if; end loop; - return ret; + return 64; end; function popcnt8(val: std_ulogic_vector(7 downto 0)) return std_ulogic_vector is