CMOS乘法器版图设计与仿真——第1章-第4章

更新时间:2024-05-14 07:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西南交通大学本科毕业设计(论文) 第V页

摘 要

先进的数字系统为实现高速算术运算都包含有乘法器电路,通常乘法器处于关键延时路径上,因此乘法器的速度对整个系统性能有重要影响。高速,低功耗,版图规则和占用较少的面积是目前乘法器的设计目标。

通常乘法器速度取决于算法及结构。乘法器按结构可分为串行(阵列)乘法器和并行乘法器,串行乘法器面积和功耗最小,但是运算速度也最慢,因此高速数字应用系统通常会采用并行乘法器。

本文通过对移位相加串行阵列乘法器和并行阵列乘法器工作原理的深入分析,设计出了4X4位的串行乘法器和4X4位并行乘法器,对它们的延时,面积等参数进行了比较,并对所设计电路的版图仿真。经过对比2种乘法器的性能,确定并行乘法器比串行乘法器的性能优越,因此高速数字应用系统通常会采用并行乘法器。

在并行乘法器结构基础上,采用层次化设计方式设计出无符号8X8位并行乘法器;在无符号8X8位并行乘法器基础上,设计了符号位扩展,完成了带符号位8X8位并行乘法器的原理图设计、版图设计和后端仿真,并给出了带有延时参数的仿真波形图。

完通过对8X8位并行乘法器结构的分析研究,对带符号8X8并行乘法器设计进行了优化,并完成了优化后带符号8X8并行乘法器的原理图设计、版图设计和后端仿真,经过对比优化前后带符号8X8并行乘法器的运算速度、面积等参数,并比较版图仿真的延时参数,确定经过优化的乘法器性能比优化前更优秀。

关键词: 数字乘法器;并行乘法器;串行乘法器;加法器阵列

西南交通大学本科毕业设计(论文) 第VII页

Abstract

With the fast development of integrate circuit technology, the use of powerful EDA tools in the digital design is needed while the scale and the complex of design has increased incessant, also the design cycle is shorted. Especially the micron-electronics with deep-inferior micron, the integration degree of the single slice can be reached to millions transistor, the change of technology has a great effect with the chips, even with the success or fail of system design. This paper is mainly about how to use the cadence EDA tools which developed with the company of cadence to design a CMOS Digital Multiplier.

In this paper is mainly introduced the main principle of the digital array multiplier and discussed the advantage of each other. Then 4X4 bit serial multiplier and 4X4 bit parallel multiplier have been designed, we discussed the delay and the area of both multiplier.

With the stimulate of the layout of both 4X4 bit multipliers, inproved that the 4X4 bit parallel multiplier is much speeder than 4X4 bit serial multiplier, so the parallel multiplier is always used in the high speed digital application system.

Put forward the design of 8X8 bit parallel multiplier which based on the administrative levels. Designed the sign bit extension and finished the schematic, layout and stimulation with layout of 8X8 bit parallel multiplier with sign bit extension. The stimulation wave is shown with delay parameter.

Put forward the design of optimized 8X8 bit parallel multiplier, optimized the old design of 8X8 bit parallel multiplier with sign bit extension and finished its schematic, layout and stimulation of layout. And have a comperation of the speed and used area between optimized multiplier with old design. With the result parameter of stimulation of layout, improved that the optimized parallel multiplier is much speed and less area than old design.

key words: Digital multiplier ;parallel multiplier;serial multiplier;array adder

西南交通大学本科毕业设计(论文) 第VIII页

目 录

摘 要 ................................................................ V ABSTRACT ............................................................. VII 第1章 乘法器与EDA工具概述 ........................................... 1

1.1 乘法器分类........................................................................................................................................................... 1 1.2 EDA工具概述 ....................................................................................................................................................... 2 1.3 本文的主要内容 ................................................................................................................................................... 5

第2章 乘法器设计方案选择比较 ......................................... 6

2.1 串行阵列乘法器 ................................................................................................................................................... 7 2.2 并行乘法器原理 ................................................................................................................................................... 8 2.2.1 并行阵列乘法器 .......................................................................................................................................... 8 2.2.2 Wallace乘法器 ......................................................................................................................................... 10 2.2.3 Booth乘法器 ............................................................................................................................................. 10 2.2.4 Modify Booth-Wallace乘法器 ............................................................................................................ 11

