std_logic_vectorからintegerへ型変換する函数を作る / process内に
std_logic_vector
からinteger
へ型変換する函数をprocess内に記述する。
pp.357-358
library ieee; use ieee.std_logic_1164.all; entity test_circuit is generic( WIDTH: natural := 8 ); port( clk: in std_logic; inp: in std_logic_vector(WIDTH-1 downto 0); outp: out integer range 0 to 2**WIDTH-1 ); end entity; architecture rtl of test_circuit is begin process -- 函数を記述する。 function slv_to_integer (slv: std_logic_vector) return integer is variable result: integer range 0 to 2**slv'length-1 := 0; begin for i in slv'range loop result := result * 2; if slv(i)='1' then result := result + 1; end if; end loop; return result; end function; begin wait until clk; outp <= slv_to_integer(inp); end process; end architecture;