verilog: add sv_maps iterators
[ghdl-vlg.git] / testsuite / synth / synth58 / function_test.vhdl
bloba612fea100ff44e5c709bcb7bdfe8e214a71d114
1 library ieee;
2   use ieee.std_logic_1164.all;
4 entity function_test is
5   generic (
6     g : std_logic := '1'
7   );
8   port (
9     i : in std_logic_vector(7 downto 0);
10     o : out std_logic_vector(7 downto 0)
11   );
12 end function_test;
14 architecture rtl of function_test is
16   function assign_value(value : in std_logic_vector(7 downto 0);
17                         invert : in std_logic)
18                         return std_logic_vector is
19     variable slv_out : std_logic_vector(7 downto 0);
20   begin
21     if invert = '0' then
22       slv_out := value;
23     elsif invert = '1' then
24       slv_out := not value;
25     end if;
26     return slv_out;
27   end;
29 begin
30   o <= assign_value(i, g);
31 end rtl;