原码一位乘法器设计_数字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中对于多幅点云连续配…

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

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

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

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

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

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

添加javascript代码:_JavaScript(1)

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

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

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

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

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

maven 镜像_Maven(一)

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

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

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

使用通用mapper实现条件查询_【微服务】152:Stream流和通用mapper批量查询的使用...

今天是刘小爱自学Java的第152天。感谢你的观看,谢谢你。学习计划安排如下:补充完昨天商品查询中关于分类和品牌的部分,其中牵扯到了两个非常重要的知识点:Stream流的使用,这个学过后基本就没怎么使用过,这次…

java递归实现多级菜单栏_vue+ java 实现多级菜单递归效果

效果如图:大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可。有两个需要关注的点:1.官方事例的数据结构是一个对象里面包含着集合,而不是一个集合对象 2…

mfc打开一个.txt文件并进行处理_文件处理方法Python

你好,我是goldsunC让我们一起进步吧!1. 文件说明文件是存储在存储器上的数据序列,在计算机中,所有文件都是以二进制的方式进行存储的,而文件的展示形式一般分为两种:文本形式和二进制形式。文本文件由单一特…

qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...

前面几篇文章中,给大家介绍了一些excel的基本操作技巧,以及如何高效地浏览表格。相信大家多少都会获得一点收获,希望能够为大家提供一些工作上的帮助。工作中,老板经常会安排我们手动输入一些数据,考虑到我们要不停的手…

如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表;故放弃该办法,最终解决办法如下:一.打开mysql 命令行客户端这里我们那可以看到导出的数据文件所存放的默认位置 C:\ProgramData\MySQL\MySQL …

qchart画完以后删除_冬天的夜晚很难画?老师分步骤教你画,简单易学,收藏起来临摹...

今日绘画主题:冬天的夜晚冬天是美好的,也是很多画家喜欢创作的题材之一,但是,冬天的夜晚却是很难画,今天分步骤图解教大家画冬天的夜晚,快收藏起来临摹吧。>>>【第一步】:先来画线稿&a…

lrtemplate如何导入pr_PR模板使用套路讲解 视频剪辑教程

​pr模板在使用的时候需要注意的事项以及如何正确操作https://www.zhihu.com/video/1237765482302226432pr模板在使用的时候需要【注意的事项】1、下载的模板必须解压后使用2、下载模板的时候网站上页面都会有介绍模版所支持的版本3、弹出不同版本的提示窗口,点击确…

linux没有usr目录_了解linux系统目录,sys,tmp,usr,var!

linux小白到大神的成长之路:了解linux系统目录,sys,tmp,usr,var!本经验由宗龙龙原创,全文共600多字,阅读需要14分钟,如果文中存在错误,还请大家多多指点,我会积极改进的!​这篇文章将…

svd奇异值分解_奇异值分解SVD

点击上方蓝字关注我们奇异值分解(SVD)在计算机视觉中有着广泛的应用,如数据降维、推荐系统、自然语言处理等。本文是介绍SVD的数学计算过程,并从SVD的性质说明其应用的原理。01特征值与特征向量奇异值分解(SVD)与特征分解类似,是将矩阵分解为…

python turtle画房子详细解释_[宜配屋]听图阁

我就废话不多说了,直接上代码吧!import turtletturtle.Turtle()turtle.Turtle().screen.delay(0)tleftturtle.Turtle()#第一部分t.penup()t.goto(0,0)t.pendown()t.left(20)t.forward(110)t.left(25)t.forward(40)t.left(100)t.circle(180,20)t.right(12…

简易航空订票系统_四川航空APP全新升级改版,三大亮点提升订票体验

成都2015年10月23日电 /美通社/ -- 四川航空发布手机APP全新的3.0版本,不仅针对界面风格做了全新改变,在iOS9、安卓系统上的展示更加炫丽;而且在机票预订、航班动态、特价机票方面均做了大幅升级,会员服务也更加贴心。对于有机票需…