第3章 乘法器基本单元设计 ............................................. 12

3.1 二输入异或门设计和仿真................................................................................................................................ 12 3.2 一位全加器设计和仿真 .................................................................................................................................... 15 3.3 一位半加器的设计与仿真................................................................................................................................ 22

第4章 四位乘法器的设计 ............................................... 25

4.1 四位串行乘法器的设计 .................................................................................................................................... 25 4.2 四位并行乘法器的设计 .................................................................................................................................... 29

第5章 基于层次化设计的8位并行乘法器的设计 .......... 错误!未定义书签。

5.1 输入模块的设计 ............................................................................................................. 错误!未定义书签。 5.2 两位乘法器模块的设计 ................................................................................................ 错误!未定义书签。 5.3 四位乘法器模块的设计 ................................................................................................ 错误!未定义书签。 5.4 进位运算模块的设计..................................................................................................... 错误!未定义书签。 5.5 八位乘法器模块的设计 ................................................................................................ 错误!未定义书签。 5.6 带进位运算的八位并行乘法器的设计 ..................................................................... 错误!未定义书签。

第6章 八位并行乘法器的设计的优化 ..................... 错误!未定义书签。 第7章 设计比较 ...................................... 错误!未定义书签。

7.1 四位串行乘法器和四位并行乘法器的比较............................................................. 错误!未定义书签。 7.2 优化前后的八位并行乘法器的比较 .......................................................................... 错误!未定义书签。

总 结 ................................................ 错误!未定义书签。 致 谢 ................................................ 错误!未定义书签。 参考文献 .............................................. 错误!未定义书签。

西南交通大学本科毕业设计(论文) 第IX页

附 录1............................................... 错误!未定义书签。 附 录2............................................... 错误!未定义书签。

西南交通大学本科毕业设计(论文) 第1页

第1章 乘法器与EDA工具概述

1.1 乘法器分类

大多数先进的数字系统为实现高速算术运算都包含有硬件乘法器,例如许多高速单片机微控制器中的算逻运算都使用了硬件并行乘法器。目前广泛应用的DSP芯片内核中,通常都有可单周期完成的片内硬件乘法器,以实现某些复杂算法如滤波以及实时处理等。通常乘法器处于关键延时路径上,因此乘法器的速度对整个芯片以及系统性能有重要影响。高速,低功耗,版图规则和占用较少的面积是目前乘法器的设计目标。通常乘法器速度取决于算法及结构。

乘法器按结构可分为串行(阵列)乘法器和并行乘法器,串行乘法器面积和功耗最小,但是运算速度也最慢,因此高速数字应用系统通常会采用并行乘法器。 最初,阵列乘法采用移位与求和算法,部分乘积项(Partial Product, PP)数目决定了求和运算的次数,直接影响乘法器的速度。修正布斯算法(Modified Booth Algorithm, MBA)对乘数重新编码,以压缩部分积(PP)。华莱士树(Wallace Tree, WT)结构改变求和方式,将求和级数从O(N)降为O(logN),提高了运算速度,但是WT存在结构不规整,布线困难的缺点。用4:2压缩器(4:2 compressor)代替全加器(FA)可以解决这一问题。将MBA算法和WT结构的优点相结合,形成了MBA-WT乘法器。

阵列乘法器基于移位与求和算法。被乘数与乘数中的某一位相乘,产生一组PP,将该组PP移位,使LSB与乘数对应位对齐;求出全部PP,并相应移位;对所有 PP求和,得到乘积。因此,加法阵列结构非常重要。CRA (Carry Ripple Adder)存在进位问题,运算速度慢。CSA (Carry Save Adder)将本级进位传至下级,求和速度快,且速度与字长无关。阵列乘法器中,CSA把PP阵列缩减至Sum和Carry两项,再用高速加法 器求和得积。阵列乘法器结构规范,利于布局布线。

因为乘数和被乘数可正、可负,所以一般用二进制补码表示,以简化加、减运算。补码运算需要符号扩展,符号扩展宽度与加法器结构有关。对于CRA,加数和被加 数符号扩展至本级和的最高位;对于CSA,扩展至两数最高位对齐。符号扩展增加了符号位扇出,使电容负载不平衡,影响电路整体速度;需要冗余的加法器,扩大了版图面积

