0

Cadence irun gives error for below code, where fifo_depth_base2 is parameter as below:

ncvlog: *E,NONOWD (buff_mgr.v,17|46): Illegal use of a constant without an explicit width specification [4.1.14(IEEE)].

I can understand this error, but my question is how would I otherwise assign it for parameterized design.

// 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 に答える