【问题标题】:ERROR :near "initial": syntax error, unexpected initial [duplicate]错误:靠近“初始”:语法错误,意外的初始[重复]
【发布时间】:2021-01-17 14:56:43
【问题描述】:
这是我的代码,我得到这个编译错误:
ERROR :near "initial": 语法错误,意外的初始
如何解决这个错误?
module pract_wildcardequality();
logic [3:0] a,b;
function void wildcradd(a,b);
begin
if(a==?b)
$monitor ("a %d",a==?b);
else
$monitor ("a else %d",a==?b);
end
initial begin
wildcardd(4'b010x,
4'b0101);
end
//end
endmodule
【问题讨论】:
标签:
compiler-errors
verilog
system-verilog
vlsi
【解决方案1】:
您需要使用endfunction 关键字关闭function。这类似于endmodule 关键字。
我还修正了一个导致另一个编译错误的错字:我将你的函数调用从 wildcardd 更改为 wildcradd。我不确定你想要哪个名字,但它们必须匹配。
module pract_wildcardequality();
logic [3:0] a,b;
function void wildcradd(a,b);
begin
if(a==?b)
$monitor ("a %d",a==?b);
else
$monitor ("a else %d",a==?b);
end
endfunction
initial begin
wildcradd(4'b010x,
4'b0101);
end
endmodule