浮点32位并行乘法器设计与研究
发布时间:2020-07-17 06:54
【摘要】: 随着VLSI技术的发展,作为CPU与DSP中数据路径上的关键部件之一的乘法器也从过去由软件完成逐渐演变成为一个重要的硬件部件。本文对32位定浮合并乘法器进行了研究。首先介绍了最常用的浮点格式IEEE-754格式,其中包括对其格式、类型与舍入处理以及单精度与扩展单精度型的转换等方面的内容。其次对乘法中一些关键步骤进行了研究与讨论,包括各类算法,部分积产生方法与加法器,通过对各种实现方法的比较,最终对算法采取了二阶Booth算法;部分积产生阵列采用了由反极性CSA加法器组成的IA与wallace树折衷方法;最后的局部进位与伪和相加采用了跳跃进位加法器与超前进位加法器相结合的加法器,这个加法器同时兼顾了面积与速度两个方面的因素。然后对32位定浮合并乘法器的具体设计,包括尾数相乘,指数相加,规格化,舍入等各部分的设计方法。最后给出了设计结果与验证。本设计特别地提出了将每个模块进行了IP化的设计思路,使最终设计出的乘法器成为一个IP核,以提高芯片的通用性。
【学位授予单位】:西安电子科技大学
【学位级别】:硕士
【学位授予年份】:2007
【分类号】:TP332.22
【图文】:
加法器部分积产生加法器乘积寄存器移位寄存器时钟右移右移图 3.2 线性并行阵列乘法器框图3.1.3 并行乘法器线性阵列可以进一步将迭代乘法过程完全展开,构成全阵列并行乘法器,但是全阵列乘法器完成 n ×n位的乘法需要 个加法器和 个部分积的产生器,延2n2n
1 0 +A1 1 +2A图3.4 Booth 编码操作3.2.3 二阶(基 4)Booth 算法1961 年 O.L.Mcsorley 把 Booth 算法中的每次交叠检验乘法的两位推广到每次交叠检验三位,即著名的二阶 Booth 算法。首先对 Booth 算法的正确性证明如下:一个 n 位的二进制补码数 B 可以表示成:21102 2nn in iiB b b == + ∑ 2 41 2 3 3 4 52 ( 2 ) 2 ( 2 )n nn n n n n nb b b b b b + + + + ++ (3-14)65 6 7) 2 ( 2nn n nb b b + +这样的话,B就被每一组 3 位的扫描数据bi+1bibi-1,根据 的值重新编码。为了减少部分积的数目,通常采用每次扫描多于一位的乘数,根据这些位的值产生出相应的被乘数的倍数,另外中间结果每次的移位次数要与对乘数扫描的位数一致。例如,在采用每次扫描两位的处理方法时,乘数的两位值可能是 00、01、10 和 11 四种,在与被乘数相乘之后可能产生的结果也相应的有四种,即 0 倍、1 倍、2 倍和 3 倍的被乘数值。每次相加中间结果要移两位。Booth编码算法实际是将多位扫描与跳过连续的“0”和“1”技术结合在一起的。跳过连续的“0”和“1”是指当乘数中有一串连续的“0”时
图 3.6 4 个输入延迟相同的 4:2 压缩器逻辑图表 3.7 图 3.6 对应的 4:2 压缩器真值表I1 I2 I3 I4 Cin S C Cout0 0 1 1 0 0 1 00 1 0 1 0 0 1 00 1 1 0 0 0 0 11 0 0 1 0 0 1 01 0 1 0 0 0 0 11 1 0 0 0 0 0 10 0 1 1 1 1 1 00 1 0 1 1 1 1 00 1 1 0 1 1 0 11 0 0 1 1 1 1 01 0 1 0 1 1 0 11 1 0 0 1 1 0 1
本文编号:2759125
【学位授予单位】:西安电子科技大学
【学位级别】:硕士
【学位授予年份】:2007
【分类号】:TP332.22
【图文】:
加法器部分积产生加法器乘积寄存器移位寄存器时钟右移右移图 3.2 线性并行阵列乘法器框图3.1.3 并行乘法器线性阵列可以进一步将迭代乘法过程完全展开,构成全阵列并行乘法器,但是全阵列乘法器完成 n ×n位的乘法需要 个加法器和 个部分积的产生器,延2n2n
1 0 +A1 1 +2A图3.4 Booth 编码操作3.2.3 二阶(基 4)Booth 算法1961 年 O.L.Mcsorley 把 Booth 算法中的每次交叠检验乘法的两位推广到每次交叠检验三位,即著名的二阶 Booth 算法。首先对 Booth 算法的正确性证明如下:一个 n 位的二进制补码数 B 可以表示成:21102 2nn in iiB b b == + ∑ 2 41 2 3 3 4 52 ( 2 ) 2 ( 2 )n nn n n n n nb b b b b b + + + + ++ (3-14)65 6 7) 2 ( 2nn n nb b b + +这样的话,B就被每一组 3 位的扫描数据bi+1bibi-1,根据 的值重新编码。为了减少部分积的数目,通常采用每次扫描多于一位的乘数,根据这些位的值产生出相应的被乘数的倍数,另外中间结果每次的移位次数要与对乘数扫描的位数一致。例如,在采用每次扫描两位的处理方法时,乘数的两位值可能是 00、01、10 和 11 四种,在与被乘数相乘之后可能产生的结果也相应的有四种,即 0 倍、1 倍、2 倍和 3 倍的被乘数值。每次相加中间结果要移两位。Booth编码算法实际是将多位扫描与跳过连续的“0”和“1”技术结合在一起的。跳过连续的“0”和“1”是指当乘数中有一串连续的“0”时
图 3.6 4 个输入延迟相同的 4:2 压缩器逻辑图表 3.7 图 3.6 对应的 4:2 压缩器真值表I1 I2 I3 I4 Cin S C Cout0 0 1 1 0 0 1 00 1 0 1 0 0 1 00 1 1 0 0 0 0 11 0 0 1 0 0 1 01 0 1 0 0 0 0 11 1 0 0 0 0 0 10 0 1 1 1 1 1 00 1 0 1 1 1 1 00 1 1 0 1 1 0 11 0 0 1 1 1 1 01 0 1 0 1 1 0 11 1 0 0 1 1 0 1
【引证文献】
相关硕士学位论文 前2条
1 王松;基于FPGA的浮点协处理器IP核设计[D];南京航空航天大学;2010年
2 赵娟;高性能专用FPGA算术部件的研究与设计[D];广东工业大学;2008年
本文编号:2759125
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2759125.html