将整个寄存器数组设置为零
Setting entire register array to zero
我想将数组中的所有寄存器都设置为零。但是,我已经参数化了数组的大小:
logic [WIDTH-2:0] numelem [0:MAXBITS-1];
有没有一种方法可以让我基本上做到 numelem <= {0,0,0,0,...}
但对于通用尺寸?该方法最好是非阻塞的,因为我需要在 always_ff
块内进行分配。谢谢
我赞成使用老式的 for 循环:
int c;
...
for (c=0; c<MAXBITS; c=c+1) numelem [c] <= 'b0;
有几种方法可以实现:
1)按照老屁的建议,使用for循环;简单易懂
int i;
...
for (i = 0; i < MAXBITS; i = i + 1) begin
numelem[i] <= '0;
end
2) 使用带有default
关键字的数组赋值模式:
numelem <= '{default: '0};
3) 如果不需要模拟'bx
或'bz
状态,请使用bit
类型而不是logic
类型; bit
类型的变量被初始化为 'b0
而不是 'bx
.
logic [WIDTH-2:0] numelem [0:MAXBITS-1] = '{default:'0};
补充一下也可用于比较的另一个选项:
signal = {$bits(signal){1'b0}};
signal == {$bits(signal){1'b0}}; // This will evaluate to true
我想将数组中的所有寄存器都设置为零。但是,我已经参数化了数组的大小:
logic [WIDTH-2:0] numelem [0:MAXBITS-1];
有没有一种方法可以让我基本上做到 numelem <= {0,0,0,0,...}
但对于通用尺寸?该方法最好是非阻塞的,因为我需要在 always_ff
块内进行分配。谢谢
我赞成使用老式的 for 循环:
int c;
...
for (c=0; c<MAXBITS; c=c+1) numelem [c] <= 'b0;
有几种方法可以实现:
1)按照老屁的建议,使用for循环;简单易懂
int i;
...
for (i = 0; i < MAXBITS; i = i + 1) begin
numelem[i] <= '0;
end
2) 使用带有default
关键字的数组赋值模式:
numelem <= '{default: '0};
3) 如果不需要模拟'bx
或'bz
状态,请使用bit
类型而不是logic
类型; bit
类型的变量被初始化为 'b0
而不是 'bx
.
logic [WIDTH-2:0] numelem [0:MAXBITS-1] = '{default:'0};
补充一下也可用于比较的另一个选项:
signal = {$bits(signal){1'b0}};
signal == {$bits(signal){1'b0}}; // This will evaluate to true