p.357
前回と同じ函数を今度はarchitectureの宣言部に記述する。reusabilityの観点からすると好ましくない。
entity test_circuit is generic( BITS: natural := 8 ); port( inp : in positive range 1 to 2**BITS-1; outp: out natural range 0 to BITS ); end entity; architecture rtl of test_circuit is -- 函数の中身を記述する。 function ceil_log2 (input: positive) return natural is variable result: natural := 0; begin while 2**result < input loop result := result + 1; end loop; return result; end function; begin outp <= ceil_log2(inp); end architecture;