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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 4772|回复: 18

[求助] verilog新手请教一个问题

[复制链接]
发表于 2010-7-8 10:39:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
for(counter=0;counter<4;counter=counter+1,a=a>>1,b=b<<1)
这条语句单从语法上来看有没有错误啊,就是第三个表达式上出现了三个式子,可以这样写吗?
还有如果是纯组合逻辑,那么for语句的控制语句中如果有赋值语句是不是必须用assign赋值啊?
发表于 2010-7-8 11:29:33 | 显示全部楼层
RTL代吗尽量不要使用for循环。。
assign是连续驱动语句,不能用在过程块中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-8 12:58:15 | 显示全部楼层
谢谢楼上的建议,,语法还待加强。。。
回复 支持 反对

使用道具 举报

发表于 2010-7-8 15:49:00 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-8 15:53:24 | 显示全部楼层
综合的时候会出现麻烦?那可以用while吗?
回复 支持 反对

使用道具 举报

发表于 2010-7-8 18:23:08 | 显示全部楼层
以RTL的觀點來看, for語法其實就是電路的複製. 例如

reg [511:0] a;
reg [7:0] b;
integer i;

always @(*)
begin
    for (i = 0; i < 512/8; i = i + 8)
    begin
        a[i+7:i] = b;
    end
end

其實就等同於

always @(*)
begin
    a[7:0] = b;
    a[15:8] = b;
    a[23:16] = b;
    a[31:24] = b;
    ....
end

我想在實現一些algorithm相關的電路上會很實用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-8 18:45:30 | 显示全部楼层
还是有点迷糊,我想应该在实践的基础上多理解,,它总有好与不好的地方
回复 支持 反对

使用道具 举报

发表于 2010-7-8 23:20:52 | 显示全部楼层
for语句会将描述综合成组合逻辑,而非时序逻辑,repeat while forever这些就更不靠谱了,如果你要驱动计数器,仍然需要时钟驱动触发器完成功能而不是用个for就搞定的。语法上没有错误,只是不清楚你打算用这块逻辑干什么,难不成是仿真什么东西?
回复 支持 反对

使用道具 举报

发表于 2010-7-9 11:12:35 | 显示全部楼层
1# shxr
貌似C语言啊,一般不用for循环!除非用作验证、仿真!
回复 支持 反对

使用道具 举报

发表于 2010-7-9 11:21:32 | 显示全部楼层
学习。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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


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

GMT+8, 2025-9-12 16:58 , Processed in 0.016886 second(s), 3 queries , Gzip On, Redis On.

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