在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
楼主: Navyfield

[求助] 为啥FOR循环不能综合?

[复制链接]
发表于 2010-4-27 17:17:16 | 显示全部楼层
学习!!!!
回复 支持 反对

使用道具 举报

发表于 2010-4-27 17:22:39 | 显示全部楼层
用for循环在代码中的人有两种
1:verilog初学者
2:有很强的verilog编码经验的高手
两者的差别在于前者不知道最后的综合结果,后者则很熟悉
回复 支持 反对

使用道具 举报

发表于 2010-4-28 09:40:26 | 显示全部楼层
学习了,长见识了~
回复 支持 反对

使用道具 举报

发表于 2010-4-28 10:02:12 | 显示全部楼层
while不能用
for不建议用 。那遇到需要循环的咋办呢?
回复 支持 反对

使用道具 举报

发表于 2010-5-5 06:26:41 | 显示全部楼层
for文,一般不用再代码中。
回复 支持 反对

使用道具 举报

发表于 2011-6-11 11:36:41 | 显示全部楼层
回复 20# reinhart

顶20L
回复 支持 反对

使用道具 举报

发表于 2011-6-12 10:18:24 | 显示全部楼层
http://fpgaw.com/home/space.php?uid=2634
格雷码与二进制码的互相转换
回复 支持 反对

使用道具 举报

发表于 2011-6-14 16:11:32 | 显示全部楼层
尽量不要用FOR ,浪费资源啊。。。
回复 支持 反对

使用道具 举报

发表于 2011-6-15 00:47:39 | 显示全部楼层
for可以综合,举个例子 :
always @ (posedge clk)
if (rst) for(i=0;i<7;i=i+1)dis[i]<=0;else
if (sft)
begin
dis[0]<=cntr_base;
for(i=0;i<7;i=i+1)dis[i+1]<=dis[i];
end

这里面有两个for第一个实现清零,第个实现移动。是完全可以综合并且运行正确的。
我认为只要是能等效拆解成若干可综合语句的for循环是可以综合的。其实这就相当于以for的形式告诉编译器你要做的事情,事情本身是可综合的。
for(i=0;i<7;i=i+1)dis[i+1]<=dis[i];
这句 完全可以改成:
dis[1]<=dis[0];
dis[2]<=dis[1];
...
dis[7]<=dis[6];
这7条句子,用了for表达只是等效告诉编译器,我就要实现这个可综合的功能。编译器会知了,也就给你综合了。
不知道说明白了没有。
另外task也存在是否可综合的说法,其实原理和刚才说的for一样,就是透过性质看内容,看你表达的内容是否可综合。
回复 支持 反对

使用道具 举报

发表于 2011-6-15 12:07:37 | 显示全部楼层
for循环循环体内可综合成组合电路吧。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-14 18:35 , Processed in 0.017932 second(s), 3 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表