Skip to content

Commit c761b12

Browse files
committed
Issue#1512: Added tests for new rule to enforce alignment of assignment operators within variable declarations.
1 parent 330cc57 commit c761b12

8 files changed

+1012
-0
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
architecture rtl of fifo is
2+
3+
begin
4+
5+
process
6+
variable v_my_rec : t_my_rec :=
7+
(
8+
signal_one => '0',
9+
signal_onetwo => '0',
10+
11+
signal_onetwothree => '0',
12+
signal_onetwothreefour => '0',
13+
-- Comment
14+
signal_onetwothreefourfive => '0',
15+
signal_onetwothreefourfivesix => '0'
16+
);
17+
18+
variable v_default_values : t_address_en := (
19+
C_ADDRESS_CONTROL_A => false,
20+
C_ADDRESS_DATA_A => true,
21+
others => false
22+
23+
C_ADDRESS_CONTROL_B => false,
24+
C_ADDRESS_DATA_B => true,
25+
others => false
26+
-- Comment
27+
C_ADDRESS_CONTROL_C => false,
28+
C_ADDRESS_DATA_C => true,
29+
others => false
30+
);
31+
32+
variable v_my_rec : t_my_rec :=
33+
(
34+
signal_one => '0',
35+
signal_onetwo => '0',
36+
37+
signal_onetwothree => '0',
38+
signal_onetwothreefour => '0',
39+
-- Comment
40+
signal_onetwothreefourfive => '0',
41+
signal_onetwothreefourfivesix => '0'
42+
);
43+
44+
variable v_default_values : t_address_en := (
45+
C_ADDRESS_CONTROL_A => false,
46+
C_ADDRESS_DATA_A => true,
47+
others => false
48+
49+
C_ADDRESS_CONTROL_B => false,
50+
C_ADDRESS_DATA_B => true,
51+
others => false
52+
-- Comment
53+
C_ADDRESS_CONTROL_C => false,
54+
C_ADDRESS_DATA_C => true,
55+
others => false
56+
);
57+
58+
-- Test hierarchical assignments
59+
-- Desired alignment
60+
variable v_my_var : my_type := (
61+
ENUM_1 => (
62+
A => 1,
63+
B => 2,
64+
C => 3
65+
),
66+
ENUM_224 => (
67+
AA => 1,
68+
BB => 2,
69+
CC => 3
70+
)
71+
);
72+
73+
-- Invalid alignment
74+
variable v_my_var : my_type := (
75+
ENUM_1 => (
76+
A => 1,
77+
B => 2,
78+
C => 3
79+
),
80+
ENUM_224 => (
81+
AA => 1,
82+
BB => 2,
83+
CC => 3
84+
)
85+
);
86+
87+
-- Test single line aggregates
88+
variable v_my_var : my_type := (
89+
ENUM_1 => (
90+
A => 1,
91+
B => 2,
92+
C => 3
93+
),
94+
ENUM_2 => (
95+
AA => 1,
96+
BBBBBBB => ((others => '0')),
97+
CC => 3 -- Not aligned!
98+
)
99+
);
100+
101+
begin
102+
103+
end process;
104+
105+
end architecture rtl;
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
architecture rtl of fifo is
2+
3+
begin
4+
5+
process
6+
variable v_my_rec : t_my_rec :=
7+
(
8+
signal_one => '0',
9+
signal_onetwo => '0',
10+
11+
signal_onetwothree => '0',
12+
signal_onetwothreefour => '0',
13+
-- Comment
14+
signal_onetwothreefourfive => '0',
15+
signal_onetwothreefourfivesix => '0'
16+
);
17+
18+
variable v_default_values : t_address_en := (
19+
C_ADDRESS_CONTROL_A => false,
20+
C_ADDRESS_DATA_A => true,
21+
others => false
22+
23+
C_ADDRESS_CONTROL_B => false,
24+
C_ADDRESS_DATA_B => true,
25+
others => false
26+
-- Comment
27+
C_ADDRESS_CONTROL_C => false,
28+
C_ADDRESS_DATA_C => true,
29+
others => false
30+
);
31+
32+
variable v_my_rec : t_my_rec :=
33+
(
34+
signal_one => '0',
35+
signal_onetwo => '0',
36+
37+
signal_onetwothree => '0',
38+
signal_onetwothreefour => '0',
39+
-- Comment
40+
signal_onetwothreefourfive => '0',
41+
signal_onetwothreefourfivesix => '0'
42+
);
43+
44+
variable v_default_values : t_address_en := (
45+
C_ADDRESS_CONTROL_A => false,
46+
C_ADDRESS_DATA_A => true,
47+
others => false
48+
49+
C_ADDRESS_CONTROL_B => false,
50+
C_ADDRESS_DATA_B => true,
51+
others => false
52+
-- Comment
53+
C_ADDRESS_CONTROL_C => false,
54+
C_ADDRESS_DATA_C => true,
55+
others => false
56+
);
57+
58+
-- Test hierarchical assignments
59+
-- Desired alignment
60+
variable v_my_var : my_type := (
61+
ENUM_1 => (
62+
A => 1,
63+
B => 2,
64+
C => 3
65+
),
66+
ENUM_224 => (
67+
AA => 1,
68+
BB => 2,
69+
CC => 3
70+
)
71+
);
72+
73+
-- Invalid alignment
74+
variable v_my_var : my_type := (
75+
ENUM_1 => (
76+
A => 1,
77+
B => 2,
78+
C => 3
79+
),
80+
ENUM_224 => (
81+
AA => 1,
82+
BB => 2,
83+
CC => 3
84+
)
85+
);
86+
87+
-- Test single line aggregates
88+
variable v_my_var : my_type := (
89+
ENUM_1 => (
90+
A => 1,
91+
B => 2,
92+
C => 3
93+
),
94+
ENUM_2 => (
95+
AA => 1,
96+
BBBBBBB => ((others => '0')),
97+
CC => 3 -- Not aligned!
98+
)
99+
);
100+
101+
begin
102+
103+
end process;
104+
105+
end architecture rtl;
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
architecture rtl of fifo is
2+
3+
begin
4+
5+
process
6+
variable v_my_rec : t_my_rec :=
7+
(
8+
signal_one => '0',
9+
signal_onetwo => '0',
10+
11+
signal_onetwothree => '0',
12+
signal_onetwothreefour => '0',
13+
-- Comment
14+
signal_onetwothreefourfive => '0',
15+
signal_onetwothreefourfivesix => '0'
16+
);
17+
18+
variable v_default_values : t_address_en := (
19+
C_ADDRESS_CONTROL_A => false,
20+
C_ADDRESS_DATA_A => true,
21+
others => false
22+
23+
C_ADDRESS_CONTROL_B => false,
24+
C_ADDRESS_DATA_B => true,
25+
others => false
26+
-- Comment
27+
C_ADDRESS_CONTROL_C => false,
28+
C_ADDRESS_DATA_C => true,
29+
others => false
30+
);
31+
32+
variable v_my_rec : t_my_rec :=
33+
(
34+
signal_one => '0',
35+
signal_onetwo => '0',
36+
37+
signal_onetwothree => '0',
38+
signal_onetwothreefour => '0',
39+
-- Comment
40+
signal_onetwothreefourfive => '0',
41+
signal_onetwothreefourfivesix => '0'
42+
);
43+
44+
variable v_default_values : t_address_en := (
45+
C_ADDRESS_CONTROL_A => false,
46+
C_ADDRESS_DATA_A => true,
47+
others => false
48+
49+
C_ADDRESS_CONTROL_B => false,
50+
C_ADDRESS_DATA_B => true,
51+
others => false
52+
-- Comment
53+
C_ADDRESS_CONTROL_C => false,
54+
C_ADDRESS_DATA_C => true,
55+
others => false
56+
);
57+
58+
-- Test hierarchical assignments
59+
-- Desired alignment
60+
variable v_my_var : my_type := (
61+
ENUM_1 => (
62+
A => 1,
63+
B => 2,
64+
C => 3
65+
),
66+
ENUM_224 => (
67+
AA => 1,
68+
BB => 2,
69+
CC => 3
70+
)
71+
);
72+
73+
-- Invalid alignment
74+
variable v_my_var : my_type := (
75+
ENUM_1 => (
76+
A => 1,
77+
B => 2,
78+
C => 3
79+
),
80+
ENUM_224 => (
81+
AA => 1,
82+
BB => 2,
83+
CC => 3
84+
)
85+
);
86+
87+
-- Test single line aggregates
88+
variable v_my_var : my_type := (
89+
ENUM_1 => (
90+
A => 1,
91+
B => 2,
92+
C => 3
93+
),
94+
ENUM_2 => (
95+
AA => 1,
96+
BBBBBBB => ((others => '0')),
97+
CC => 3 -- Not aligned!
98+
)
99+
);
100+
101+
begin
102+
103+
end process;
104+
105+
end architecture rtl;

0 commit comments

Comments
 (0)