verilog: add sv_maps iterators
[ghdl-vlg.git] / testsuite / synth / slice01 / slice04.vhdl
blob42127d7f923242f01325b246517dda74b611d243
1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
5 entity slice04 is
6   port (clk : std_logic;
7         dat : std_logic_vector (7 downto 0);
8         mask : std_logic_vector (1 downto 0);
9         res : out std_logic_vector (7 downto 0));
10 end slice04;
12 architecture behav of slice04 is
13   signal z : natural range 0 to 0;
14   signal mem : std_logic_vector (7 downto 0);
15 begin
16   z <= to_integer(unsigned(mask));
18   process(clk)
19     variable hi, lo : natural;
20   begin
21     if rising_edge (clk) then
22       mem (z*3 + 7 downto z*3) <= dat;
23     end if;
24   end process;
26   res <= mem;
27 end behav;