CMOS乘法器版图设计与仿真第1章第4章Word下载.docx

上传人:b****5 文档编号:16477835 上传时间:2022-11-24 格式:DOCX 页数:35 大小:3.41MB
下载 相关 举报
CMOS乘法器版图设计与仿真第1章第4章Word下载.docx_第1页
第1页 / 共35页
CMOS乘法器版图设计与仿真第1章第4章Word下载.docx_第2页
第2页 / 共35页
CMOS乘法器版图设计与仿真第1章第4章Word下载.docx_第3页
第3页 / 共35页
CMOS乘法器版图设计与仿真第1章第4章Word下载.docx_第4页
第4页 / 共35页
CMOS乘法器版图设计与仿真第1章第4章Word下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

CMOS乘法器版图设计与仿真第1章第4章Word下载.docx

《CMOS乘法器版图设计与仿真第1章第4章Word下载.docx》由会员分享,可在线阅读,更多相关《CMOS乘法器版图设计与仿真第1章第4章Word下载.docx(35页珍藏版)》请在冰豆网上搜索。

CMOS乘法器版图设计与仿真第1章第4章Word下载.docx

keywords:

Digitalmultiplier;

parallelmultiplier;

serialmultiplier;

arrayadder

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

1.1乘法器分类

大多数先进的数字系统为实现高速算术运算都包含有硬件乘法器,例如许多高速单片机微控制器中的算逻运算都使用了硬件并行乘法器。

目前广泛应用的DSP芯片内核中,通常都有可单周期完成的片内硬件乘法器,以实现某些复杂算法如滤波以及实时处理等。

通常乘法器处于关键延时路径上,因此乘法器的速度对整个芯片以及系统性能有重要影响。

最初,阵列乘法采用移位与求和算法,部分乘积项(PartialProduct,PP)数目决定了求和运算的次数,直接影响乘法器的速度。

修正布斯算法(ModifiedBoothAlgorithm,MBA)对乘数重新编码,以压缩部分积(PP)。

华莱士树(WallaceTree,WT)结构改变求和方式,将求和级数从O(N)降为O(logN),提高了运算速度,但是WT存在结构不规整,布线困难的缺点。

用4:

2压缩器(4:

2compressor)代替全加器(FA)可以解决这一问题。

将MBA算法和WT结构的优点相结合,形成了MBA-WT乘法器。

阵列乘法器基于移位与求和算法。

被乘数与乘数中的某一位相乘,产生一组PP,将该组PP移位,使LSB与乘数对应位对齐;

求出全部PP,并相应移位;

对所有PP求和,得到乘积。

因此,加法阵列结构非常重要。

CRA(CarryRippleAdder)存在进位问题,运算速度慢。

CSA(CarrySaveAdder)将本级进位传至下级,求和速度快,且速度与字长无关。

阵列乘法器中,CSA把PP阵列缩减至Sum和Carry两项,再用高速加法器求和得积。

阵列乘法器结构规范,利于布局布线。

因为乘数和被乘数可正、可负,所以一般用二进制补码表示,以简化加、减运算。

补码运算需要符号扩展,符号扩展宽度与加法器结构有关。

对于CRA,加数和被加数符号扩展至本级和的最高位;

对于CSA,扩展至两数最高位对齐。

符号扩展增加了符号位扇出,使电容负载不平衡,影响电路整体速度;

需要冗余的加法器,扩大了版图面积[9]。

1.2EDA工具概述

随着集成电路技术的飞速发展,数字设计的规模不断加大,复杂度不断增加,设计周期要求越来越短,在设计中不采用强有力的EDA工具是不可能的。

特别是当微电子技术进入深亚微米时代,单片的集成度达数百万晶体管,工艺的变化使得各种寄生参数对芯片的性能产生很大的影响,甚至影响系统设计失败。

EDA界三大厂商Cadence、Synopsys和MentorGraphics公司均为用户提供了IC设计全套EDA工具。

本文乘法器设计中用到的主要工具软件如下:

设计输入

设计输入一般包括图形与文本输入两种格式。

文本输入包括Verilog和VHDL两种格式,目前世界上,特别在美国,绝大多数设计人员采用Verilog。

