【问题标题】:For logic implementation in System Verilog用于 System Verilog 中的逻辑实现
【发布时间】:2015-05-27 22:24:48
【问题描述】:

我刚刚学习 HDL,我对如何在 System Verilog 中实现 for 循环感兴趣。

使用以下代码...

always_ff(posedge clk)

begin

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

end

我最终会在逻辑中使用 32 个加法器并且它们都同时执行吗?还是以某种方式顺序执行加法?

谢谢 博斯科

【问题讨论】:

标签: for-loop logic fpga system-verilog hdl


【解决方案1】:

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

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

你的例子:

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

【讨论】:

    猜你喜欢
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多