[9]

西南交通大学本科毕业设计(论文) 第7页

该算法的乘法阵列如图所示。Baugh-Wooley算法只要用到一种类型的全加器,其不足之处是求补运算需要花较多的时间。

阵列乘法器所具有的优点在于其结构规整,有利于版图的设计及实现,但所占用的面积较大,运算速度一般。而且在设计过程当中,随着输入位数的增加,其面积呈几何倍数增加。分为串行乘法器和并行乘法器。

2.1 串行阵列乘法器

图2-2 串行乘法器原理

图中的FA 为一位全加器,FA 的斜线方向为进位输出,竖线方向为和输出。

算法示例如下:(XY=1111x1111=11100001)

1111 X x 1111 Y

1111 + 1111 101101 + 1111 1101001 +1111 11100001

西南交通大学本科毕业设计(论文) 第8页

由算法可以看出,在此原理中使用了移位相加算法,乘数Y的每一位分别和被乘数X的各位相乘,依照Y的各位相应的向左移动后进行相加,最终得到相乘结果。

2.2 并行乘法器原理

并行乘法器有三个主要部分[1]:部分积产生器、加法阵列块和进位加法器。部分积产生器的功能是根据输入的操作数产生部分积;加法阵列块完成对部分积的归约,将所有的部分积相加产生2n位的结果;进位加法器是为了生成最终结果。

在并行乘法器中,产生的相加部分积的数目是衡量乘法器性能的主要参数。为了减少相加部分积的数目, 修正布斯(modified booth)编码算法成为了最流行的算法之一。为了进一步加快运算速度,华莱士(wallace)树型算法被用来减少连续相加阶段的数目。藉由联合布斯编码算法和华莱士树型技术,能在一个乘法器中见到两者算法的优点。 然而,随着位数的逐渐增加, 在部分积和中间和之间变化的总数量也将会增加,这就可能导致降低运行速度, 由于不规则的结构和复杂的互联线将导致硅片面积和功耗的增加。 另一方面,连续并行乘法器为达到较好的面积和功耗性能而牺牲了运算速度。

2.2.1 并行阵列乘法器

对数码位进行相乘。从乘数的最低位开始,每次取一位乘数,与被乘数相乘得到部分积,并将其与上次产生的部分积相加形成新的部分积,再逻辑右移一位(前面空位补‘0’)。重复上述步骤,直到N 次“相加右移”的操作结束,得到部分积的总和。 现在以4位乘4位不带符号的阵列乘法器( m = n = 4 )为例来说明并行阵列乘法器的基本原理。实现这个乘法过程所需要的操作如下所示。

图2-3 并行乘法器算法图

西南交通大学本科毕业设计(论文) 第9页

图中的FA 为一位全加器,FA 的斜线方向为进位输出,竖线方向为和输出。

图2-4 4位并行乘法器

算法实例:(XY=1111x1111=11100001)

1111

X 1111

1111 Y0乘于X + 1111 Y1乘于X

C0 0111 通过半加器产生C0和S0

S0 1000

S0 1000

C0左移一位:C0 0111

+ 1111 Y3乘于X S1 1100 C1 0111

S1 1100

C1左移一位 C1 0111

1111 Y4乘于X

S2 1110 C2 0111 S2 1110

西南交通大学本科毕业设计(论文) 第10页

C2左移一位 C2 0111 11100001

2.2.2 Wallace乘法器

Wallace树型乘法器利用对部分积进行压缩的方法,极大的提高了乘法器的运算速度,减少了延时,但是其复杂的结构、繁冗的走线,不利于版图的设计和实现。随着输入位数的增加,其复杂度也成倍提高,而且在32位以下输入的设计中,其优势不明显。

2.2.3 Booth乘法器

修正基4布斯乘法器:修正布斯编码算法,是目前在相乘两个数时用于减少相加的部分积最流行的方法。部分积的减少依赖于有多少编码位。如果使用3位编码(基4),部分积的个数将减少一半。和一般的普通相加和移位乘法相比,这就极大的节约了硅片面积,并且也相加的过程被减少了一半速度得到了提升。

