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
fifo_depth_base2{'b0}
, fifo_depth_base2 должна быть константой. Вы, вероятно, можете использовать цикл for, чтобы сделать его параметризованным, или простоrd_ptr <= '0
. - person Ari   schedule 28.04.2014fifo_depth_base2
- это параметр, поэтому он уже является константой. - person Greg   schedule 28.04.2014