System Tasks and Functions in Yosys #4821
-
Greetings everyone. Currently in I wanted to test some benchmarks from the Verilog 1364-2005 standard itself, namely sections module test;
integer fd, mcd;
initial begin
$fflush(mcd);
$fflush(fd);
$fflush();
end
endmodule module test;
integer fd, errno;
reg str;
initial begin
errno = $ferror(fd, str);
end
endmodule And both tests fail:
I thought tasks such as these can be ignored the way it is with some calls ( if ((type == AST_FCALL || type == AST_TCALL) && (str == "$strobe" || str == "$monitor" || str == "$time" ||
str == "$dumpfile" || str == "$dumpvars" || str == "$dumpon" || str == "$dumpoff" || str == "$dumpall")) {
log_file_warning(filename, location.first_line, "Ignoring call to system %s %s.\n", type == AST_FCALL ? "function" : "task", str.c_str()); Is there an explicit purpose for these tasks to not be recognized or they were simply forgotten? Thank you all in advance. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Yosys generally implements only the tasks that are useful during synthesis, and tasks like This is done purely on a case by case basis. |
Beta Was this translation helpful? Give feedback.
Yosys generally implements only the tasks that are useful during synthesis, and tasks like
$dumpvars
are not. Since it is benign to ignore them (they don't affect synthesis results) they are ignored.This is done purely on a case by case basis.