下面我们将简要的讨论布斯算法和他的实现步骤。设A和B为2位补码2进制数,A为被乘数,B为乘数。输出P=A*B

A??an?12B??bn?12n?1n?1?an?22?bn?22n?2?an?32?bn?32n?3?...?a12?a0?...?b12?b0 (2-1)

n?2n?3 (2-2)

B的一个等价4位冗余数字位表示:

(n/2)?1B??i?022iKi (2-4)

在次,K用如下等式计算:

Ki = -2b2i+1+b2i+b2i-1 i= 0,1,2,.. ..(n-2)/2 (2-5)

每一步乘数B的3位 b2i-1,b2i ,b2i+1 ,被检验并算出相应的K值。B总是在右边添0(),而且n为偶数(如果需要对B进行符号位扩展)。然后A、B的输出通过

相加n/2个部分积获得。

(n/2)-1A?B=P=?i=022iKiA (2-6)

算法的实现步骤被归结并表示如下:

1)由乘数位b1、b0、b.1(定义为0)计算k0。k0可以为+2,+1,0 .然后计算并得出n+1位补码部分积PI:PI=SI+CI,SI、CI均为

西南交通大学本科毕业设计(论文) 第11页

在此,SI和CI都位n+1位。这些信号被送到相同位的最终加法器并且送到下一阶段中参与P2的产生

2)由b3,b2,b1计算K1,并且KIA位了得到第二个部分积P2而被计算出来。然后P2和上一级的和信号S1和进位信号C1相加得到n+1位S2和C2,并使用同样方法处理S2和C2.

3)重复2)知道所有的和信号和进位信号产生。

4)通过使用最终的加法器相加所有的进位和和信号产生最终的结果。 4.优化华莱士树形乘法器旨在提高并行并行乘法器的速度,其一系列流行而广为人知的原理在过去就已经发展了。华莱士介绍了一种非常重要的并行乘法器的迭代实现。这一优点在输入位数在16位以上的乘法器中尤其显著。在这一章节中,我们将讨论32位华莱士树型乘法器的设计和发展。在华莱士结构中,每一纵队中的所有部分积通过一系列的计数器相加,而不产生任何进位。其他的一些计数器则减少这些新的矩阵,直到生成2行矩阵。在此,我们使用了一种3:2计数器。然后在最后使用快速加法器产生最后的输出。华莱士树的优点在于速度,因为所相加的部分积现在位0.图7演示了一个模块化设计的32位树型乘法器。可以看出,部分积在华莱士树模块中相加,最后由快速加法器产生2个61位的最终结果。

全加器中不同输入和相同输出的延时是不同的。所以,当在华莱士树中使用全加器作为3:2压缩器,不能同样的看待输入和输出。举个例子,如果2个压缩器的最长延时路径被连接在了一起,总延时将会是这两个压缩器的延时。比较好的办法就是把一个3:2压缩器的最短延时路径和另一个的最长延时路径相连接。这种算法产生了考虑5所示问题的华莱士树型机构,并且,这种算法被用于实现华莱士树使用最短的延时相加所有的部分积。

布斯编码算法则是利用通过对输入进行编码较少部分积来提高乘法器的运算速度并减少延时的一种并行乘法器,其缺点也在于连线比较复杂,不利于版图设计。

2.2.4 Modify Booth-Wallace乘法器

Booth-wallace乘法器则综合了两种结构的优缺点,通过对算法的优化,可以得到最少的部分积来完成运算,其运算速度介于2.2.2和2.2.3之间,但是同时也集合了以上两种结构的缺点,连线过于复杂,整体不规则,不利于版图的实现。 综合考虑上述5种乘法器的优缺点,选择8位串行乘法器和8位移位相加并行乘法器作为设计目标,并对其进行性能优化。

西南交通大学本科毕业设计(论文) 第12页

第3章 乘法器基本单元设计

3.1 二输入异或门设计和仿真

2输入异或门表达式:

C?A?B (3-1) 其真值表由下图所示:

表3-1 二输入异或门真值表 A 0 0 1 1 B 0 1 0 1 C 0 1 1 0 根据摩尔定律对式3-1进行变形:

C?A?B?(A?B)(A?B) (3-2)

