芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 5791|回复: 2

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

[复制链接]
  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 422

    主题

    780

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15848
    QQ
    发表于 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的每日心情
    开心
    2022-6-29 15:57
  • 13

    主题

    246

    帖子

    3625

    积分

    超级版主

    Rank: 8Rank: 8

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

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-25 15:20
  • 3

    主题

    19

    帖子

    373

    积分

    中级会员

    Rank: 4

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

    使用道具 举报

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

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-20 16:49 , Processed in 0.111761 second(s), 34 queries .

    Powered by Discuz! X3.4

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

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