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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: yangxiaoyong

[讨论] 请大家看一下这种代码会有什么样的风险?

[复制链接]
发表于 2013-9-11 11:33:30 | 显示全部楼层
a的位宽是多少?  
      a <= a + 1'b1;
右边有被截断的风险吧
 楼主| 发表于 2013-9-11 16:22:48 | 显示全部楼层
回复 20# kingbirdmax


   这个就是准确的啊~
 楼主| 发表于 2013-9-11 16:23:44 | 显示全部楼层
回复 21# hiloco


   能具体解释一下吗?谢谢~
发表于 2013-9-11 16:48:58 | 显示全部楼层
凑热闹,看看到底风险在哪!
发表于 2013-9-11 17:53:56 | 显示全部楼层
本帖最后由 hiloco 于 2013-9-12 09:07 编辑

回复 23# yangxiaoyong


   我也是囫囵吞枣,如果不慎误人子弟不要怪我   不是问你a的位宽么,如果a的位宽大于1位, a + 1'b1的结果很可能是a[0] + 1'b1,然后再赋值给左边a,则高位自动补零
    a[N:1] <={N{1'b0}};
    a[0]    <= ~a[0];
发表于 2013-9-12 10:23:57 | 显示全部楼层
作为一个纯粹的受控计数器,没有任何问题,不管是仿真还是实现

可以问下你们头儿具体问题在哪里
 楼主| 发表于 2013-9-12 15:49:11 | 显示全部楼层
回复 25# hiloco


   我觉得 这个在所有的计数器中都不会有影响
 楼主| 发表于 2013-9-12 15:50:15 | 显示全部楼层
回复 26# yadog


    我决定不修改,等所谓内部审查的结果出来我再来分享给大家讨论~
发表于 2013-9-12 16:23:04 | 显示全部楼层
异步复位有没有同步到当前时钟域? 否则会有风险。
发表于 2013-9-12 17:24:49 | 显示全部楼层
可能是coding style不好吧,给你一个我写的参考一下,a_r就是a,我们这边一般都要求这么写,尽量不要在时序always块中加入运算逻辑,最多加一个使能信号(flag),一般逻辑运算都放在组合逻辑中完成。

assign a_p = a_r + 1'b1;
always @ (posedge clk or negedge rst_n)
begin
    if(!rst_n)
        a_r <= 'b0;
    else if(flag)
        a_r <= a_p;   
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-25 14:35 , Processed in 0.019992 second(s), 7 queries , Gzip On, Redis On.

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