由式3-2,在设计中,可以把整个电路看作是基本框架为一个与门结构,然后分别用(A?B)或门结构中的PMOS和NMOS分别取代整个与门中的一个PMOS和NMOS,然后用(A?B)或门结构中的PMOS和NMOS取代剩下的N、PMOS可得到最终的或门晶体管电路结构。其原理图如下所示:

图3-1 二输入异或门原理图

西南交通大学本科毕业设计(论文) 第13页

在本原理图中,分别对P网(上拉网络)和N网(下拉网络)进行讨论以得出其中晶体管的设计尺寸。

如果将整个原理图看作是由一个P型网络和N型网络构成的(即看作上下各一个PMOS和NMOS,宽度分别为2w和1w),在设计反相器时,通过设置PMOS和NMOS的宽比为WP/WN?2/1或得大致相同的上升和下降延时。为了使异或门的上升时间和下降时间大致相同,在此,假设P型网络和N型网络的宽度比为2:1。在上拉网络中,设2个PMOS的宽度均为2w考虑电源vdd到输出c通路导通的最少情况,即vdd到c导通,则其中必有一条通路上的2个晶体管导通,和反相器相比,即2个PMOS串联后的等效宽度应为2w,由于2个PMOS管串联,其等效电阻相当于单个晶体管的2倍,晶体管的等效电阻和宽度成正比,因此,为了获得和单个晶体管相同的等效电阻,即将2个PMOS的宽度都设置为单个晶体管的2倍(2*2w),在ami06微米工艺下,其最小晶体管尺寸为1.5微米,即w=1.5um,因此,可以得到,在异或门中,上拉网络中的

WP?2?2w??2PMOS

?2管都可以设置为:

u1m?.同理使用此种方法,可以umWN?2?w?2?1.5um?3um 推断出N网络中的NMOS管尺寸为:

使用Cadence中的Spectre仿真工具对原理图进行仿真:

由图3.1.1-2中可以看出,输出c和输入a的延时为1.23ns-0.025ns=1.205ns,根据上升时间的定义,选择了10%和90%两点的时间,输出c的上升时间为:1.43ns-1.16ns=0.27ns。

仿真中使用的输入脉冲信号的上升时间和下降时间均为50ps。

图3-2 二输入异或门波形图

西南交通大学本科毕业设计(论文) 第14页

根据电路原理图,使用Cadence版图设计工具设计出如下异或门的版图如图3-3所示。

图3-3 二输入异或门的版图设计

LVS(Layout Verify Schematic版图、原理图一致性验证)结果如图3-4所示,可以看出,所设计的版图和原理图完全匹配。共使用了12个晶体管。

图3-4 二输入异或门LVS结果

西南交通大学本科毕业设计(论文) 第15页

3.2 一位全加器设计和仿真

设计方案一(CSA(Carry Save Adder)): 表达式:

Sum?(A?B)?C (3-3)

B?CAB A C B C (3-4)

t Cou?A?BA?C真值表:A,B,C为数据输入,Cout为进位输出,Sum为和输出

表3-2 一位全加器的真值表

C 0 0 0 0 1 1 1 1 A 0 0 1 1 0 0 1 1 B 0 1 0 1 0 1 0 1 Cout 0 0 0 1 0 1 1 0 Sum 0 1 1 0 1 0 0 1 根据逻辑表达式,使用Cadence schematic composer设计的原理图如图所示。

图3-5 一位全加器原理图设计

使用Cadence中的Spectra仿真工具进行原理图仿真,输入脉冲信号的上升时间

西南交通大学本科毕业设计(论文) 第16页

和下降时间均为50ps,得到仿真结果如图3-6。

图3-6 一位全加器的仿真波形图

根据上升时间(rise time)和下降时间(fall time)的定义,由图3-6可以

[10]

看出,C输出的上升时间约为289ps-187ps=102ps,下降时间约为6.47ns-6.24ns=0.23ns=230ps;而S输出的上升时间约为244ps-199ps=45ps,下降时间大约为2.7ns-2.3ns=0.4ns=400ps。2个输出的延时分别为S:309ps-25ps=264ps;C=230ps-25ps=205ps。

本文来源:https://www.bwwdw.com/article/xm97.html

Top