原码一位乘法器设计_数字IC校招基础知识点复习(七)——超前进位加法器、Wallace树、Booth乘法器...

1.超前进位加法器

看了一些面经,提到会让你用基础的门搭加法器,因此首先得熟悉半加器,全加器等最基础的加法器才能理解之后的超前进位加法器,树型加法器等复杂的加法器。

半加器的输入为a,b,输出为结果s和进位c,则其关系为

全加器的输入多了一个进位cin,输出为结果位s和进位输出cout,则其关系为

使用多个全加器级联,把每一级的进位输出作为下一级的进位输入即构成了行波进位加法器,其加法过程是很好理解的,就是从最低位开始一位一位运算,并且把低位的进位加到高位上,与手算的思路是一致的。其结构如图所示。

417a48cdd0e3cdb8ae013eef84aad42b.png

但若是画出其门级的电路图我们会发现,由于采用级联结构,行波进位加法器的关键路径非常长,N比特行波进位加法器的最长路径位

个门电路延迟,在高速处理器中将极大地限制电路的性能。因此诞生了超前进位加法器以改善关键路径,其主要思想是将所有的进位都并行进行,为此需对原始的加法器计算公式做一些改动。令

则对于N比特超前进位加法器,其结果位和进位可写成如下的形式

则通过迭代

的表达式,可将其写成只包含
的表达式,从而完成并行计算。以4bit超前进位加法器为例,其进位链公式计算如下

02ac1d3dcfc779ae539ca27f49097968.png

则对应的,超前进位加法器结构如图所示。

faed51cd51c040913ca862dc48033733.png

对于更大位宽的,例如32,64bit的加法运算,为了避免造成电路的扇入扇出过大,会用多个4bit超前进位加法器级联,从而获得一个折中的解决方案。

从关键路径上来看,4bit超前进位加法器的进位都只需要经过3级门电路延迟即可得到,相比较于行波进位加法器有巨大的优势,即使级联构成更大位宽的加法器仍然缩短了关键路径的长度。

2.Wallace树型结构

话说这Wallace是不是该翻译成华莱士呢,嗯~亦可赛艇啊。

要理解Wallace树需要先理解进位保存加法器。进位保存加法器以三个树作为输入,输出两个数,这两个数相加即为最终的加法结果,因此进位保存加法器相当于进行了一次压缩过程,将三个数的加法压缩为两个数的加法。然而进位保存加法器并不是什么新奇的黑科技,而是全加器的一个变形,如下图所示。

f540edf839e4d7cdbd393b99d5a87862.png

从图中可以看出,进位保存加法器就是对全加器进行重新包装。

熟悉了进位保存加法器后我们就可以来看Wallace树型结构了,其总体结构如下图所示。

c8f2d3eeebbbe2117a0990843bfba1b6.png

可以看出,树型结构就是将多个加数分组,每三个分为一组后,经过进位保存加法器压缩为2个数,如此迭代循环得到最终加法的结果。

在乘法器中,乘法的积是多个部分和之和,若使用普通加法器,则需等待前面的部分和计算完成才能计算后面的部分和,延迟较高,因此可以使用Wallace树型结构,对部分和进行分组计算得到最后的总和结果,即为乘法的积。

3.Booth乘法器

若是用补码表示一个数,则其转换为十进制的计算方式为

将其展开,并令

,则可以得到

此时再计算乘法

可得

从上式可以看出,这样变化的优势是若B的某相邻两位相同,则可以省去运算而只进行移位即可。如果

,则为
,如果
,则为
,从而简化了运算过程。

以上是Radix-2 Booth算法的推导,其算法流程如下

1.被乘数和乘数分别放入A,B寄存器,中间结果放入M,B寄存器。
2.另设置一个1bit的
寄存器。将M,
寄存器初始为0。

3.在每个周期检查
寄存器。

4-1.若
= 00 或 11,将{
}直接右移1bit。

4-2.若{
} = 01,则A与M相加,将{
}直接右移1bit。

4-3.若{
} = 10,则A与M相减,将{
}直接右移1bit。

