集成电路设计课件:4 可选作业2:乘法器的设计_第1页
集成电路设计课件:4 可选作业2:乘法器的设计_第2页
集成电路设计课件:4 可选作业2:乘法器的设计_第3页
集成电路设计课件:4 可选作业2:乘法器的设计_第4页
集成电路设计课件:4 可选作业2:乘法器的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、乘法器的设计乘法器要求:设计一个32位的乘法器采用组合逻辑1个时钟内完成乘法运算运用booth编码原理可使用VHDL/Verilog语言实现modelsim功能级仿真一些可参考的资料如下:The Binary MultiplicationThe Array MultiplierThe MxN Array Multiplier Critical PathCritical Path 1 & 2实现代价: M(N-1)个FA逻辑级数: 2M + N -44*4乘法器: 实现代价4*(4-1) = 12个FA,逻辑级数2*4+4-4 = 8级逻辑64*64位乘法器:实现代价:64*(64-1)=403

2、2个FA,逻辑级数: 2*64 +64 -4=18864*64位乘法器,采用上述模式,延时不可忍受!Carry-Save Multiplier部分积相加,采用进位存储加法CSA(Carry_Saved Adder);最后的加法,采用串行进位模式逻辑级数: 2N-1(N-1级CSA、N级串行加法);实现代价: N2个FA/HA Multiplier Floorplan乘法器设计的实质产生部分积多个部分积相加N*M位乘法器,采用一位Booth乘法,部分积的数量M个,即p1、p2、pM,最后将这M个部分积全加起来形成乘积结果: p1+p2+pMN*M位乘法器,采用2位Booth乘法,部分积的数量是M

3、/2个,这M/2个部分积全加即是最终的乘积结果。部分积如何形成?部分积全加采用什么方式才能提高性能、降低实现的复杂度?乘法器部分积的形成:X=(xN-1,xN-2,x1,x0), Y= (YM-1,YM-2,Y1,Y0)1位Booth乘法,部分积的形成实质是Y 的各个位Yi与X的各个位的逻辑与,每一个部分积的实现需要N个2-输入的与门,全部部分积的形成需要M*N个2-输入的与门;X的每一位的扇出系数为M,即带M个负载,加大X的每一位的负载能力,需要有 logKM 级Buffer (MK时,不需要Buffer,K为Buffer的带负载能力)2位Booth乘法,部分积的形成需要连续看Y的3个位串(

4、Y2Y1Y0)、(Y4Y3Y2)、(Y6Y5Y4)、(YM-1YM-2YM-3)(M为偶数)(YMYM-1YM-2)(M 为奇数,YM为符号位YM-1的扩展、若Y为无符号数,则YM为0扩展)Booth2编码Yn-1YnYn+1子倍数0 0 000 0 1X补0 1 0X补0 1 12X补1 0 0-2X补1 0 1-X补1 1 0-X补1 1 10Booth编码表2X补 即是X左移一位,不需要额外逻辑只是需要将X连线想左错位一位即可,末位补0 _ _-X补 = X + 1 b1, X只是将X的每一位取反,需要N个倒相器 _ _-2X补 = 2X + 1b1, 2X也只是将2X的每一位取反,需要

5、N个倒相器 加1b1如何实现?Booth2编码将Pi的部分积是否要加1b1放到部分积pi+1的产生过程,部分积pi+1尾部增加2位0n,当pi是-X或者-2X时,n取1,否则取0.Booth2编码符号位扩展基本扩展模式: 全符号位扩展没有问题,但实现代价高!简化的符号位扩展如何将这样多的部分积全加起来?多个数相加,如何加?采用Wallace树结构逐步将多个数变成2个数,采用CSA模式,CSA即是多位阵列式FA,3输入、2输出,即采用一组CSA(FA)可以将3组数变成2组数,输入的三组数分别接CSA各位的A、B、Cin,输出的2个数分别由Cout和Sum组成。A+ B + C = Sum + 2

6、Cout逐步采用CSA阵列,将多个数相加,逐步变成2个数,最终是要做一次全加CSA - Carry Saved Adder 10个数相加,怎么办? Sum = P0 + P1 + P2 + .+ P9 Pi(0 = I = 9)为N位数据。解决方案 1)确定最经结乘的位数; 2)逐步确定下述过程的所需位数;N*N位乘法器实现代价及性能分析采用Booth1编码:N个部分积,部分积形成需要N2个2-输入与门,每一位的输出负载为N,需要logkN 级Buffer;N个部分积相加,构成Wallace数,Wallace树的逻辑级数为1+log3/2(N), CSA的数量大致为(N/3 + 2N/9 +

7、4N/27 + +1)N = aN2, a 1。最后为2个2N位数据做全加,逻辑级数为4 +log2N,实现代价为KN2(采用Carry Look-Ahead 加法器)总体逻辑级数为: logkN + 1+log3/2(N)+ 4 +log2N实现代价为: N2, 大致为1015,取决于单元库 N*N位乘法器实现代价及性能分析采用Booth2编码:N/2个部分积,部分积形成需要N2/2个3位Booth2编码逻辑,每一位的输出负载为N/2,需要logk(N/2) 级Buffer;N/2个部分积相加,构成Wallace数,Wallace树的逻辑级数为1+log3/4(N), CSA的数量大致为(N

8、/6 + N/9 + 2N/27 + +1)N = bN2, b a 1。最后为2个2N位数据做全加,逻辑级数为4 +log2N,实现代价为KN2(采用Carry Look-Ahead 加法器)总体逻辑级数为: logk(N/2) + 1+log3/4(N)+ 4 +log2N实现代价为: N2, 略小于、大致为1015,具体取值取决于单元库 乘法器设计方法的应用Wallace树形结构多个数相加,可采用Wallace树和CSA模式,将多个数逐步变成2个数,然后全加;多个数的加减,可变成补码数的相加,变化过程的加1b1可基本采用乘法模式;乘加模式: AB+C,统一设计,不要单独实现乘法和加法,一

9、体化考虑;AB + CD,统一设计,不要单独实现两个乘法和最后的加法,一体化考虑;连乘模式:A*B*C,不做成连续乘法模式,先实现A*B的Wallace树结构,得到两个数据Sum、Carry (A*B = Sum + 2 Carry),分别实现Sum*C、Carry*C的部分积和Wallace树,最后再做两两Wallace树的全加,3棵Wallace树,一个全加器,大量的CSAA*B*C*,多个数连续乘,实现代价极高,算法中极力避免出现。实在是必须,则采用分时复用模式,即提高单个乘法器的主频,在确定的时间内完成计算,多个乘法复用一个或者几个乘法器,降低实现代价。乘法器资源性能评估采用design compiler工具对不同位宽的乘法器法器进行综合,并分别采用不同类型的乘法器实现形式。乘法器在主要包括两种结构:基于CSA和PPARCH(自动采用booth wallace)具体形式和最后实现资源评估如下:类型基于csabooth(pparch)位宽面积功耗迟延面积功耗迟延4bit255.344.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论