用于 System Verilog 中的逻辑实现
Posted
技术标签:
【中文标题】用于 System Verilog 中的逻辑实现【英文标题】:For logic implementation in 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 in Verilog 的可能重复项 【参考方案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
【讨论】:
以上是关于用于 System Verilog 中的逻辑实现的主要内容,如果未能解决你的问题,请参考以下文章
System Verilog Assertion for debug