乘法器——Wallace树型乘法器
博主最近在看乘法器相关的知识,发现现在用的比较多的是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树型乘法器的更多相关文章
- 乘法器——基于Wallace树的4位乘法器实现
博主最近在学习加法器乘法等等相关知识,在学习乘法器booth编码加Wallace树压缩时,发现在压缩部分积的时候用到了进位保留加法器(Carry Save Adder),博主对这种加法器不是很理解,而 ...
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
- Rafy 领域实体框架 - 树型实体功能(自关联表)
在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解. 场景 在开发数据库应用程序时,往往会遇到自关联表的场景.例如,分类信息.组织架构中的部门.文件夹信息等,都 ...
- Mac:文件夹树型展示 tree
目标: 想要在MAC的Terminal中查看文件夹中所有文件的树型结构及文件夹.文件树统计. 安装方法: 1.brew安装 官网:http://brew.sh/ brew是Mac中安装软件的神器,一定 ...
- POJ3659 Cell Phone Network(树上最小支配集:树型DP)
题目求一棵树的最小支配数. 支配集,即把图的点分成两个集合,所有非支配集内的点都和支配集内的某一点相邻. 听说即使是二分图,最小支配集的求解也是还没多项式算法的.而树上求最小支配集树型DP就OK了. ...
- RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法
RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法 手风琴风格在Web应用非常的普遍,越来越多的Web应用都是采用这种方式来体现各个功能模块,传统的手风琴风格只支持 ...
- dzzoffice的树型结构用户管理设计
在DzzOffice1.1的开发中,针对用户使用群体重新设计了,机构.部门.用户管理应用. 传统OA,企业相关程序,一般是设置机构-设置部门-设置职位-添加用户这样的步骤.每个步骤分为不同的管理界面. ...
- php实现无限级树型菜单(函数递归算法)
首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为html代码.也可以将第二步和第三步合为一步. 详细如下:1.数据库设计:脚本如下:CREATE TABL ...
- VC中实现带有背景位图的树型控件
当前许多应用程序都在使用树型控件时为其添加了背景位图,增强的控件的魅力,然而对于Visual C++编程爱好者来说,使用Visual C++MFC提供的树型控件(CTreeCtrl)本身就是一个难点, ...
随机推荐
- itextpdf5生成document生成pdf的简单dome
package dbzx.pdf; import java.io.FileNotFoundException; import java.io.FileOutputStream; import org. ...
- ELK安装过程中一些注意的地方
安装流程比较简单,只需要下载安装包,解压安装包,修改配置文件,然后启动组件即可,但还是遇到一些小问题,这里做一下记录. 各个组件版本号需要保持一样,例如都使用7.1.1版本 es不能以root账户启用 ...
- matplotlib---画等高线
contour - 绘制等高线 mp.contour(x, y, z, 等高线条数,colors=颜色, linewidth=线宽)#等高线绘制 contourf - 填充等高线 mp.contour ...
- tf.Variable()、tf.get_variable()和tf.placeholder()
1.tf.Variable() tf.Variable(initializer,name) 功能:tf.Variable()创建变量时,name属性值允许重复,检查到相同名字的变量时,由自动别名机制创 ...
- GitHub 下载代码命令并且导入到IDEA环境
git clone项目到本地(项目有master和其他分支) 1.首先新建一个空文件夹,在文件夹里面git初始化操作,在文件夹的根目录下,右键选择git bash here,在弹出窗体中: ...
- 20-C#笔记-接口
# 1 接口的使用示例 使用interface,关键字 接口的实现和使用,和继承类似. 在使用之前,要实现接口. using System; interface IMyInterface { // 接 ...
- python 通过scapy获取网卡列表
python通过scapy 获取网卡列表如下: #coding:utf-8 from scapy.all import * #显示网卡信息 show_interfaces() 运行结果如下:
- history.back(-1)和history.go(-1)的区别 (有错误)
返回一个页面方法有很多,就好比给返回按钮绑定一个URL,但是如果一个页面可以从很多页面到达,那么这个页面返回的页面就不是固定的,那么绑定固定的URL显然不妥. 两个方法的区别 既然history.ba ...
- Educational Codeforces Round 78 (Rated for Div. 2) B - A and B(思维)
- I/O管理杂记
这是一篇杂记,记录了操作系统层面与I/O管理的零散知识点,用于温习使用.由于I/O管理是一个很大的范畴,后续会不断按照自己的生产需求来补充用的到的知识点.计算机系统是人造系统,没有绝对的对错(相对于自 ...