5.最终的结果即为{M,B},是乘法积的补码表示。

需要注意的是,上述所有数都是补码表示,且上述右移操作需保留符号位,即保持M的最高位不变。

在实际应用中较常用的是Radix-4 Booth乘法器,与Radix-2类似,其算法可通过原始的补码计算式展开得到

上式中的

设置为0。Radix-4 Booth编码表如下表所示。

feda752975167cf6ba72d18102b9148f.png

不难看出,相较于Radix-2 Booth算法,Radix-4 Booth算法需要的循环次数更少,因此在实际中应用更加广泛。

参考链接

关于乘法器和加法器,如下的专栏讲述的非常详细,可以作为参考。

纸上谈芯:【HDL系列】超前进位加法器原理与设计​zhuanlan.zhihu.com
85fb741452a67461022499f6b1027353.png
纸上谈芯:【HDL系列】乘法器(4)——图解Wallace树​zhuanlan.zhihu.com
65e66af369368ede50f705ea443523a5.png
纸上谈芯:【HDL系列】乘法器(5)——Radix-2 Booth乘法器​zhuanlan.zhihu.com
407f7766c1a01399aa681cb4a2e95d74.png
纸上谈芯:【HDL系列】乘法器(6)——Radix-4 Booth乘法器​zhuanlan.zhihu.com
5f84eb953110dcf202f77be7f91d0831.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保存点云数据_3D点云配准(二多幅点云配准)

本文首发于微信公众号「3D视觉工坊」:3D点云配准(二多幅点云配准) 在上一篇文章 点云配准(一 两两配准)中我们介绍了两两点云之间的配准原理。本篇文章,我们主要介绍一下PCL中对于多幅点云连续配…

python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

url存在宽字节跨站漏洞_5分钟速览丨常见的Web安全漏洞及测试方法

中秋小长假“余额”就剩半天了尽管心里有太多不舍也要调整自己毕竟假期都是短暂的工作才是职场人生的常态为了尽快消除“假日综合症”e小安贴心送上小文一篇小伙伴们赶紧“脉动”回来吧各类web应用充斥在我们的网络生活中,但是因为开发者安全意识不强而导致的安全问…

9切换中文mac_超详细的Mac重装系统教程!让重装系统变得简单起来!

mac电脑该怎么重装系统?苹果电脑在长时间使用后,系统可能会变得比较慢,另外各种缓存垃圾也会越堆越多,影响电脑的反应速度。mac OS系统是苹果电脑独有的操作系统,重装mac系统过程和Win系统完全不同,所以第一次使用苹果电脑的用户都…

python允许无止境的循环_ParisGabriel:Python无止境 day03

print(“hello world”)变量 : 存储信息的,日后被调用、修改操作常量: 固定不变的量,字母大写命名规则:1. 字母数字下划线组成2. 不能以数字开头,不能含有特殊字符和空格3. 不能以保留字命名4. 不能以中文命…

delphi datasnap断线后再次连接_电脑连接WiFi后经常出现断线断开连接问题的解决方法...

电脑连接WiFi总是断线怎么办?有用户的笔记本在连接无线网络后,一直出现断线问题,并且网速也很慢,这是怎么回事?电脑连接WiFi后经常断开连接该如何解决?下面给大家分享具体操作步骤。操作步骤:1、…

linux系统安装python包_Linux系统安装Python

Linux系统处带的是Python2,一直用Python3.6Django2进行开发,于是在Linux上安装Python3,安装过程如下:(1)、在官网下载“Gzipped source tarball”版本,上传到:/usr/local/,然后解压tar包:tar -x…

python程序发布 ubuntu_在ubuntu16.04的虚拟环境中运行Python程序作为服务

我正在尝试让一个FlaskSocketIO应用程序作为一个服务在ubuntu16.04上运行,在一个虚拟环境中。我的服务器每天凌晨3点重新启动(超出我的控制范围),所以我需要它在启动时自动启动。在运行脚本本身可以正常工作:$ python main.py(29539) wsgi st…

添加javascript代码:_JavaScript(1)

