aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/func01/func04.vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/synth/func01/func04.vhdl')
-rw-r--r--testsuite/synth/func01/func04.vhdl21
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;
+