verilog: add sv_maps iterators
[ghdl-vlg.git] / testsuite / synth / issue1157 / ent.vhdl
blob2673781f512033a4de0359ca5bbe6e3ec72ea8a1
1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
5 entity ent is
6         port (
7                 sgn : signed(7 downto 0) := x"f8";
8                 uns : unsigned(7 downto 0) := x"07";
9                 nat : natural := 15;
10                 iint : integer := -3;
12                 mul_int_int : out integer;
13                 mul_uns_uns : out unsigned(15 downto 0);
14                 mul_uns_nat : out unsigned(15 downto 0);
15                 mul_nat_uns : out unsigned(15 downto 0);
16                 mul_sgn_sgn : out signed(15 downto 0);
17                 mul_sgn_int : out signed(15 downto 0);
18                 mul_int_sgn : out signed(15 downto 0);
20                 div_int_int : out integer;
21                 div_uns_uns : out unsigned(7 downto 0);
22                 div_uns_nat : out unsigned(7 downto 0);
23                 div_nat_uns : out unsigned(7 downto 0);
24                 div_sgn_sgn : out signed(7 downto 0);
25                 div_sgn_int : out signed(7 downto 0);
26                 div_int_sgn : out signed(7 downto 0);
28                 rem_int_int : out integer;
29                 rem_uns_uns : out unsigned(7 downto 0);
30                 rem_uns_nat : out unsigned(7 downto 0);
31                 rem_nat_uns : out unsigned(7 downto 0);
32                 rem_sgn_sgn : out signed(7 downto 0);
33                 rem_sgn_int : out signed(7 downto 0);
34                 rem_int_sgn : out signed(7 downto 0);
36                 mod_int_int : out integer;
37                 mod_uns_uns : out unsigned(7 downto 0);
38                 mod_uns_nat : out unsigned(7 downto 0);
39                 mod_nat_uns : out unsigned(7 downto 0);
40                 mod_sgn_sgn : out signed(7 downto 0);
41                 mod_sgn_int : out signed(7 downto 0);
42                 mod_int_sgn : out signed(7 downto 0)
43         );
44 end;
46 architecture a of ent is
47 begin
48         mul_int_int <= iint * iint;
49         mul_uns_uns <= uns * uns;
50         mul_uns_nat <= uns * nat;
51         mul_nat_uns <= nat * uns;
52         mul_sgn_sgn <= sgn * sgn;
53         mul_sgn_int <= sgn * iint;
54         mul_int_sgn <= iint * sgn;
56         div_int_int <= iint / iint;
57         div_uns_uns <= uns / uns;
58         div_uns_nat <= uns / nat;
59         div_nat_uns <= nat / uns;
60         div_sgn_sgn <= sgn / sgn;
61         div_sgn_int <= sgn / iint;
62         div_int_sgn <= iint / sgn;
64         rem_int_int <= iint rem iint;
65         rem_uns_uns <= uns rem uns;
66         rem_uns_nat <= uns rem nat;
67         rem_nat_uns <= nat rem uns;
68         rem_sgn_sgn <= sgn rem sgn;
69         rem_sgn_int <= sgn rem iint;
70         rem_int_sgn <= iint rem sgn;
72         mod_int_int <= iint mod iint;
73         mod_uns_uns <= uns mod uns;
74         mod_uns_nat <= uns mod nat;
75         mod_nat_uns <= nat mod uns;
76         mod_sgn_sgn <= sgn mod sgn;
77         mod_sgn_int <= sgn mod iint;
78         mod_int_sgn <= iint mod sgn;
79 end;