Added support for $stop system task

This commit is contained in:
Clifford Wolf 2016-03-21 16:19:51 +01:00
parent ca8f8e30f2
commit 4f0d4899ce
1 changed files with 5 additions and 5 deletions

View File

@ -174,8 +174,8 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
} }
// deactivate all calls to non-synthesis system tasks // deactivate all calls to non-synthesis system tasks
// note that $display and $finish are used for synthesis-time DRC so they're not in this list // note that $display, $finish, and $stop are used for synthesis-time DRC so they're not in this list
if ((type == AST_FCALL || type == AST_TCALL) && (str == "$strobe" || str == "$monitor" || str == "$time" || str == "$stop" || if ((type == AST_FCALL || type == AST_TCALL) && (str == "$strobe" || str == "$monitor" || str == "$time" ||
str == "$dumpfile" || str == "$dumpvars" || str == "$dumpon" || str == "$dumpoff" || str == "$dumpall")) { str == "$dumpfile" || str == "$dumpvars" || str == "$dumpon" || str == "$dumpoff" || str == "$dumpall")) {
log_warning("Ignoring call to system %s %s at %s:%d.\n", type == AST_FCALL ? "function" : "task", str.c_str(), filename.c_str(), linenum); log_warning("Ignoring call to system %s %s at %s:%d.\n", type == AST_FCALL ? "function" : "task", str.c_str(), filename.c_str(), linenum);
delete_children(); delete_children();
@ -1698,12 +1698,12 @@ skip_dynamic_range_lvalue_expansion:;
if (type == AST_TCALL) if (type == AST_TCALL)
{ {
if (str == "$finish") if (str == "$finish" || str == "$stop")
{ {
if (!current_always || current_always->type != AST_INITIAL) if (!current_always || current_always->type != AST_INITIAL)
log_error("System task `$finish' outside initial block is unsupported at %s:%d.\n", filename.c_str(), linenum); log_error("System task `%s' outside initial block is unsupported at %s:%d.\n", str.c_str(), filename.c_str(), linenum);
log_error("System task `$finish' executed at %s:%d.\n", filename.c_str(), linenum); log_error("System task `%s' executed at %s:%d.\n", str.c_str(), filename.c_str(), linenum);
} }
if (str == "\\$readmemh" || str == "\\$readmemb") if (str == "\\$readmemh" || str == "\\$readmemb")