Skip to content

Commit 06d4b20

Browse files
committed
Fix AUTOINPUT etc adding comma after attribute (#1884).
* verilog-mode.el (verilog-repair-open-comma): Fix AUTOINPUT, etc. adding comma after attribute (#1884).
1 parent 88030f2 commit 06d4b20

File tree

3 files changed

+162
-0
lines changed

3 files changed

+162
-0
lines changed

tests/autoinst_attr.v

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Issue #1884
2+
3+
module top
4+
(
5+
6+
(* period=5.0 *)
7+
input logic clk,
8+
9+
(* asynchronous=true *)
10+
input logic rst_n,
11+
12+
(* attribute1="hello" *)
13+
/*AUTOINPUT("^a_")*/
14+
/*AUTOOUTPUT("^a_")*/
15+
16+
/*AUTOINPUT("^z_")*/
17+
/*AUTOOUTPUT("^z_")*/
18+
19+
/*AUTOOUTPUT*/
20+
);
21+
22+
/*AUTOLOGIC*/
23+
24+
module_a i_module_a
25+
(/*AUTOINST*/);
26+
27+
module_b i_module_b
28+
(/*AUTOINST*/);
29+
30+
endmodule
31+
32+
module module_a
33+
(
34+
input logic clk,
35+
input logic rst_n,
36+
37+
input logic [7:0] a_data,
38+
input logic a_valid,
39+
output logic a_ready,
40+
41+
output logic [7:0] b_data,
42+
output logic b_valid,
43+
input logic b_ready
44+
);
45+
endmodule
46+
47+
module module_b
48+
(
49+
input logic clk,
50+
input logic rst_n,
51+
52+
input logic [7:0] b_data,
53+
input logic b_valid,
54+
output logic b_ready,
55+
56+
output logic [7:0] z_data,
57+
output logic z_valid,
58+
input logic z_ready
59+
);
60+
endmodule

tests_ok/autoinst_attr.v

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
// Issue #1884
2+
3+
module top
4+
(
5+
6+
(* period= 5.0 *)
7+
input logic clk,
8+
9+
(* asynchronous=true *)
10+
input logic rst_n,
11+
12+
(* attribute1="hello" *)
13+
/*AUTOINPUT("^a_")*/
14+
// Beginning of automatic inputs (from unused autoinst inputs)
15+
input logic [7:0] a_data, // To i_module_a of module_a.v
16+
input logic a_valid, // To i_module_a of module_a.v
17+
// End of automatics
18+
/*AUTOOUTPUT("^a_")*/
19+
// Beginning of automatic outputs (from unused autoinst outputs)
20+
output logic a_ready, // From i_module_a of module_a.v
21+
// End of automatics
22+
23+
/*AUTOINPUT("^z_")*/
24+
// Beginning of automatic inputs (from unused autoinst inputs)
25+
input logic z_ready, // To i_module_b of module_b.v
26+
// End of automatics
27+
/*AUTOOUTPUT("^z_")*/
28+
// Beginning of automatic outputs (from unused autoinst outputs)
29+
output logic [7:0] z_data, // From i_module_b of module_b.v
30+
output logic z_valid // From i_module_b of module_b.v
31+
// End of automatics
32+
33+
/*AUTOOUTPUT*/
34+
);
35+
36+
/*AUTOLOGIC*/
37+
// Beginning of automatic wires (for undeclared instantiated-module outputs)
38+
logic [7:0] b_data; // From i_module_a of module_a.v
39+
logic b_ready; // From i_module_b of module_b.v
40+
logic b_valid; // From i_module_a of module_a.v
41+
// End of automatics
42+
43+
module_a i_module_a
44+
(/*AUTOINST*/
45+
// Outputs
46+
.a_ready (a_ready),
47+
.b_data (b_data[7:0]),
48+
.b_valid (b_valid),
49+
// Inputs
50+
.clk (clk),
51+
.rst_n (rst_n),
52+
.a_data (a_data[7:0]),
53+
.a_valid (a_valid),
54+
.b_ready (b_ready));
55+
56+
module_b i_module_b
57+
(/*AUTOINST*/
58+
// Outputs
59+
.b_ready (b_ready),
60+
.z_data (z_data[7:0]),
61+
.z_valid (z_valid),
62+
// Inputs
63+
.clk (clk),
64+
.rst_n (rst_n),
65+
.b_data (b_data[7:0]),
66+
.b_valid (b_valid),
67+
.z_ready (z_ready));
68+
69+
endmodule
70+
71+
module module_a
72+
(
73+
input logic clk,
74+
input logic rst_n,
75+
76+
input logic [7:0] a_data,
77+
input logic a_valid,
78+
output logic a_ready,
79+
80+
output logic [7:0] b_data,
81+
output logic b_valid,
82+
input logic b_ready
83+
);
84+
endmodule
85+
86+
module module_b
87+
(
88+
input logic clk,
89+
input logic rst_n,
90+
91+
input logic [7:0] b_data,
92+
input logic b_valid,
93+
output logic b_ready,
94+
95+
output logic [7:0] z_data,
96+
output logic z_valid,
97+
input logic z_ready
98+
);
99+
endmodule

verilog-mode.el

+3
Original file line numberDiff line numberDiff line change
@@ -11380,6 +11380,9 @@ Presumes that any newlines end a list element."
1138011380
(when (and (not (save-excursion ; Not beginning (, or existing ,
1138111381
(backward-char 1)
1138211382
(looking-at "[(,]")))
11383+
(not (save-excursion ; Not attribute *)
11384+
(backward-char 2)
11385+
(looking-at "\\*)")))
1138311386
(not (save-excursion ; Not `endif, or user define
1138411387
(backward-char 1)
1138511388
(skip-chars-backward "a-zA-Z0-9_`")

0 commit comments

Comments
 (0)