0

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
4

1 回答 1

2

您之前缺少 1 'b0。模拟器不知道的位大小,'b0因为它没有指定。

{fifo_depth_base2{'b0}};应该{fifo_depth_base2{ 1'b0}};

使用 SystemVerilog,您可以使用:rd_ptr <= '0;,其中'0表示填充零

于 2014-04-28T18:41:03.660 回答