乘法器分设计报告.doc

上传人:本田雅阁 文档编号:2093024 上传时间:2019-02-12 格式:DOC 页数:9 大小:650.02KB
返回 下载 相关 举报
乘法器分设计报告.doc_第1页
第1页 / 共9页
乘法器分设计报告.doc_第2页
第2页 / 共9页
乘法器分设计报告.doc_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《乘法器分设计报告.doc》由会员分享,可在线阅读,更多相关《乘法器分设计报告.doc(9页珍藏版)》请在三一文库上搜索。

1、有符号乘法器设计报告 VLSI课程设计2010年12月复旦大学专用集成电路与国家重点实验室第一章 设计要求完成16*16有符号乘法器的设计。具体设计方案选择要求如下:1、 编码方式:non-booth编码,Booth编码,Booth2编码(任选一种)2、 拓扑结构:简单阵列,双阵列,二进制树,Wallace树(任选一种)3、 加法器:Ripple Carry Adder,Carry bypass,Carry select,Carry look ahead(任选一种或采用混合方法)设计报告必须包含设计方案说明及选择该方案的理由、仿真和设计结构等。第二章 设计分析在微控制器(MCU)、微处理器(M

2、PU)、数字信号处理器(DSP)、滤波器(FIR/IIR)等各种电路中都会用到乘法器,乘法器是最基本、最重要的运算模块之一。并且乘法器往往还是处在关键路径上,所以乘法器的性能就显得更加重要。伴随着现在工艺水平的提高,模块的面积也随着减小,在一定程度下以面积为代价来追求性能的提升,这也是允许的。本设计是以追求性能为设计目标的,采用全并行的乘法器电路,设计指标设为传播延时为5ns。第三章 乘法器原理分析乘法器通常有三种结构形式,全串行乘法器、串并行乘法器以及全并行乘法器。全串行乘法器都可以是串行的,需要多个时钟周期,速度很慢;串并行乘法器的一个输入是并行的,另一输入是串行的,乘积串行输出;全并行乘

3、法器,输入和输出都是并行的,电路较为复杂,但是速度极快。本设计追求的就是速度,所以采用全并行乘法器机构。16位有符号乘法器可以分为三个部分:根据输入的被乘数和乘数产生部分积、部分积压缩产生和和进位、将产生的和和进位相加。这三个部分分别对应着编码方式、拓扑结构以及加法器。3.1 编码方式本设计采用booth2编码。Booth算法的提出主要是为了解决有符号数乘法运算中的复杂的符号修正的问题,所以采用booth2编码对于补码表示的两数就不需要考虑符号的问题。任何一个有符号数的补码,都可以表示为下面的形式:附加上一位y-1=0,帮助分析y0,以下简单推导两数的乘法运算。仔细观察推导出的结果,i是偶数,

4、即隔一位编码一次,每次检验3位,每次检验3位的高位时下一次检验3位的低位。Booth2算法规则表中有8种组合,但真正进行的运算只有 3种:0,X,2X,负项通过补码运算变成加法。负数的补码可通过“取反加 1”实现。经过booth2编码后,产生的部分积可能是负值,需要考虑符号扩展的问题。如果某个低位的部分积是负数,则需要扩展其符号位使其和高位数对其,无论是正数还是负数,扩展符号位都不会引起数值额变化,所以可以对所有的部分积都扩展符号位。但这样带来的弊处就是增加了硬件开销。可以采用以下的方法来降低开销。把符号位的高位部分都转化为1,再通过化去高位的1的方法,来减少硬件开销。部分积可以转化为下图所示

5、:部分积是负数时S=1,部分积是正数时S=0;当部分积是+0时,E=1,部分积是-0时,E=0,其余情况E=S取反。3.2 拓扑结构本设计采用二进制树的拓扑结构。二进制树拓扑结构排列的较为规整,且部分积压缩的速度也非常快。部分积压缩的目的是为了减小进位传播的延时,采用进位保留加法器,根据当前位信息产生下一位的进位,仅仅产生而没有进位行波传播,这样就可以把当前的多位压缩到较少的位数。经过几次压后,把部分积压缩成和以及进位。部分积主要是通过counter和compressor进行压缩,通常使用(3:2)counter和(4:2)compressor。(3:2)counter其实质就是一个全加器,进

6、位输入为ci,进位输出为c;(4:2)compressor可以由两个全加器组成,ci为进位输入,Coin为内部进位,输入到下一位的进位输入Ci,Coex为输出进位。上图为二进制树的拓扑结构图,每4个部分积输入到一个(4:2)compressor中,产生两个输出,则8个部分积使用3次(4:2)compressor就可以得到和和进位。部分积的压缩方式可以见下图。如图中所示,加上最后一个部分积的进位,共有9个部分积,本设计把最后的进位位移到第一个部分积上,使用5个全加器,把进位融合到第一个部分积,这样就转变成8个部分积了,再使用两级二进制树压缩,所以总共使用了三级压缩,最终得到部分积的和和进位。为了

7、免去不必要的硬件开销,对于部分积边上的位采用counter压缩。上文提到的符号位扩展的改进方法,其目的也就是减少硬件开销,所以在不影响性能的情况下,单独出来部分积的边缘位是十分有必要的。3.3 加法器本设计采用超前进位加法器。为了使得乘法器的延时最小,最后一级的加法器采用传播延时最小的超前进位加法器。超前进位加法器的原理及构成,在此不做详述。第四章 仿真验证4.1 功能仿真对于16位乘法器的仿真验证,若采用穷举法,则有232种情况,验证次数太多,所以只能采用随机数的验证方法。产生两个随机数,加入到乘法器的两个输入端,如此循环10000次,若没有错误,则可以认为乘法器功能正确。X,Y是产生的两个

8、随机数,product是两数的乘积,product_check是用于验证结果是否正确。Count用于计数,循环10000次,error记录计算一万次错误的次数,若发生错误,则退出仿真。4.2 DC综合后仿真DC综合采用的脚本文件在此没有列出,详细内容可查看附带的脚本文件。以下列出DC综合后的报告文件。 综合后仿真要DC综合生成的.v和.sdf文件、DC综合目标库文件以及testbench文件。Testbench文件中,在输入x,y和读取product之间要加入一定的延时。以下给出仿真结果。从波形图中可以看出,乘法器输入数据后到输出稳定之间需要一定延时,在稳定之前输出是不断变化的。4.3 版图布局布线 布局布线的脚本文件在此不作说明,以下给出布局布线后的LVS、DRC检查结果,以及利用生成的网表文件再次仿真验证。布局布线后会生成.net的网表文件,可以用modelsim再次仿真验证。

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1