For loop 在系统Verilog中实现逻辑的方法

For loop 在系统Verilog中实现逻辑的方法,for-loop,logic,fpga,system-verilog,hdl,For Loop,Logic,Fpga,System Verilog,Hdl,我只是在学习HDL,我对for循环如何在系统Verilog中实现感兴趣 使用以下代码 always_ff(posedge clk) begin for(int i = 0; i < 32; i++) s[i] = a[i] + b[i]; end 我会在逻辑中得到32个加法器,并且它们都是同时执行的吗?或者是以某种方式按顺序进行添加 谢谢 Boscoe根据您的示例可以静态展开的循环可以被合成 您给出的示例必须在单个时钟周期内执行,生成的硬件不会有任何顺序: 你的例子是: alway

我只是在学习HDL,我对for循环如何在系统Verilog中实现感兴趣

使用以下代码

always_ff(posedge clk)

begin

for(int i = 0; i < 32; i++) s[i] = a[i] + b[i];

end
我会在逻辑中得到32个加法器,并且它们都是同时执行的吗?或者是以某种方式按顺序进行添加

谢谢
Boscoe

根据您的示例可以静态展开的循环可以被合成

您给出的示例必须在单个时钟周期内执行,生成的硬件不会有任何顺序:

你的例子是:

always_ff(posedge clk) begin
  for(int i = 0; i < 32; i++) begin
    s[i] <= a[i] + b[i];
  end
end
只有32个并行加法器:

always_ff(posedge clk) begin
  s[0] <= a[0] + b[0];
  s[1] <= a[1] + b[1];
  s[2] <= a[2] + b[2];
  //...
end

根据您的示例,可以静态展开的循环可以被合成

您给出的示例必须在单个时钟周期内执行,生成的硬件不会有任何顺序:

你的例子是:

always_ff(posedge clk) begin
  for(int i = 0; i < 32; i++) begin
    s[i] <= a[i] + b[i];
  end
end
只有32个并行加法器:

always_ff(posedge clk) begin
  s[0] <= a[0] + b[0];
  s[1] <= a[1] + b[1];
  s[2] <= a[2] + b[2];
  //...
end
可能的重复可能的重复