verilog 期望在生成块附近出现分号错误
verilog expecting a semicolon error near generate block
多年来我一直在使用 verilog,但最近我正在用 verilog 测试一些东西。在 ncvlog 编译期间,我有一个错误,我找不到原因。下面是代码(尚未完成)。
`include "default.v"
module conv (
input clr,
input clk,
input start_conv,
output integer raddr,
output integer waddr,
input real data_in,
output real data_out
);
parameter NUM_CONV = `DEF_NUM_CONV;
genvar i;
generate
for (i=0; i<NUM_CONV; i=i+1) begin : uconv
unit_conv inst() (
.clr (clr),
.clk (clk),
.start (start_conv),
.rreq (rreq[i]),
.raddr (raddr[i]),
.rdata (rdata[i]),
.wreq (wreq[i]),
.waddr (waddr[i]),
.wdata (wdata[i])
);
end
endgenerate
endmodule
我得到的错误如下:
ckim@stph45:~/Neuro/convhw] ncvlog -sv conv.v
ncvlog: 12.20-s008: (c) Copyright 1995-2013 Cadence Design Systems, Inc.
unit_conv inst() (
|
ncvlog: *E,EXPSMC (conv.v,19|17): expecting a semicolon (';') [12.1.2][7.1(IEEE)].
生成实例的端口映射语法有误吗?根据 这似乎是正确的......顺便说一句,我用 ncvlog -SV conv.v
.
编译
考虑以下因素:
unit_conv inst (
.clr (clr),
.clk (clk),
.start (start_conv),
.rreq (rreq[i]),
.raddr (raddr[i]),
.rdata (rdata[i]),
.wreq (wreq[i]),
.waddr (waddr[i]),
.wdata (wdata[i])
);
多年来我一直在使用 verilog,但最近我正在用 verilog 测试一些东西。在 ncvlog 编译期间,我有一个错误,我找不到原因。下面是代码(尚未完成)。
`include "default.v"
module conv (
input clr,
input clk,
input start_conv,
output integer raddr,
output integer waddr,
input real data_in,
output real data_out
);
parameter NUM_CONV = `DEF_NUM_CONV;
genvar i;
generate
for (i=0; i<NUM_CONV; i=i+1) begin : uconv
unit_conv inst() (
.clr (clr),
.clk (clk),
.start (start_conv),
.rreq (rreq[i]),
.raddr (raddr[i]),
.rdata (rdata[i]),
.wreq (wreq[i]),
.waddr (waddr[i]),
.wdata (wdata[i])
);
end
endgenerate
endmodule
我得到的错误如下:
ckim@stph45:~/Neuro/convhw] ncvlog -sv conv.v
ncvlog: 12.20-s008: (c) Copyright 1995-2013 Cadence Design Systems, Inc.
unit_conv inst() (
|
ncvlog: *E,EXPSMC (conv.v,19|17): expecting a semicolon (';') [12.1.2][7.1(IEEE)].
生成实例的端口映射语法有误吗?根据 ncvlog -SV conv.v
.
考虑以下因素:
unit_conv inst (
.clr (clr),
.clk (clk),
.start (start_conv),
.rreq (rreq[i]),
.raddr (raddr[i]),
.rdata (rdata[i]),
.wreq (wreq[i]),
.waddr (waddr[i]),
.wdata (wdata[i])
);