微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog可否综合的问题

verilog可否综合的问题

时间:10-02 整理:3721RD 点击:
编verilog程序的时候总是避免去写for循环,因为觉得是不可综合的。
但是最近在FIR数字滤波器的设计,发现有些资料和教材上的程序示例是有for循环的,所以现在比较困惑,到底for循环可不可综合?

for不是不能被综合,而是被展开,
如for(i = 0; i<8 ; i = i + 1)
din[i]<= ...
那相当于din[1], din[2], din[3]...等8个寄存器都被赋值,
主要多的用于重复的结构,比如FIR,

楼上正解。不过个人还是从来不用for。结构不好控制。

二楼正解, 用于展开没有任何问题

还是不用for循环的好

2楼正解,for可以综合
综合工具综合时会把它展开
一般不推荐用

2# eaglelsb
嗯,明白了,多谢了

看情形,有些时候使用for会使代码结构更清晰
而且大大减小代码量

8# jeery_lee 嗯,同意你的说法....

大量完全重复性的信号赋值或模块声明用for没问题

学习了啊,,,

感謝樓主!

for不是不能被综合,而是被展开
这样结构上就很不好控制
也不是很好理解,所以一般不建议使用
但是在给RAM或ROM赋初始值时可以使用的

TB的里用过 但是设计里边从没用过

学习了

我是从来不用的。

岁月流th

我知道用for语句描述的移位寄存器是可以综合的,例如:
always @ (posedge clk)
begin: A
integer i;
   for(i=0;i<15;i=i+1)
      out[i+1]<=out[i];
end

对的 就是一个个都被展开的 很浪费资源  不推荐这样使用
2# eaglelsb

#2正解。

Can try to use
generate
for (i=0; i<N; i=i+1 )
  always (   )
end
endgenerate

for可以综合,
除非你for后面的代码是不可综合的

可以综合, 但受到一定的限制.

可以先写成展开的形式, 再用for改写.

可不可以综合的问题不要死扣语法,想想你要实现的电路的大致物理结构就OK了

具体情况具体分析吧
牢记你写的每句代码都是要用电路实现的
有些地方用for可以让代码看起来更简洁

FOR只要用确定的数来控制好像就能综合

for循环可综合成重复的硬件结构!

这个可以综合

学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top