原创 《CPU设计实战》-(4) Wallace tree 乘法器

2021-7-16 10:31 4801 15 4 分类: FPGA/CPLD 文集: 技术书籍读后感
《CPU设计实战》-(4) Wallace tree 乘法器
感谢“面包板社区”的评测机会,让我可以刷新自己的知识架构。
回顾一下:
================================================
我们目前还是停留在 第五章: 在流水线中添加运算类指令
================================================
用 FPGA 做逻辑设计时, 逻辑运算 其实并不是问题,即便逻辑表达非常复杂,也不成为是问题:  
    方法是利用 查找表 来破解:  事前把所有输入全部展开,并且计算出所有的运算结果,并写入查找表。
      --可以强制 把这一个步骤比喻成“训练阶段”; 而且真正的工作是“推理阶段”,只要把输入作为查找表的地址,一步就能查找得预存的结果。
         根本不需要与或非门来硬件实现哪些组合逻辑!
           这种方法结构简单,通用,几乎适应所有复杂情况,而且时序很好。
              唯一的缺点是 编译器 需要做大量的工作: 编译器需要实际展开逻辑表达式的每一路分支,展开所有的逻辑,得到最后的真值表。
                  但是让编译器 忙一点累一点,又有什么关系呢!
其实,用 FPGA 做逻辑设计时,唯一需要害怕的是:  时序!!  另一个比较关心的是 资源  !!
    不过 资源 和要实现的对象的规模, 是直接相关的,很难被进一步压缩;另一方面,资源使用得 很滥 的情况,其实是很难发生的。
         而时序则不同:时序和实现对象的规模几无关联:好时序也可以继续被优化;而一个不留神,综合出来的时序则可能非常得差劲!很好则非常难得!!
比如: 用Verilog 做逻辑设计做全加法器逻辑设计,最害怕的并不是用多少个加法器,占用多少资源;而是进位链 带来的时序问题。
       特别是 例如 0xFFFF_FFFF + 0xFFFF_FFFF,  从最低位一路进位到最高位的进位情况。会极大拉低了整体时序!

百度“Wallace tree”,说是2018年公布,难怪我不知道呢!
      华莱士(C.S. Wallace)于1964年提出的用多个保留进位加法器组成树形结构以实现快速乘法的一种结构。
其方法的要点是:
1)基本元素是 三加数的加法器, 输出 S 改位结果 和 C 进位结果
2)长加法,可以分为多段,都用 三加数加法器实现。 进位结果也参与加法运算
3)一直分段叠加,增加三加数加法器,直到最后得出最终结果

还是老样子,举例来说明: 考虑乘法1011 X 1110,计算过程如下:
                  1  0  1  1
              x   1  1  1  0
        ------------------------------
                  0  0  0  0             PP1
               1  0  1  1                PP2
            1  0  1  1                   PP3
         1  0  1  1                      PP4
        ------------------------------   
 中间结果有4个:PP1、PP2、PP3、PP4。
由于 只能用 三加法器,现在有 4个数据,所以,需要两个 三加法器。
第一个加法器:PP1 + PP2 +PP3的加法 == S1, C1
第二个加法器:PP3 + S1+ C1 == S2,C2
最后还需要一盒加法器, 把 S2+C2 计算出来。 这次用普通加法器就行了!

第一个加法器
PP1:                    0  0  0  0
PP2:                 1  0  1  1  0
PP3:              1  0  1  1  0  0
---------------------------------------
sum1              1  1  1  0  1  0
c1                0  0  0  1  0  0   

第二个加法器 
carry_in:         1  0  1  1  0  0  0
sum1              0  1  1  1  0  1  0                   
c1                0  0  0  1  0  0  0
---------------------------------------
sum2:             1  1  0  1  0  1  0
c2:              0  0  1  1  0  0  0

第三个普通加法器:
sum2:             1  1  0  1  0  1  0
c2:              0  1  1  0  0  0  0
---------------------------------------
product        1  0  0  1  1  0  1  0  

作者: 乖乖兔爸爸, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1729144.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

商业资讯 2021-8-3 15:33

学习了
相关推荐阅读
乖乖兔爸爸 2024-10-30 16:47
SerDes 技术这么火热,怎么找不到一本 权威的出版物呢 ?
SerDes 技术这么火热,怎么找不到一本 权威的出版物呢?例如《SerDes权威指南》,《SerDes技术大全》,《SerDes技术内部》,《SerDes从入门到精通》之类的?或者国外的权威教材?或...
乖乖兔爸爸 2024-10-08 14:37
鸿蒙 相关的硬件/软件/书籍, 有没有相关评测呀? 学习一下当作以后的技术储备啦~~~
鸿蒙 相关的硬件/软件/书籍, 有没有相关评测呀? 学习一下当作以后的技术储备啦~~~感觉现在这么重视,怎么没有很多的评测项目呀 ?还是生态没有发育好?...
乖乖兔爸爸 2024-09-16 17:39
【N32G401开发板】+点亮LED灯板,装备测试开发的坎坷之路
首先, 非常感谢面包板社区给我的这次评测机会.  有很多的工具需要时不时来温习. 学而时习之,温故知新,都是极好的事缘起:    我司使用的LED灯板,入库时只...
乖乖兔爸爸 2023-03-31 17:05
《移动终端人工智能技术与应用开发》+读后感(2)
《移动终端人工智能技术与应用开发》+读后感(2)  非常感谢面包板社区,给了我这个测评的机会。《移动终端人工智能技术与应用开发》+读后感(1)见这个链接  https://mbb....
乖乖兔爸爸 2023-03-29 18:52
《移动终端人工智能技术与应用开发》+读后感(1)
《移动终端人工智能技术与应用开发》+读后感(1)1:非常感谢面包板社区,给了我这个测评的机会。 本人一直关注着移动终端的应用开发技术,特别是在Windows平台上开发安装应用程序。 ...
乖乖兔爸爸 2022-03-01 16:36
百度员工想转岗,用百度搜索信息汇总发到百度内网,被炒鱿鱼后愤而诉诸法律,惜败诉
真是活久见,奇闻异事呀!百度员工杨某,想转岗到百度鉴黄师。为了提前熟悉业务,杨某用百度搜索 AV女优的公开信息,汇总后发到百度内网,可供订阅,不设权限,引得数万人看。推测:杨某 的本意是为了证明自己的...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条