乘法器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
物理与电子工程学院集成电路设计课程论文题目:乘法器的研究
学生姓名:XXX
指导教师:XXX 201X年XX月XX日
乘法器
摘要:乘法器,其基础就是加法器结构,它已经是现代计算机中必不可少的一部分。
乘法器的模型就是基于“移位和相加”的算法。本文讨论基本的阵列乘法器,以及产生部分
积和最终求和。
关键词:全加器,半加器,阵列。
引言: 乘法运算非常耗费硬件面积并且速度很慢,许多计算问题解决的快慢受乘法器电
路工作速度的约束,因此在现代高级的数字信号处理器和微处理器中都集成了硬件乘法单
元。并且乘法器在当今数字信号处理以及其他诸多应用领域中起着十分重要的作用。随着科
学技术的发展,许多研究人员已经开始试图设计一类拥有更高速率和低功耗,布局规律占用
面积小,集成度高的乘法器。这样,就能让它们更加适用于高速率,低功耗的大规模集成电
路的应用当中。通常的乘法计算方法是添加和位移的算法。在并行乘法器当中,相加的部分乘积的数量是主要的参数。它决定了乘法器的性能。为了减少相加的部分乘积的数量,修正
的Booth 算法是最常用的一类算法。但是,随着并行化的增多,大量的部分乘积和中间求和
的增加,会导致运行速度的下降。不规则的结构会增加硅板的面积,并且由于路由复杂而导
致中间连接过程的增多继而导致功耗的增大。另一方面串并行乘法器牺牲了运行速度来获得
更好的性能和功耗。因此,选择一款并行或串行乘法器实际上取决于它的应用性质。
主体
1.1.1二进制乘法定义
考虑两个无符号二进制数X 和Y ,X 为M 位宽,Y 为N 位宽,将它们用下列二进制数形
式表达
i 1
-M 0i i 2X X ∑== (1.1)
j 1
-N 0j j 2Y Y ∑== (1.2)
其中i X 和j Y 为0或者1,那么X 和Y 的乘法运算定义如下
Z=X ×Y=
k 1
-N M 0k k 2Z ∑+= =(i M i i X 210∑-=)(j
1-N 0j j 2Y ∑=)=∑∑=-=+⎪⎪⎭⎫ ⎝⎛1-M 0i 10j 2N j i j i Y X (1.3) 我们先来看一下手工是如何进行二进制乘法运算的。如图1-1所示,被乘数与乘数的第一个
位相乘(实际为“与”操作)产生积,并且根据乘数相应位的位置对部分积进行左移(例如,
被乘数与乘数的第0位相乘,则不移位;与第一位相乘,部分积左移1位,以此类推),最
终将所有的部分积相加得到乘法运算的结果。M 位被乘数与N 位乘数相乘得到的乘积是
M+N 位的。
1.1.2部分积生成
部分积是由被乘数X 与乘数的位i Y 进行“与”操作得到的,如图1-2所示部分积阵列中, 101010 被乘数 每行或者是被乘数,或者是全0。对部分积产
× 1011 乘数 生电路进行仔细优化,可以大大减少延时时间 和面积。我们注意到,在部分积阵列中有许多
101010 全0的行,他对运算结果是没有影响的。如
101010 部分积 果乘数位全为1,则所有部分积都存在并参与
000000 运算;如果乘数位全为0,则一个部分积也不
+ 101010 会产生。由此我们可以得到将部分积个数减
少到乘数位数的一半。
1110011110 结果
图1-1 二进制乘法计算
X 1X 2X 3X 4X 6X 5X 7X i Y
PP 1PP 2PP 3PP 4PP 5PP 6PP 7PP 图1-2
我们举例来说明,假设一个8位乘数为01111110,它将产生6个非0的部分积。如果
将乘数重新编码成不同的格式,如10000010其中1代表-1.可以证明这个数字和01111110
是相等的。但新的乘数只需要产生2个部分积,当然最终的求和电路也必须可以完成减法
运算。这种编码转换称为Booth 编码,可以将部分积的个数减少到最多为乘数位数的一半。
他确保乘数的每两个连续位中至多有一位是1或者-1。减少了部分积德个数就相当于减少了
加法运算步骤,也就是减少了面积,提高了运算速度。
1.1.3阵列乘法器
部分积产生之后,要对其进行累加。部分积的累加实际上是被乘数的加法,最直接的方
法就是使用一个加法器阵列,这正是阵列乘法器名字的由来。图1-3是一个4×4阵列乘法
器的组成结构的例子。图中3X ~0X 是被乘数,3Y ~0Y 是乘数,7Z ~0Z 是乘积。图1-3的
电路是和图1-1手工乘法计算在拓扑结构上是一一对应的,N 个部分积的产生需要N×M 个
二输入与门。乘法器的主要面积是被加法器占用了,用于N 个部分相加需要N -1个M 位
加法器。部分积的移位并不需要任何逻辑电路,只要将部分积适当的对准,通过简单的布线
就可以实现。整个乘法器电路可以被压缩成矩形,版图的效率可以做的很高。
下面我们来分析阵列乘法器的延时。图1-3是一个阵列结构,所以分析传输延时并不是
很直观。实际上部分积相加的加法器是脉动进位的加法器,为了优化乘法器的性能,我们需
要首先找出阵列乘法器的关键路径。图1-3所示阵列乘法器中有多个路径的延时是几乎相同
的,这里我们给出两个关键的路径,如图1-4所示。由关键路径,我们可以推导出阵列乘法
0Y 3X 2X 1X 0X 3X 2X 1X 0X 1Y 0
Z 3X 2X 1X 0X 3X 2X 1X 0X 3Y 2Y 全加器半加器
半加器
半加器半加器
全加器全加器全加器全加器←←←←←←←↓↓1
Z 2
Z 3
Z 全加器全加器全加器←←↓↓↓↓4Z 5Z 6Z 7Z
图1-3
全加器
半加器半加器全加器↓
半加器
全加器全加器全加器半加器
←全加器全加器全加器关键路径1关键路径2↓
↓↓↓↓↓↓↓↓图1-4
器的延时时间的近似表达式
()()[]()and sum carry m ult t t 1-N t 2-N 1t +++-≈M (1.4)