一、JavaScript组成1.ECMAScript:是ECMA制定的脚本语言的语法标准,基础语法的规范,为了让不同的浏览器都可以运行通过标准运行出来的代码。2.文档对象模型(DOM):JavaScript操作网页上的元素(标签)的API。3.浏览器对象模型(BOM)&am…

win 8 共享连接数是多少_局域网IP限速怎么配置,限速多少比较合适

由于视频和下载可以轻易的占用大量带宽,为了网络的稳定运行,大部分局域网都会对客户端进行一定的限速。本文中,我将介绍如何根据带宽来做限速,限速设置多少比较合理?1. 限速多少比较合理?正常的办公上网&am…

华农软件工程实验报告_华南农业大学的软件工程怎么样?

2019.07.08 更新 就是从2016年开始,废除数学与信息学院的软件工程。取而代之的是,在软件学院开通一个新专业——软件工程(温氏阿里创新班),所以现在软件学院就有两个专业了(软件工程、软件工程(温氏阿里创新班))。另外一个就是软件学院的实习…

xp 4g内存补丁_32位操作系统导致电脑可用内存不足4G

现象描述今天给大家分享一个关于电脑使用的小知识:电脑安装32位操作系统,导致电脑可用内存低于4G。详细解释一下:如果你的电脑安装的操作系统是32位操作系统,无论你电脑安装了多大的内存,可用内存都不会超过4G&#xf…

statuml怎么添加用户_UML课后习题答案

第1章UML概述1. 请指出UML的三个主要的特性。1)UML是一种语言2)UML是用来建模的3)UML是统一的标准2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。1)电路图:电子产品设计、生产、维修2)园区沙盘:直…

maven 镜像_Maven(一)

1. 掌握M2Elipse插件安装及Maven仓库的配置2. 掌握Maven工程目录结构和创建工程3. 掌握Maven工程的关系4. 掌握Maven常见的插件5. 掌握Maven命令壹、什么是 Maven在Maven中,可以理解为所有的项目都是一个个的对象。贰、Maven 和 ANT 的区别叁、 Maven 的下载与 IDE …

机器人被抢走ntr_(科普)当被NTR剧情虐到的时候怎么办

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼因为最近NTR剧情略多.很多人被虐的睡不着觉..所以直插主题1.心理强大的人只需看看 萌漫 治愈(后宫)番 萌拔 逆角色ntr gal.就可以了..萌漫推荐 小埋..很短很温馨....(我的心灵很弱小所以看完之后又会想起被虐的场景..跪)2.(此方法涉…

文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit

QPlainTextEdit简介QPlainTextEdit小部件是一个用于编辑和显示纯文本控件,QPlainTextEdit控件与QTextEdit控件使用了相同的技术和概念,但是它为纯文本处理提供了优化。QPlainTextEdit是一个支持纯文本的高级查看器/编辑器,可以处理大型文档并…

朗读评价语言集锦_评语大全之朗诵评语艺术表现力

朗诵评语艺术表现力【篇一:古诗词诵读比赛评价表】诗歌朗诵比赛评分表评分细则总分100分1.普通话25分吐字清晰,普通话标准2.流利程度20分。朗诵熟练,声音洪亮,正确把握诗歌节奏,韵律明显。若能够脱稿&#…

python logging使用_Python实战之logging模块使用详解

用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所以Python引入了logging模块来…

boat启动器 minecraft_minecraft boat

minecraft boat启动器是一款针对我的世界游戏的启动工具,有了minecraft boat启动器我们就可以在手机上畅玩电脑中的游戏,支持中文,操作起来很方便。让玩家可以尽情地在这个开放世界中冒险和创作,这里为大家展现了一个非常开放的世…

python 数据库接口_Python3笔记050 - 11.1 数据库接口

第11章 使用python操作数据库11.1 数据库接口python3连接mysql需要安装pymysql模块;1、本地安装:pycharm版本是2019.3;python版本是3.7.3;pymysql版本是0.10.0;2、远程安装:虚拟机内安装centos7系统&#x…