博主最近在看乘法器相关的知识,发现现在用的比较多的是booth编码的乘法器和Wallace树型乘法器,当然两者并不是互斥的关系,他们也可以结合使用。在这里给大家介绍一下Wallace树型乘法器,希望能对大家有所帮助。

首先我们以两个无符号8位二进制数相乘为例来说明Wallace树的算法。由图1所示,图中8位二进制数a和8位二进制数b相乘,产生64个乘积项,记做a[i]*b[j],i,j=0、1、2、3、4、5、6、7,在本文中,乘号用*来表示,在图中也将a[i]*b[j]用*表示。处在同一列的所有乘积项与从右边过来的进位相加,得到乘积的一位结果,由于64个乘积项可以用64个与门同时得到,即a*b=a&b,我们可以用多个全加器对处在同一列的乘积项同时相加。

  一个全加器有三位输入和两位输出,其中一个输出为加法结果(sum),另一个输出为进位(cout)。图中一个长方形代表一个全加器,内部有两个*的长方形可以用半加器实现,圆圈中的单个乘积暂时不做处理,送入下一级参与运算。这样即实现了3-2压缩,因为全加器是3输入2输出的。

图1 8*8Wallace树型乘法器乘积项

  图2表示了第07位的运算情况,07位有8个乘积项,他们分别是a[7]*b[0]、a[6]*b[1]、a[5]*b[2]、a[4]*b[3]、a[3]*b[4]、a[2]*b[5]、a[1]*b[6]、a[0]*b[7],每一项a和b的[]中的数字之和为7。

图2 8*8Wallace树型乘法器第07位

在第一级,我们使用3个全加器,产生3位相加结果与3位进位。3位进位送到左边的第08位。第二级有5位相加,其中3位来自第一级,两位是来自右边06位的进位,第二级使用了两个全加器。第三级和第四级都使用了1个全加器,由于每一级各自的全加器是并行的,故每一级的延迟只相当于一个全加器的延迟,我们把第四级的输出分成sum和cout两组,再把它们用进位传播加法器相加,得到最后的结果,即乘积。

图三所示为8*8Wallace树型乘法器总体电路图,图中第一行数字是乘积位的编号,第二行数字是相应位的乘积项数量。加法器的数字是该加法器名称的右半部分,左半部分在图中的最左侧给出。如左下角最后一个加法器的名称为fal_14_0。

图3 8*8Wallace树型乘法器总体电路图

以上就是Wallace树型加法器的基本原理。

乘法器——Wallace树型乘法器的更多相关文章

  1. 乘法器——基于Wallace树的4位乘法器实现

    博主最近在学习加法器乘法等等相关知识,在学习乘法器booth编码加Wallace树压缩时,发现在压缩部分积的时候用到了进位保留加法器(Carry Save Adder),博主对这种加法器不是很理解,而 ...

  2. ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单

    前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...

  3. Rafy 领域实体框架 - 树型实体功能(自关联表)

      在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解. 场景 在开发数据库应用程序时,往往会遇到自关联表的场景.例如,分类信息.组织架构中的部门.文件夹信息等,都 ...

  4. Mac:文件夹树型展示 tree

    目标: 想要在MAC的Terminal中查看文件夹中所有文件的树型结构及文件夹.文件树统计. 安装方法: 1.brew安装 官网:http://brew.sh/ brew是Mac中安装软件的神器,一定 ...

  5. POJ3659 Cell Phone Network(树上最小支配集:树型DP)

    题目求一棵树的最小支配数. 支配集,即把图的点分成两个集合,所有非支配集内的点都和支配集内的某一点相邻. 听说即使是二分图,最小支配集的求解也是还没多项式算法的.而树上求最小支配集树型DP就OK了. ...

  6. RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法

    RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法 手风琴风格在Web应用非常的普遍,越来越多的Web应用都是采用这种方式来体现各个功能模块,传统的手风琴风格只支持 ...

  7. dzzoffice的树型结构用户管理设计

    在DzzOffice1.1的开发中,针对用户使用群体重新设计了,机构.部门.用户管理应用. 传统OA,企业相关程序,一般是设置机构-设置部门-设置职位-添加用户这样的步骤.每个步骤分为不同的管理界面. ...

  8. php实现无限级树型菜单(函数递归算法)

    首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为html代码.也可以将第二步和第三步合为一步. 详细如下:1.数据库设计:脚本如下:CREATE TABL ...

  9. VC中实现带有背景位图的树型控件

    当前许多应用程序都在使用树型控件时为其添加了背景位图,增强的控件的魅力,然而对于Visual C++编程爱好者来说,使用Visual C++MFC提供的树型控件(CTreeCtrl)本身就是一个难点, ...

随机推荐

  1. Qt for Android修改应用程序的图标和名称

    使用QT开发出的Android Apk安装后默认的图标是安卓的小机器人,下面介绍在QT5.12版本上修改APP名称和图标的方法. 1.  编译一次项目后,在编译目录下找到AndroidManifest ...

  2. android studio学习----通过libs来导入jar包

    百度经验有一种方法: 1 点击启动AndroidStudio,启动后的界面如图所示. 2 复制你需要添加的jar,并将其黏贴到app— —src— —main— —libs文件夹下,可运行的Andro ...

  3. 下载win10系统

    有时候想重装系统但总找不到下载的地方,今天记录一下.nsdn我告诉你,这里有许多软件下载 网站URL:https://msdn.itellyou.cn/ 我想下载一个Windows10 磁力地址 ed ...

  4. 学点经济学:M0、M1、M2、M3,傻傻分不清?(转载)

    来源:http://t.10jqka.com.cn/pid_97006727.shtml 学点经济学:M0.M1.M2.M3,傻傻分不清? 25,508人浏览 2018-08-03 11:06 常听人 ...

  5. 记录一个h5页面生成canvas画布做签名的js插件--signature_pad

    demo地址:https://jsfiddle.net/02dLn15g/5/ GitHub地址:https://github.com/szimek/signature_pad 配置项: dotSiz ...

  6. provisional headers are shown 一例

    系统首页的ajax调用出现 报错: provisional headers are shown 最后查到的原因时,mysql数据库的磁盘满了,而首页的ajax调用要插入一条记录到数据库,卡住了.

  7. windows开启PostgreSQL数据库远程访问

    1.在PostgreSQL安装目录下data文件夹,打开pg_hba.conf文件,新增允许访问的ip 2.打开postgresql.conf,将listen_addresses = 'localho ...

  8. Centos 7 解决free -m 下buff/cache缓存很高

    Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是linux内存管理中 ...

  9. 设置linux代理完成apt-get

    最近ubuntu的服务器被公司关闭了外网使用权限,但是安装软件又需要连接外网,那么就只能通过代理来连接了. 先按照下面的这篇帖子来设置windows端的代理. https://blog.csdn.ne ...

  10. C#中的函数(二) 有参有返回值的函数

    接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写 ...