diff options
Diffstat (limited to 'testsuite/synth/func01/func07.vhdl')
-rw-r--r-- | testsuite/synth/func01/func07.vhdl | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/testsuite/synth/func01/func07.vhdl b/testsuite/synth/func01/func07.vhdl new file mode 100644 index 000000000..7615ad71f --- /dev/null +++ b/testsuite/synth/func01/func07.vhdl @@ -0,0 +1,22 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity func07 is + port (v : std_ulogic_vector (15 downto 8); + r : out std_ulogic_vector (7 downto 0)); +end func07; + +architecture behav of func07 is + function cnt (val: std_ulogic_vector(7 downto 0)) return std_ulogic_vector is + variable ret: unsigned(3 downto 0) := (others => '0'); + begin + for i in val'range loop + ret := ret + ("000" & val(i)); + end loop; + + return std_ulogic_vector(resize(ret, val'length)); + end; +begin + r <= cnt (v); +end behav; |