该语言支持多种不同层次的描述,并可以转化为Cadence和Synopsys的设计库格式;

Cadence系统中的VirtuosoSchematicComposer支持多层次逻辑图输入。

在输入完成后,可以针对两种不同的输入进行逻辑仿真,以验证初始的输入是否达到设计要求。

本文图形输入使用VirtuosoSchematicComposer作为设计输入工具,文本输入采用Verilog。

逻辑仿真

逻辑仿真主要针对门级以上(主要是RTL–传输门级)的逻辑设计,逻辑仿真器根据Verilog或VHDL的文本描述来建立设计模型,在一定的激励输入下观测输入波形,以验证设计的逻辑正确性。

Cadence为用户提供四种不同能力的逻辑仿真器:

Verilog-XL,NC-Verilog,NC-VHDL,NC-Sim.Verilog-XL将高性能仿真工具的功能和交互设计环境的灵活性结合在一起,从而允许在整个ASIC设计流程中使用Verilog-XL仿真器,即从最初的设计调试到快速功能测试,直到最后的设计验证。

几乎所有ASIC芯片开发商都签字认可(Signoff)Verilog-XL的仿真结果。

并且其中的大多数已将Verilog-XL作为企业内的标准仿真器。

Spectre是Cadence高性能、高精度的Spice仿真器,其先进的算法结构和技术使其拥有优异的仿真速度、仿真容量和收敛特性,已广泛获得IC厂商和用户的支持。

Spectre同时支持行为级模拟电路描述语言VerilogA的建模和仿真。

Spectre和Verilog-XL有机结合,实现真正意义上的混合电路仿真。

ADE(AnalogDesignEnvironment)是工业界最完善的从前端到后端的模拟电路仿真环境,实现Spectre和Spectre/Verilog-XL的无缝连接;

交互式的模拟环境使用户方便进行设计输入、修改、分析、仿真验证及查看仿真结果;

层次化的编辑器方便用户使用不同的CELLView构造设计层次进行多种组合的仿真验证,提高设计效率。

本文逻辑仿真器使用Verilog-XL和spectre。

逻辑综合

逻辑综合是将行为级描述的设计在一定的约束下转化为逻辑结构。

采用行为级描述可以提高逻辑设计的层次,减低逻辑设计的复杂度,提高设计效率。

Synopsys公司DesignComplier得到全球60多个半导体厂商、380多个工艺库的支持。

据最新Dataquest的统计,Synopsys的逻辑综合工具占据91%的市场份额。

DesignCompiler是十二年来工业界标准的逻辑综合工具,也是Synopsys最核心的产品。

它使IC设计者在最短的时间内最佳的利用硅片完成设计。

它根据设计描述和约束条件并针对特定的工艺库自动综合出一个优化的门级电路。

它可以接受多种输入格式,如硬件描述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高设计性能。

本文使用的逻辑综合工具是Synopsys公司的DesignComplier。

布局/布线

对于深亚微米设计,版图的各种寄生参数影响巨大,为了保证设计的收敛性,一般采用预布局工具,在布线之前对版图参数进行估计和提取,然后通过时序分析工具,可确定布局布线后的延时和时序关系,对于不满足设计要求的部分进行修改,以减少循环迭代的次数。

对于模块的版图,需进行标准单元的布局、布线,包括I/O布局、宏模块布局、标准单元布局、时钟树设计、电源线设计、信号线布线等。

针对布局布线的各个阶段,可以对中间结果进行分析,以检测是否满足设计时序的要求。

Cadence的布局、布线工具SiliconEnsemble在业界有着“黄金”后端工具的美誉。

它使用于包括深亚微米设计的全部设计在内,深亚微米布局布线器是一种多引擎自动布局布线平台,专为深亚微米领域进行复杂,高性能的2到9层布线的设计而开发。

本文布局布线使用Cadence的布局、布线工具SiliconEnsemble。

版图编辑工具

Cadence的VirtuosoXL系列工具(LayoutEditor,CustomPlacer,CustomRouter)

提供了强大的交互式版图功能来增强定制IC设计的生产率。

这些先进的功能允许设计者在较高抽象级别来处理版图。

