32_32高速乘法器的设计与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期 : 2008 - 12 - 01
2 乘法器的结构
乘法器的结构如图 1 所示 ,该乘法器用作 32 × 32 有符号/ 无符号的乘法运算. 采用 sign 符号位来 区分运算为有/ 无符号乘法运算. 无符号数的范围为 0~232 - 1 ,有符号数的范围为 - 231 ~231 - 1. 乘法 运算步骤分为两步 : ① 根据算法求出部分积 ; ② 将 所有部分积求和. 因此减少部分积的数目和快速求 出部分积的和便成为研究的热点. 文中针对这两个 部分 ,采用改进的 BOO TH 编码实现部分积数目的 减少 ;部分积求和的速度则通过使用以一种改进的 422 压缩器为单元的新型 Wallance 树型结构来实 现. 利用以上两部分压缩得出两个 64 位部分积和结
所示的逻辑结构. 这种结构减少了信号传播的逻辑
门数量 ,并且具有较小的负载电容. 这种结构具有高
速 、低功耗的优点 ,相比传统结构优势明显 ,更适合
于版图实现.
图 4 两种 422 压缩器逻辑图
4. 2 防止符号位扩展的处理 根据基 4 Boot h 算法要求 ,操作数要进行符号
扩展. 乘数的扩展是在低位补一个 0 ,高位补两个符 号位 ,得到一个 35 位的补码数据 ;被乘数的扩展是 在高位补两个符号位 ,形成 34 位的补码数据. 由前 文可知 ,对于产生的 17 个部分积 ,每个均为 34 位. 如果直接将这些部分积相加则必须将每个部分积的 高位部分以符号位的值扩展到加法阵列的最高位 (这里为 66) . 扩展结果如图 5 (a) 所示.
由式 (1) 知道基 4 Boot h 编码一次检测乘数临 近的 3 位 ,根据检测的三位的结果产生对被乘数不 同的操作. 文献 [ 4 ]中提出了三种不同的基 4 Boot h 编码方式 , 其中 MB E - Ⅰ[4 ] 就是最常用的只产生 “1”与“2”两种倍数的控制信号以及一个正负控制信
号的三条控制线的编码方式 ,这种方式使用的门电 路比 MB E - Ⅲ[4 ] 不少多少 ,延迟却接近 MB E - Ⅲ 方式的 2 倍. 因此这里采用的 MB E - Ⅲ编码方式编 码及控制信号如表 1 所示.
422 压缩器又称为 ( 5 , 3) 计数器 , 是一个 5 输 入 、3 输出的加法部件. 这 5 个输入的权是相同的 (权重为 20) ,其中 4 个是部分积 ,这里记作 i1 、i2 、i3 和 i4 ,另一个输入为进位信号记作 cin. 3 个输出中 一个与输入的权值相同为伪和 sum ,另两个分别为 进位信号 carry 和 cout (权值都为 21) . 传统的 422 压 缩器由两个串行连接的全加器组成 (如图 4 (a) 所 示) . 但这样的压缩器延迟门较多.
表 1 基 4 Boot h 编码及控制信号
b2 n +1
b2 n
b2 n- 1
PPn
Fra Baidu bibliotek
NEG B1 B2
Z
0
0
0
+ 0 ×A 22 n 0
0
1
1
0
0
1
+ 1 ×A 22 n 0
1
0
1
0
1
0
+ 1 ×A 22 n 0
1
0
0
0
1
1
+ 2 ×A 22 n 0
0
1
0
1
0
0
- 2 ×A 22 n 1
0
1
0
1
首先设 A 为被乘数 , B 为乘数 ,且均为 32 位无 符号数 , P 表示乘积. 则有 A ×B 为
31
16
∑ ∑ P = A ×( bi2 i) = A ×[ ( b2 n - 1 + b2 n -
i =0
n =0
16
∑ 2 b2 n +1) 4 n ] =
A ( b2 n - 1 + b2 n - 2 b2 n +1) 22 n (1)
1 引言
乘法器[122 ]是现代微处理器和数字信号处理器 的重要部件 ,是图像处理等实时信号处理的核心 ,其 性能直接影响着系统处理数据的性能[324 ] . 而乘法 器性能的提高基本上取决于编码算法 、部分积的压 缩和最终相加三部分. 文中根据补码的特点 ,利用基 4 布斯编码[4 ]以减少部分积的个数 ,采用改进的 422 压缩器[5 ] 为单元的一种新型 Wallance 树性结构[6 ] 来提高部分积的压缩效率 ; 设计使用 Verilog HDL 进行了 R TL 级描述 ,通过综合和布局布线 ,实现该 乘法器并达到设计要求.
n =0
式 (1) 中的各项式为部分积 , 用 PP 表示 , 于是
有
31
∑ PPn =
ai2 i ( b2 n - 1 + b2 n - 2 b2 n +1) 22 n (2)
i =0
n = 0 ,1 , …,16
为了符合基 4 Boot h 算法的要求 ,令式 (1) 、式 (2) 中
b33 = b32 = b- 1 = 0 ,这样从式 (1) 可以看出无符号
32 ×32 High2speed Multiplier Design and Implementation
L I J un2qiang1 , L I Dong2sheng1 ,2 , L I Yi2lei1 , ZHOU Zhi2zeng3
(1 Department of Information , Electronic Engineering Institute , Hefei 230037 , China ; 2 VL SI Research Institute , Hefei University of Technology , Hefei 230009 , China ; 3 The Army 63889 Unit , Mengzhou 454750 , China)
换可以得到以下两个布尔表达式 :
Carry = ( a1
a2
a3 + a4) · cin +
( a1 a2 a3 + a4) ·a4
(6)
Cout = ( a1 a2) ·a3 + ( a1 a2) ·a1 (7)
从式 (6) 、式 (7) 两式可以看到 ,逻辑电路可由异
或门和 2 选 1 的选择器组成 ,可以构成如图 4 ( b) 中
摘 要 : 设计并实现了一种 32 ×32 高速乘法器. 本设计通过改进的基 4 Boot h 编码产生部分积 ,用一种改进的 Wallace 树结构压缩部分积 ,同时采用一种防止符号扩展的技术有效地减小了压缩结构的面积. 整个设计采用 Ver2 ilog HDL 进行了结构级描述 ,用 SIMC 0. 18μm 标准单元库进行逻辑综合. 时间延迟为 4. 34 ns ,系统时钟频率可达 230 MHz. 关键词 : 乘法器 ;改进 Boot h 编码 ;压缩器 ; Wallace 树 中图分类号 : TN79 + 1 文献标识码 : A 文章编号 : 1000 - 7180 (2009) 12 - 0023 - 04
对传统的基于全加器组成的压缩单元进行分
析 ,得出其布尔表达式如下 :
S = a1 a2 a3 a4 cin
(3)
Carry = ( a1 a2 a3) ·a4 + ( a1 a2 a3) ·
cin + a4 ·cin
(4)
Cout = a1 ·a2 + a1 ·a3 + a2 ·a3
(5)
对式 (4) 、式 (5) 两个表达式进行等价的逻辑转
第 12 期
李军强 ,等 :32 ×32 高速乘法器的设计与实现
25
乘法结果. 部分积相加的方法有多种 ,采用不同的压 缩器组成的不同加法结构直接影响乘法器的速度和
版图规则性. 所以较好的乘法器总是从压缩器单元 和压缩结构两方面着手来取得速度与面积 、规则的
最佳组合. 4. 1 改进的 422 压缩器
0
1
- 1 ×A 22 n 1
1
0
0
1
1
0
- 1 ×A 22 n 1
1
0
1
1
1
1
- 0 ×A 22 n 1
0
1
1
传统的基 4 Boot h 编码逻辑表示和部分积产生 逻辑分别如图 2 (a) 、图 2 ( b) ,从表 1 中可以得出 4 个控制信号的逻辑表达式和部分积产生的逻辑设计 分别如图 3 (a) 、图 3 (b) 所示.
图 5 符号位扩展修正前后的 CSA 阵列
图 5 (a) 中 S 为每一个部分积的符号扩展位 (即 PPn [ 33 ]) ,可以从图中看出扩展后 CSA 阵列很大 , 需要逻辑资源会很大. 为了得出符号不必扩展的方 法 ,先假设所有的部分积都是负的 ,那么对于 32 位 的乘法 ,图 5 (a) 中所扩展的符号位都为“1”. 这样 , 这些所有符号扩展的“1”的和为
32 位数相乘一共有 17 个部分积. 其实对于有符号
数 ,只要对乘数进行符号扩展 , 令 b33 = b32 = b31 ,
令 b- 1 = 0 ,这样有符号 、无符号数相乘就统一起来
了. 统一后的部分积 PP16 为
0
有符号乘法
PP16 = A ·b31 ·232 无符号乘法
3. 2 基 4 Boot h 编码器逻辑设计
16
S - sum = ∑(233 - 22 i) mod233 i=0 16 = ∑( - 22 i) i=0 = - (232 + 230 + L 22 + 20) = - 1010 …10101 = (1010 …1011) 补 (8) 将这 S 和可以作为一个定值加入部分积中 ,符
号位扩展“1”就可用 S - sum = (1010 …1011) 2 来表 示 ,最低位的权值是 234 . 如此表示 ,图 5 (a) 左上角 的 S 就全为“0”,不用扩展了 ,每一个 CSA 阵列的部 分积长度一致了 ,如果一个部分积实际是非负的 ,则 该部分积的符号位应为“0”,为了消除前面假定它是
24
微电子学与计算机
2009 年
果时 ,最后利用一个 64 位超前进位加法器将前面两 个结果相加得出最终的结果.
图 1 乘法器结构图
3 基 4 BOO TH 算法及编码逻辑设计
基 4 Boot h 算法能够将部分积数目减至乘数位 数的一半 ,大大提高了乘法器的速度 ;同时结构较为 规整 、连线简单 ,易于 VL SI 版图实现. 3. 1 32 位乘法基 4 Boot h 算法
2620卷09 年第1212月期
微电子学与计算机 M ICRO EL ECTRON ICS & COM PU TER
Vol. 26 No. 12 December 2009
32 ×32 高速乘法器的设计与实现
李军强1 ,李东生1 ,2 ,李奕磊1 ,周志增3
(1 电子工程学院 信息系 ,安徽 合肥 230037 ;2 合肥工业大学 微电子设计研究所 ,安徽 合肥 230009 ; 3 63889 部队 ,河南 孟州 454750)
Abstract : A design of hign2performance 32 ×32 multiplier is presented. The design , which generates partial products by modified radix24 Boot h encoding , compresses t hem using a modified Wallace tree structure , and optimize t he compressor structure by preventing sign2extend algorit hm. The whole design is described in Verilog HDL at structure level , and syn2 t hesized using t he SIMC 0. 18μm standard cell library. The synt hesis result of t his design shows t hat t he delay can be re2 duced to 4. 34 ns and t he frequency of t he system can reach 230MHz. Key words : multiplier ; modified Boot h encoding ; compressor ; Wallace tree
图 2 传统的基 4 Boot h 编码逻辑图
图 3 改进的基 4 Boot h 编码逻辑图
对比图 3 和图 2 ,可以发现 ,在关键路径上图 3 少了一个 △NOR门延迟时间.
4 改进的 422 压缩器 、防止符号位扩展的处 理和加法阵列结构安排
当产生部分积 PPn 之后 ,将它们相加就可得到
2 乘法器的结构
乘法器的结构如图 1 所示 ,该乘法器用作 32 × 32 有符号/ 无符号的乘法运算. 采用 sign 符号位来 区分运算为有/ 无符号乘法运算. 无符号数的范围为 0~232 - 1 ,有符号数的范围为 - 231 ~231 - 1. 乘法 运算步骤分为两步 : ① 根据算法求出部分积 ; ② 将 所有部分积求和. 因此减少部分积的数目和快速求 出部分积的和便成为研究的热点. 文中针对这两个 部分 ,采用改进的 BOO TH 编码实现部分积数目的 减少 ;部分积求和的速度则通过使用以一种改进的 422 压缩器为单元的新型 Wallance 树型结构来实 现. 利用以上两部分压缩得出两个 64 位部分积和结
所示的逻辑结构. 这种结构减少了信号传播的逻辑
门数量 ,并且具有较小的负载电容. 这种结构具有高
速 、低功耗的优点 ,相比传统结构优势明显 ,更适合
于版图实现.
图 4 两种 422 压缩器逻辑图
4. 2 防止符号位扩展的处理 根据基 4 Boot h 算法要求 ,操作数要进行符号
扩展. 乘数的扩展是在低位补一个 0 ,高位补两个符 号位 ,得到一个 35 位的补码数据 ;被乘数的扩展是 在高位补两个符号位 ,形成 34 位的补码数据. 由前 文可知 ,对于产生的 17 个部分积 ,每个均为 34 位. 如果直接将这些部分积相加则必须将每个部分积的 高位部分以符号位的值扩展到加法阵列的最高位 (这里为 66) . 扩展结果如图 5 (a) 所示.
由式 (1) 知道基 4 Boot h 编码一次检测乘数临 近的 3 位 ,根据检测的三位的结果产生对被乘数不 同的操作. 文献 [ 4 ]中提出了三种不同的基 4 Boot h 编码方式 , 其中 MB E - Ⅰ[4 ] 就是最常用的只产生 “1”与“2”两种倍数的控制信号以及一个正负控制信
号的三条控制线的编码方式 ,这种方式使用的门电 路比 MB E - Ⅲ[4 ] 不少多少 ,延迟却接近 MB E - Ⅲ 方式的 2 倍. 因此这里采用的 MB E - Ⅲ编码方式编 码及控制信号如表 1 所示.
422 压缩器又称为 ( 5 , 3) 计数器 , 是一个 5 输 入 、3 输出的加法部件. 这 5 个输入的权是相同的 (权重为 20) ,其中 4 个是部分积 ,这里记作 i1 、i2 、i3 和 i4 ,另一个输入为进位信号记作 cin. 3 个输出中 一个与输入的权值相同为伪和 sum ,另两个分别为 进位信号 carry 和 cout (权值都为 21) . 传统的 422 压 缩器由两个串行连接的全加器组成 (如图 4 (a) 所 示) . 但这样的压缩器延迟门较多.
表 1 基 4 Boot h 编码及控制信号
b2 n +1
b2 n
b2 n- 1
PPn
Fra Baidu bibliotek
NEG B1 B2
Z
0
0
0
+ 0 ×A 22 n 0
0
1
1
0
0
1
+ 1 ×A 22 n 0
1
0
1
0
1
0
+ 1 ×A 22 n 0
1
0
0
0
1
1
+ 2 ×A 22 n 0
0
1
0
1
0
0
- 2 ×A 22 n 1
0
1
0
1
首先设 A 为被乘数 , B 为乘数 ,且均为 32 位无 符号数 , P 表示乘积. 则有 A ×B 为
31
16
∑ ∑ P = A ×( bi2 i) = A ×[ ( b2 n - 1 + b2 n -
i =0
n =0
16
∑ 2 b2 n +1) 4 n ] =
A ( b2 n - 1 + b2 n - 2 b2 n +1) 22 n (1)
1 引言
乘法器[122 ]是现代微处理器和数字信号处理器 的重要部件 ,是图像处理等实时信号处理的核心 ,其 性能直接影响着系统处理数据的性能[324 ] . 而乘法 器性能的提高基本上取决于编码算法 、部分积的压 缩和最终相加三部分. 文中根据补码的特点 ,利用基 4 布斯编码[4 ]以减少部分积的个数 ,采用改进的 422 压缩器[5 ] 为单元的一种新型 Wallance 树性结构[6 ] 来提高部分积的压缩效率 ; 设计使用 Verilog HDL 进行了 R TL 级描述 ,通过综合和布局布线 ,实现该 乘法器并达到设计要求.
n =0
式 (1) 中的各项式为部分积 , 用 PP 表示 , 于是
有
31
∑ PPn =
ai2 i ( b2 n - 1 + b2 n - 2 b2 n +1) 22 n (2)
i =0
n = 0 ,1 , …,16
为了符合基 4 Boot h 算法的要求 ,令式 (1) 、式 (2) 中
b33 = b32 = b- 1 = 0 ,这样从式 (1) 可以看出无符号
32 ×32 High2speed Multiplier Design and Implementation
L I J un2qiang1 , L I Dong2sheng1 ,2 , L I Yi2lei1 , ZHOU Zhi2zeng3
(1 Department of Information , Electronic Engineering Institute , Hefei 230037 , China ; 2 VL SI Research Institute , Hefei University of Technology , Hefei 230009 , China ; 3 The Army 63889 Unit , Mengzhou 454750 , China)
换可以得到以下两个布尔表达式 :
Carry = ( a1
a2
a3 + a4) · cin +
( a1 a2 a3 + a4) ·a4
(6)
Cout = ( a1 a2) ·a3 + ( a1 a2) ·a1 (7)
从式 (6) 、式 (7) 两式可以看到 ,逻辑电路可由异
或门和 2 选 1 的选择器组成 ,可以构成如图 4 ( b) 中
摘 要 : 设计并实现了一种 32 ×32 高速乘法器. 本设计通过改进的基 4 Boot h 编码产生部分积 ,用一种改进的 Wallace 树结构压缩部分积 ,同时采用一种防止符号扩展的技术有效地减小了压缩结构的面积. 整个设计采用 Ver2 ilog HDL 进行了结构级描述 ,用 SIMC 0. 18μm 标准单元库进行逻辑综合. 时间延迟为 4. 34 ns ,系统时钟频率可达 230 MHz. 关键词 : 乘法器 ;改进 Boot h 编码 ;压缩器 ; Wallace 树 中图分类号 : TN79 + 1 文献标识码 : A 文章编号 : 1000 - 7180 (2009) 12 - 0023 - 04
对传统的基于全加器组成的压缩单元进行分
析 ,得出其布尔表达式如下 :
S = a1 a2 a3 a4 cin
(3)
Carry = ( a1 a2 a3) ·a4 + ( a1 a2 a3) ·
cin + a4 ·cin
(4)
Cout = a1 ·a2 + a1 ·a3 + a2 ·a3
(5)
对式 (4) 、式 (5) 两个表达式进行等价的逻辑转
第 12 期
李军强 ,等 :32 ×32 高速乘法器的设计与实现
25
乘法结果. 部分积相加的方法有多种 ,采用不同的压 缩器组成的不同加法结构直接影响乘法器的速度和
版图规则性. 所以较好的乘法器总是从压缩器单元 和压缩结构两方面着手来取得速度与面积 、规则的
最佳组合. 4. 1 改进的 422 压缩器
0
1
- 1 ×A 22 n 1
1
0
0
1
1
0
- 1 ×A 22 n 1
1
0
1
1
1
1
- 0 ×A 22 n 1
0
1
1
传统的基 4 Boot h 编码逻辑表示和部分积产生 逻辑分别如图 2 (a) 、图 2 ( b) ,从表 1 中可以得出 4 个控制信号的逻辑表达式和部分积产生的逻辑设计 分别如图 3 (a) 、图 3 (b) 所示.
图 5 符号位扩展修正前后的 CSA 阵列
图 5 (a) 中 S 为每一个部分积的符号扩展位 (即 PPn [ 33 ]) ,可以从图中看出扩展后 CSA 阵列很大 , 需要逻辑资源会很大. 为了得出符号不必扩展的方 法 ,先假设所有的部分积都是负的 ,那么对于 32 位 的乘法 ,图 5 (a) 中所扩展的符号位都为“1”. 这样 , 这些所有符号扩展的“1”的和为
32 位数相乘一共有 17 个部分积. 其实对于有符号
数 ,只要对乘数进行符号扩展 , 令 b33 = b32 = b31 ,
令 b- 1 = 0 ,这样有符号 、无符号数相乘就统一起来
了. 统一后的部分积 PP16 为
0
有符号乘法
PP16 = A ·b31 ·232 无符号乘法
3. 2 基 4 Boot h 编码器逻辑设计
16
S - sum = ∑(233 - 22 i) mod233 i=0 16 = ∑( - 22 i) i=0 = - (232 + 230 + L 22 + 20) = - 1010 …10101 = (1010 …1011) 补 (8) 将这 S 和可以作为一个定值加入部分积中 ,符
号位扩展“1”就可用 S - sum = (1010 …1011) 2 来表 示 ,最低位的权值是 234 . 如此表示 ,图 5 (a) 左上角 的 S 就全为“0”,不用扩展了 ,每一个 CSA 阵列的部 分积长度一致了 ,如果一个部分积实际是非负的 ,则 该部分积的符号位应为“0”,为了消除前面假定它是
24
微电子学与计算机
2009 年
果时 ,最后利用一个 64 位超前进位加法器将前面两 个结果相加得出最终的结果.
图 1 乘法器结构图
3 基 4 BOO TH 算法及编码逻辑设计
基 4 Boot h 算法能够将部分积数目减至乘数位 数的一半 ,大大提高了乘法器的速度 ;同时结构较为 规整 、连线简单 ,易于 VL SI 版图实现. 3. 1 32 位乘法基 4 Boot h 算法
2620卷09 年第1212月期
微电子学与计算机 M ICRO EL ECTRON ICS & COM PU TER
Vol. 26 No. 12 December 2009
32 ×32 高速乘法器的设计与实现
李军强1 ,李东生1 ,2 ,李奕磊1 ,周志增3
(1 电子工程学院 信息系 ,安徽 合肥 230037 ;2 合肥工业大学 微电子设计研究所 ,安徽 合肥 230009 ; 3 63889 部队 ,河南 孟州 454750)
Abstract : A design of hign2performance 32 ×32 multiplier is presented. The design , which generates partial products by modified radix24 Boot h encoding , compresses t hem using a modified Wallace tree structure , and optimize t he compressor structure by preventing sign2extend algorit hm. The whole design is described in Verilog HDL at structure level , and syn2 t hesized using t he SIMC 0. 18μm standard cell library. The synt hesis result of t his design shows t hat t he delay can be re2 duced to 4. 34 ns and t he frequency of t he system can reach 230MHz. Key words : multiplier ; modified Boot h encoding ; compressor ; Wallace tree
图 2 传统的基 4 Boot h 编码逻辑图
图 3 改进的基 4 Boot h 编码逻辑图
对比图 3 和图 2 ,可以发现 ,在关键路径上图 3 少了一个 △NOR门延迟时间.
4 改进的 422 压缩器 、防止符号位扩展的处 理和加法阵列结构安排
当产生部分积 PPn 之后 ,将它们相加就可得到