Mic*_*ael 9 arrays verilog multidimensional-array
我已经构建了一个8*2bits阵列来表示Verilog中的一块内存
reg [1:0] m [0:7]
Run Code Online (Sandbox Code Playgroud)
该存储器有一个复位信号,如果复位为1,则该存储器中的所有位应复位为0.但我不知道如何以简洁的方式设置m的所有位,因为如果有数百位在内存中数千位,以下方式显然是不可行的.
always@(posedge clk or posedge reset)
begin
if (reset)
begin
m[0]<=2'b00;
m[1]<=2'b00;
m[2]<=2'b00;
m[3]<=2'b00;
m[4]<=2'b00;
m[5]<=2'b00;
m[6]<=2'b00;
m[7]<=2'b00;
end
else
....
end
Run Code Online (Sandbox Code Playgroud)
使用for循环:
integer i;
always@(posedge clk or posedge reset)
begin
if (reset)
begin
for (i=0; i<8; i=i+1) m[i] <= 2'b00;
end
else
....
end
Run Code Online (Sandbox Code Playgroud)
这在IEEE Std 1800-2012中描述(例如,第12.7.1节"for循环").
如果您可以使用当前的系统 verilog 语法,那么这应该有效:
always_ff @(posedge clk or posedge reset)
begin
if(reset) begin
m <= '{default:2'b00};
end
else
...
end
Run Code Online (Sandbox Code Playgroud)
请参阅1800-2012 IEEE 标准的第 5.11 节(数组文字)。
| 归档时间: |
|
| 查看次数: |
25352 次 |
| 最近记录: |