设计者工作的对象是线,孔及器件,包括晶体管,电阻,电容等,而不是传统的单个的几何图形。

在交互式布局,布线,编辑及逻辑和物理表示中,工具都会自动地建立和保持同版图数据相关的电连接信息。

同时,这也消除了学习两种不同工具命令的必要性,从而提高了版图设计任务的生产率。

设计者可以交互的在原理图中选择一个或多个器件,并在版图中放置相应的器件,以此来做快速的初始化布局。

该工具内嵌的布线工具,使设计者可以轻松面对定制IC的布线问题。

本文版图编辑工具使用Cadence的VirtuosoXL。

物理验证

版图验证包括设计规则检查(DRC)、电学规则检查(ERC)、版图/逻辑图对比(LVS)、版图参数提取(LPE)和寄生参数提取(PRE)。

DIVA是Cadence软件中的验证工具集,用它可以找出并纠正设计中的错误:

它除了可以处理物理版图和准备好的电气数据,从而进行版图和线路图的对查(LVS)外。

还可以在设计的初期就进行版图检查,尽早发现错误并互动地把错误显示出来,有利于及时发现错误所在,易于纠正。

DIVA工具集包括

(1)设计规则检查(DRC),

(2)版图寄生参数提取(LPE)(3)寄生电阻提取(PRE)(4)电气规则检查(ERC)(5)版图与线路图比较程序(LVS)。

Diva中各个组件之间是互相联系的,有时候一个组件的执行要依赖另一个组件先执行。

例如:

要执行LVS就先要执行DRC。

在Cadence系统中,Diva集成在版图编辑程序Virtuoso和线路图编辑程序Composer中,在这两各环境中都可以激活Diva。

本文物理验证使用Cadence公司的Diva系列工具。

本文乘法器设计中使用的工艺库NCSUCDK1.5.1,使用AMI0.6工艺文件,使用的标准单元库是OSUStandardCellLibrary。

本文乘法器设计的设计流程与所用EDA工具之间的关系如图1-1所示。

图1-1IC设计流程图

1.3本文的主要内容

本文主要介绍了移位相加串行阵列乘法器和并行阵列乘法器的基本原理,并设计出了四位串行乘法器和四位并行乘法器,对它们的性能进行了分析比较(延时和面积参数)。

设计出了基于层次设计的带符号位扩展8位并行乘法器,使用verilog-xl对其功能进行了验证,并完成了版图的设计和版图参数的提取和LVS,以及版图的后端仿真。

对所设计的8位并行乘法器进行了优化,完成了优化后的原理图设计,版图设计和后端仿真。

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

阵列乘法器具有结构规则,利于布局布线等优点;

常见的有移位加算法、Pezaris算法和Baugh-Wooley算法。

   

 1.移位加算法

移位加算法是一种比较简单的算法。

每一个部分积都是由被乘数与一位乘数相乘产生,然后按照笔算乘法的规则进行移位和相加。

它将两个N位的有符号数写成一位符号位和(N-1)位数码位。

并对它们分别进行处理。

  移位加算法在运算上简单明了,但是它对有符号数的处理只是单纯地将符号数与数码位分开,这就增加了控制部件的难度,而且,数码位的运算中也存在许多冗余运算,导致运算速度的降低。

由于该算法建立在无符号数运算的基础上,延时长、速度慢是其主要的缺点,不适合VLSI的实现。

 2.Pezaris算法

相对于移位加算法,Pezaris算法无需将有符号数分为符号位和数码位,可直接用于补码乘法的算法,因此提高了乘法器的速度。

Pezaris算法的最大特点是仅通过不同类型的全加器组成的阵列就可以完成对补码数的乘法运算。

该算法的乘法阵列并不是唯一的,还可以有许多组合方式。

这种乘法阵列可以直接求有符号数的乘积,但是因为用到的全加器类型多,使得乘法阵列不规则,不利于VLSI版图的设计。

  

 3.Baugh-Wooley算法

Baugh-Wooley算法也是一种补码乘法的算法,它仅需要使用全加器构成乘法阵列。

