Add error when `resetall inside module
This commit is contained in:
parent
2408de16a0
commit
460e0541f3
2
Changes
2
Changes
|
|
@ -14,6 +14,8 @@ The contributors that suggested a given feature are shown in []. Thanks!
|
||||||
|
|
||||||
**** Add vpiTimeUnit and allow to specify time as string, bug1636. [Stefan Wallentowitz]
|
**** Add vpiTimeUnit and allow to specify time as string, bug1636. [Stefan Wallentowitz]
|
||||||
|
|
||||||
|
**** Add error when `resetall inside module (IEEE 2017-22.3).
|
||||||
|
|
||||||
**** Fix little endian cell ranges, bug1631. [Julien Margetts]
|
**** Fix little endian cell ranges, bug1631. [Julien Margetts]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -927,8 +927,8 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
|
||||||
"`protect" { FL_FWD; FL_BRK; }
|
"`protect" { FL_FWD; FL_BRK; }
|
||||||
"`remove_gatenames" { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
"`remove_gatenames" { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
||||||
"`remove_netnames" { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
"`remove_netnames" { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
||||||
"`resetall" { FL_FWD; PARSEP->fileline()->warnOn(V3ErrorCode::I_DEF_NETTYPE_WIRE, true);
|
"`resetall" { FL; PARSEP->fileline()->warnOn(V3ErrorCode::I_DEF_NETTYPE_WIRE, true);
|
||||||
FL_BRK; } // Rest handled by preproc
|
return yaT_RESETALL; } // Rest handled by preproc
|
||||||
"`suppress_faults" { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
"`suppress_faults" { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
||||||
"`timescale"{ws}+[^\n\r]* { FL_FWD; FL_BRK; } // Verilog spec - not supported
|
"`timescale"{ws}+[^\n\r]* { FL_FWD; FL_BRK; } // Verilog spec - not supported
|
||||||
"`uselib"{ws}+[^\n\r]* { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
"`uselib"{ws}+[^\n\r]* { FL_FWD; FL_BRK; } // Verilog-XL compatibility
|
||||||
|
|
|
||||||
|
|
@ -287,6 +287,8 @@ class AstSenTree;
|
||||||
%token<strp> yaD_IGNORE "${ignored-bbox-sys}"
|
%token<strp> yaD_IGNORE "${ignored-bbox-sys}"
|
||||||
%token<strp> yaD_DPI "${dpi-sys}"
|
%token<strp> yaD_DPI "${dpi-sys}"
|
||||||
|
|
||||||
|
%token<fl> yaT_RESETALL "`resetall"
|
||||||
|
|
||||||
// <fl> is the fileline, abbreviated to shorten "$<fl>1" references
|
// <fl> is the fileline, abbreviated to shorten "$<fl>1" references
|
||||||
%token<fl> '!'
|
%token<fl> '!'
|
||||||
%token<fl> '#'
|
%token<fl> '#'
|
||||||
|
|
@ -742,6 +744,7 @@ description: // ==IEEE: description
|
||||||
| bind_directive { if ($1) GRAMMARP->unitPackage($1->fileline())->addStmtp($1); }
|
| bind_directive { if ($1) GRAMMARP->unitPackage($1->fileline())->addStmtp($1); }
|
||||||
// unsupported // IEEE: config_declaration
|
// unsupported // IEEE: config_declaration
|
||||||
// // Verilator only
|
// // Verilator only
|
||||||
|
| yaT_RESETALL { } // Else, under design, and illegal based on IEEE 22.3
|
||||||
| vltItem { }
|
| vltItem { }
|
||||||
| error { }
|
| error { }
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
%Warning-IMPLICIT: t/t_lint_implicit_def_bad.v:10: Signal definition not found, creating implicitly: 'imp_warn'
|
%Warning-IMPLICIT: t/t_lint_implicit_def_bad.v:12: Signal definition not found, creating implicitly: 'imp_warn'
|
||||||
assign imp_warn = 1'b1;
|
assign imp_warn = 1'b1;
|
||||||
^~~~~~~~
|
^~~~~~~~
|
||||||
... Use "/* verilator lint_off IMPLICIT */" and lint_on around source to disable this message.
|
... Use "/* verilator lint_off IMPLICIT */" and lint_on around source to disable this message.
|
||||||
%Error: t/t_lint_implicit_def_bad.v:15: Signal definition not found, and implicit disabled with `default_nettype: 'imp_err'
|
%Error: t/t_lint_implicit_def_bad.v:17: Signal definition not found, and implicit disabled with `default_nettype: 'imp_err'
|
||||||
assign imp_err = 1'b1;
|
assign imp_err = 1'b1;
|
||||||
^~~~~~~
|
^~~~~~~
|
||||||
%Error: Exiting due to
|
%Error: Exiting due to
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ module t (a,z);
|
||||||
input a;
|
input a;
|
||||||
output z;
|
output z;
|
||||||
|
|
||||||
|
sub sub ();
|
||||||
|
|
||||||
assign imp_warn = 1'b1;
|
assign imp_warn = 1'b1;
|
||||||
// verilator lint_off IMPLICIT
|
// verilator lint_off IMPLICIT
|
||||||
assign imp_ok = 1'b1;
|
assign imp_ok = 1'b1;
|
||||||
|
|
@ -16,8 +18,10 @@ module t (a,z);
|
||||||
|
|
||||||
`default_nettype wire
|
`default_nettype wire
|
||||||
assign imp_ok2 = 1'b1;
|
assign imp_ok2 = 1'b1;
|
||||||
|
endmodule
|
||||||
|
|
||||||
`default_nettype none
|
`default_nettype none
|
||||||
`resetall
|
`resetall
|
||||||
|
module sub;
|
||||||
assign imp_ok3 = 1'b1;
|
assign imp_ok3 = 1'b1;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
%Error: t/t_pp_pragma_bad.v:6: `pragma is missing a pragma_expression.
|
%Error: t/t_pp_pragma_bad.v:6: `pragma is missing a pragma_expression.
|
||||||
`pragma
|
`pragma
|
||||||
^~~~~~~
|
^~~~~~~
|
||||||
%Error: Exiting due to
|
%Error: t/t_pp_pragma_bad.v:10: syntax error, unexpected `resetall
|
||||||
|
`resetall
|
||||||
|
^~~~~~~~~
|
||||||
|
%Error: Cannot continue
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,9 @@
|
||||||
// without warranty, 2019 by Wilson Snyder.
|
// without warranty, 2019 by Wilson Snyder.
|
||||||
|
|
||||||
`pragma
|
`pragma
|
||||||
|
|
||||||
|
`resetall // Ok
|
||||||
|
module t;
|
||||||
|
`resetall // Bad
|
||||||
|
endmodule
|
||||||
|
`resetall // Ok
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue