我想将数组中的所有寄存器都设置为零。但是,我已经参数化了数组的大小:
logic [WIDTH-2:0] numelem [0:MAXBITS-1];
有没有一种方法可以使我基本完成numelem <= {0,0,0,0,...}
,但只需要通用大小?该方法最好是非阻塞的,因为我需要在always_ff
块内进行分配。谢谢。
答案 0 :(得分:3)
有几种方法可以做到这一点:
1)如Oldfart所建议,使用for循环;简单易懂
int i;
...
for (i = 0; i < MAXBITS; i = i + 1) begin
numelem[i] <= '0;
end
2)使用带有default
关键字的数组分配模式:
numelem <= '{default: '0};
3)如果不需要模拟bit
或logic
状态,请使用'bx
类型而不是'bz
类型;类型bit
的变量被初始化为'b0
而不是'bx
。
答案 1 :(得分:1)
我赞成使用老式的for循环:
int c;
...
for (c=0; c<MAXBITS; c=c+1) numelem [c] <= 'b0;
答案 2 :(得分:1)
logic [WIDTH-2:0] numelem [0:MAXBITS-1] = '{default:'0};