由于结构规整,适合于VLSI的实现。

  两个5位的补码数来说明Baugh-Wooley算法的实现过程。

设被乘数A=(a4)a3a2a1a0,乘数B=(b4)b3b2b1b0其运算过程如图2-1所示[8]。

图2-1Baugh-Wooley算法实现图

该算法的乘法阵列如图所示。

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

阵列乘法器所具有的优点在于其结构规整,有利于版图的设计及实现,但所占用的面积较大,运算速度一般。

而且在设计过程当中,随着输入位数的增加,其面积呈几何倍数增加。

分为串行乘法器和并行乘法器。

2.1串行阵列乘法器

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

图2-2串行乘法器原理

算法示例如下:

(XY=1111x1111=11100001)

1111X

x1111Y

1111

+1111

101101

1101001

+1111

11100001

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

2.2并行乘法器原理

并行乘法器有三个主要部分[1]:

部分积产生器、加法阵列块和进位加法器。

部分积产生器的功能是根据输入的操作数产生部分积;

加法阵列块完成对部分积的归约,将所有的部分积相加产生2n位的结果;

进位加法器是为了生成最终结果。

在并行乘法器中,产生的相加部分积的数目是衡量乘法器性能的主要参数。

为了减少相加部分积的数目,修正布斯(modifiedbooth)编码算法成为了最流行的算法之一。

为了进一步加快运算速度,华莱士(wallace)树型算法被用来减少连续相加阶段的数目。

藉由联合布斯编码算法和华莱士树型技术,能在一个乘法器中见到两者算法的优点。

然而,随着位数的逐渐增加,在部分积和中间和之间变化的总数量也将会增加,这就可能导致降低运行速度,由于不规则的结构和复杂的互联线将导致硅片面积和功耗的增加。

另一方面,连续并行乘法器为达到较好的面积和功耗性能而牺牲了运算速度。

2.2.1并行阵列乘法器

对数码位进行相乘。

从乘数的最低位开始,每次取一位乘数,与被乘数相乘得到部分积,并将其与上次产生的部分积相加形成新的部分积,再逻辑右移一位(前面空位补‘0’)。

重复上述步骤,直到N次“相加右移”的操作结束,得到部分积的总和。

现在以4位乘4位不带符号的阵列乘法器(m 

4)为例来说明并行阵列乘法器的基本原理。

实现这个乘法过程所需要的操作如下所示。

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

图2-44位并行乘法器

算法实例:

X1111

1111Y0乘于X

+1111Y1乘于X

C00111通过半加器产生C0和S0

S01000

C0左移一位:

C00111

+1111Y3乘于X

S11100

C10111

C1左移一位C10111

1111Y4乘于X

S21110

C20111

C2左移一位C20111

2.2.2Wallace乘法器

Wallace树型乘法器利用对部分积进行压缩的方法,极大的提高了乘法器的运算速度,减少了延时,但是其复杂的结构、繁冗的走线,不利于版图的设计和实现。

随着输入位数的增加,其复杂度也成倍提高,而且在32位以下输入的设计中,其优势不明显。

2.2.3Booth乘法器

修正基4布斯乘法器:

修正布斯编码算法,是目前在相乘两个数时用于减少相加的部分积最流行的方法。

部分积的减少依赖于有多少编码位。

如果使用3位编码(基4),部分积的个数将减少一半。

和一般的普通相加和移位乘法相比,这就极大的节约了硅片面积,并且也相加的过程被减少了一半速度得到了提升。

下面我们将简要的讨论布斯算法和他的实现步骤。

设A和B为2位补码2进制数,A为被乘数,B为乘数。

输出P=A*B

(2-1)

(2-2)

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

(2-4)

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

(2-5)

每一步乘数B的3位b2i-1,b2i,b2i+1,被检验并算出相应的K值。

B总是在右边添0(),而且n为偶数(如果需要对B进行符号位扩展)。

然后A、B的输出通过相加n/2个部分积获得。

(2-6)

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

1)由乘数位b1、b0、b.1(定义为0)计算k0。

k0可以为+2,+1,0.然后计算并得出n+1位补码部分积PI:

PI=SI+CI,SI、CI均为

在此,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位树型乘法器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1