博主最近在看乘法器相关的知识,发现现在用的比较多的是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. Django模板系统:Template

    一.模板常用语法 1.1 变量 符号:{{ }} 表示变量,在模板渲染的时候替换成值 使用方式:{{ 变量名 }}:变量名由字母数字和下划线组成 点(.)在模板语言中有特殊的含义,用来获取对象的相应属 ...

  2. 配置WDA程序到NWBC

    NWBC是通过角色来做的权限管理,包括菜单项. 如果用户没有分配对应的,登陆后看到的东西很少,或者空白. 这里需要先将BC的个性化参数全部配齐,方便使用.BC最左上角,点击,设置,个性化设置. 如下几 ...

  3. 使用脚本安装elasticsearch7.3的记录

    使用脚本安装elasticsearch7.3的记录 #!/bin/sh # https://www.elastic.co/guide/en/elasticsearch/reference/curren ...

  4. python快速生成验证码

    利用python库random,string生成大小写字母和数字的随机验证码 import random import string def generate_code(bit_num): ''' : ...

  5. (原)堆叠hourglass网络

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/11486185.html 论文: https://arxiv.org/abs/1603.06937 官 ...

  6. Linux的DNS主从服务器部署

    下面的部署是在Linux的DNS正向解析部署上进行修改的. 如果有什么问题或者错误,可以访问上篇帖子 下面开始有关DNS的服务部署.<DNS主从服务器> 环境描述: 192.168.196 ...

  7. Flask中before_request与after_request使用

    目录 1.前提,装饰器的弊端 2.before_request与after_request 2.1 before_request分析: 2.2 after_request分析: 3.before_re ...

  8. CentOS 8 安装

    截止目前为止CentOS的最新版本为CentOS 8版本,接下来就介绍CentOS Linux 8.0.1905的安装过程 1. 安装CentOS 8 成功引导系统会显示如上图的界面: # 界面说明 ...

  9. No qualifying bean of type 'com.chinanums.agent.operation.service.component.OperationPageComponent' available:

    java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.conte ...

  10. Android Studio + uiautomator 配置运行

    1.在build.gradle中添加依赖: androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v1 ...