芯路恒电子技术论坛

 找回密码
 立即注册

扫一扫,访问微社区

热搜: 活动
查看: 502|回复: 2

对AC620图像处理教程中部分读者疑问解答

[复制链接]
  • TA的每日心情
    开心
    2018-10-24 21:56
  • 91

    主题

    192

    帖子

    8609

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8609
    发表于 2018-6-25 10:52:01 | 显示全部楼层 |阅读模式
    今天有网友在群里问了我们的图像处理教程之RGB转灰度图像源码里的这样一段代码是什么意思:  gray_r <= {sum,6'b000000}+{sum,4'b0000}+ {sum,2'b00} + sum;
    并询问这条语句是等同于sum*13么  


    网友认为是等同于sum*13,应该当成乘法结合律来算了。网友的观点部分正确,实际上这个就是乘法结合律,只不过她错误的理解了每一项中{sum, n'b000}的意义,这个操作属于位拼接,将数据的低位放到高位,然后低位补0,实质就是左移,而左移我们知道相当于乘法,左移n位就是乘以2^(n-1),所以,这个表达式的最终演化过程为:

    gray_r <= {sum,6'b000000}+{sum,4'b0000}+ {sum,2'b00} + sum;
      gray_r <= sum << 6 + sum << 4+ sum << 2 + sum;
      gray_r <= sum *64 + sum * 16+ sum * 4 + sum;
      gray_r <= sum*(64+16+4+1);
      gray_r <= sum*85;   



    可以看到,实质就是实现了sum*85。这个考虑是对乘法进行了分解,将乘法使用移位相加的方式代替了。这样在器件中没有乘法器的时候可以加快运算速度。当然,现在的fpga中已经都集成了有乘法器了,所以这个操作在FPGA中教学意义大于实际意义,而在CPLD这样的不含硬件乘法器的器件中,却是非常有价值的。
    工程文件包有点大,这里就补上传了,欢迎大家在我们的芯路恒各大FPGA技术QQ群文件下载。


    大家在学习这个教程时候,如果有更多疑问,也可以直接在本帖下回复,描述清楚您的疑惑。我们也会及时为您解答。




    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:21
  • 18

    主题

    227

    帖子

    3192

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    3192
    发表于 2018-6-25 11:02:56 | 显示全部楼层
    很棒的文章,支持~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 3

    主题

    21

    帖子

    344

    积分

    中级会员

    Rank: 4

    积分
    344
    发表于 2018-6-25 12:16:50 | 显示全部楼层
    很棒,认真学习一下:)
    回复 支持 反对

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|手机版|Archiver|芯路恒电子技术论坛  

    GMT+8, 2018-11-15 08:00 , Processed in 0.111759 second(s), 11 queries , File On.

    Powered by Discuz! X3.3

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表