diff options
Diffstat (limited to 'testsuite/synth/func01/func04.vhdl')
-rw-r--r-- | testsuite/synth/func01/func04.vhdl | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/testsuite/synth/func01/func04.vhdl b/testsuite/synth/func01/func04.vhdl new file mode 100644 index 000000000..a7c5f2014 --- /dev/null +++ b/testsuite/synth/func01/func04.vhdl @@ -0,0 +1,21 @@ +library ieee; +use ieee.std_logic_1164.all; + +entity func04 is + port (a : std_logic_vector (7 downto 0); + b : std_logic_vector (7 downto 0); + r : out std_logic_vector (7 downto 0)); +end func04; + +architecture behav of func04 is + function gen_mask (len : natural) return std_logic_vector is + variable res : std_logic_vector (len - 1 downto 0); + begin + res := (0 | 1 => '0', others => '1'); + return res; + end gen_mask; + constant mask : std_logic_vector(7 downto 0) := not gen_mask (8); +begin + r <= (a and mask) or (b and gen_mask (8)); +end behav; + |