我有以下代码,文件c.sv
:
virtual class C#(parameter W = 32); // line #2 where error message points
static function logic [W-1 : 0] f(input logic [W-1 : 0] in);
return ~in;
endfunction
endclass
然后我从以下位置调用它top.sv
:
`include "c.sv"
module top(input wire [3:0] key, ouptut wire [3:0] led);
assign led = C#(4)::f(sw);
endmodule
在 ModelSim 10.3d 中它工作正常,但 Quartus II x64 15.0.1 build 150 在分析和综合后报告此错误:
错误 (10170):在 c.sv(2) 的文本“虚拟”附近出现 Verilog HDL 语法错误;期待描述
如果我用一个简单的 ~led 注释inlcude "c.sv"
并替换函数调用,那么它可以在开发板中工作。
我究竟做错了什么?