SystemVerilog在中初始化多维参数化数组
我正在尝试初始化SystemVerilog中的多维参数化数组,如下所述:SystemVerilog在中初始化多维参数化数组,verilog,system-verilog,xilinx,Verilog,System Verilog,Xilinx,我正在尝试初始化SystemVerilog中的多维参数化数组,如下所述: ... parameter INPUT_WIDTH = 16; parameter NUM_ELEMENTS = 4; ... reg signed [INPUT_WIDTH-1 : 0 ] ss_res_reg[NUM_ELEMENTS-1:0]; 我想在rst的每个下降沿上将ss_res_reg初始化为零,以便: always_ff @(posedge clk or negedge rst) begin if
...
parameter INPUT_WIDTH = 16;
parameter NUM_ELEMENTS = 4;
...
reg signed [INPUT_WIDTH-1 : 0 ] ss_res_reg[NUM_ELEMENTS-1:0];
我想在rst
的每个下降沿上将ss_res_reg
初始化为零,以便:
always_ff @(posedge clk or negedge rst) begin
if(~rst) begin
ss_res_reg <= '{NUM_ELEMENTS{NUM_ELEMENTS{1'b0}}};
end else begin
ss_res_reg <= ss_res;
end
end
始终\u ff@(posedge clk或negedge rst)开始
如果(~rst)开始
ss_res_reg错误在于无法复制未打包的数组元素
有一个简单的解决方案:
if(~rst)
for (integer i=0; i<NUM_ELEMENTS; i++)
ss_res_reg[i] <= {INPUT_WIDTH{1'b0}};
if(~rst)
对于(整数i=0;i而言,错误在于无法复制未打包的数组元素
有一个简单的解决方案:
if(~rst)
for (integer i=0; i<NUM_ELEMENTS; i++)
ss_res_reg[i] <= {INPUT_WIDTH{1'b0}};
if(~rst)
对于(整数i=0;i,您可以在分配模式中使用默认值标签来分配具有任意维数的未打包数组的所有元素:
always_ff @(posedge clk or negedge rst) begin
if(~rst) begin
ss_res_reg <= '{default:'0};
end else begin
ss_res_reg <= ss_res;
end
end
始终\u ff@(posedge clk或negedge rst)开始
如果(~rst)开始
ss_res_reg您可以在赋值模式中使用default
标签来赋值具有任意维数的未打包数组的所有元素:
always_ff @(posedge clk or negedge rst) begin
if(~rst) begin
ss_res_reg <= '{default:'0};
end else begin
ss_res_reg <= ss_res;
end
end
始终\u ff@(posedge clk或negedge rst)开始
如果(~rst)开始
ss_res_注册