Cadence irun为下面的代码提供错误,其中fifo_depth_base2是如下参数:
ncvlog:* E,NONOWD(buff_mgr.v,17 | 46):非明确使用没有明确宽度规范的常量[4.1.14(IEEE)]。
我可以理解这个错误,但我的问题是如何将其分配给参数化设计。
// rd pointer and read logic
always @(posedge clk or posedge rst) begin
if(rst) rd_ptr <= 0;
else begin
case({flush, rd})
2'b10, 2'b11: rd_ptr <= {fifo_depth_base2{'b0}}; // error here
...
endcase
end
end
答案 0 :(得分:2)
您在'b0
之前错过了1。模拟器不知道'b0
的位大小,因为它未指定。
{fifo_depth_base2{'b0}};
应为{fifo_depth_base2{ 1'b0}};
使用SystemVerilog,您可以使用:rd_ptr <= '0;
,其中'0
表示填充零