本发明公开了一种基于冗余odds(overloadeddecimaldigitset,超载十进制数集)数的十进制3:2压缩器结构,属于数字系统设计的技术领域,尤其涉及一种应用于高性能十进制乘法器的部分积压缩模块。
背景技术:
由于二进制系统具有运算速度快和电路实现更为简单等优点,目前主流的计算机均采用基于冯·诺依曼结构的二进制体系。然而二进制与十进制的转换不可避免地存在舍入与误差,例如,将十进制小数0.2转换为二进制数时,转换结果为无限循环小数。随着数据密集型产业的发展,井喷式增长的数据量导致银行金融、生物医学等领域对计算的精度要求越来越高,传统的二进制算术运算单元已渐渐不能满足相关应用领域的计算精度要求,因此设计出高性能的十进制算术运算单元逐渐成为研究的热点。2008年发行的ieee754的修订版本(ieee754-2008)已经包括了十进制浮点运算的格式和规范。ibm面向工作站的power6、z系列的微处理器和富士通sparc64x微处理器都已经包括了完全符合新标准的十进制浮点算术运算单元硬件。十进制定点乘法器是最基础的十进制算术运算单元,同时也是十进制浮点乘加运算单元的重要组成部分,采用硬件实现高性能十进制乘法器受到越来越多的关注。
十进制乘法运算包括部分积产生、部分积压缩树和最终积产生三个部分,而部分积压缩树的设计关系到十进制乘法器的性能。
二进制压缩器包含的经典的3:2压缩器和4:2压缩器被广泛应用于二进制乘法器设计中。odds数因以下两点被广泛运用于高性能十进制算术运算单元中:(1)冗余odds数的数值范围为[0,15],代表的十进制数制范围更广;(2)odds编码遵循二进制数的表示形式,一些二进制算术运算的规则在odds编码系统中同样适用,因此在十进制算术运算单元中采用odds编码可提高运算效率。目前,已有的基于odds数的2:1压缩器因低一十进制位的进位输出叠加在高一位十进制数上(进位叠加传递)结构复杂且不规则,难于满足高性能十进制乘法器的设计要求。
本发明旨在设计一种用于实现十进制乘法器的部分积压缩树的基于冗余odds数的十进制3:2压缩器。
基于冗余odds数的十进制3:2压缩器的压缩比为3:2,即一个十进制3:2压缩器能够将3个odds操作数压缩至2个。基于冗余odds数的十进制3:2压缩器的压缩过程遵循十进制数的进位规则,无需设计额外的纠错模块,并且压缩过程中采用分级压缩和无进位叠加拆分技术,可以构建结构简单规整的压缩器以及由大量压缩器单元模块构成的压缩树,易于大规模集成电路的实现。
技术实现要素:
本发明的发明目的是针对上述背景技术的不足,首次提供了一种基于冗余odds数的十进制3:2压缩器结构,通过结构简单且规则的压缩器结构以及采用分级压缩和无进位叠加拆分技术的压缩方法实现了odds操作数的3:2压缩,解决了存在进位叠加传递的基于odds数的2:1压缩器结构复杂且不规则的技术问题。
本发明为实现上述发明目的采用如下技术方案:
本发明提出的十进制3:2压缩器通常用于odds部分积压缩树的设计,该电路结构由2级压缩模块构成:由4个二进制3:2压缩器构成的第一级压缩模块和由编码转换方块a以及编码转换方块b构成的第二级压缩模块,可以将3个odds操作数压缩至2个odds数。定义十进制位为字,设第i字的3个odds操作数分别为
第一二进制3:2压缩器将
第i字的编码转换方块a(i)将
编码转换方块b(i)将
编码转换方块a(i)由四个反相器、两个2输入与非门、四个2输入与门、两个2输入同或门、三个2输入或门、一个3输入或与非门和六个2选1数据选择器构成。编码转换方块a将
如图1所示,表达式中十进制位权为10的co2i+1被传递至第i+1字,co2i是由第i-1字编码转换方块a传递来的进位。表达式中的
第i字编码转换方块b由两个2输入与门、一个2输入或门、一个3输入与门、四个2输入异或门和一个2选1数据选择器构成。编码转换方块b将
表达式中co1i是由第i-1字第一级压缩模块传递来的进位,其逻辑值与第i-1字第四二进制3:2压缩器的进位输出
本发明采用上述技术方案,具有以下有益效果:
(1)本发明针对odds部分积压缩,首次提供了一种基于冗余odds数的十进制3:2压缩器结构,该电路结构由2级压缩构成:由4个二进制3:2压缩器构成的第一级压缩模块和由编码转换方块a和b构成的第二级压缩模块,第一级压缩模块的输出被拆分为2项,其中1项的数值为偶数值,最低位可以接受低一十进制位的进位输出并且没有任何的进位叠加。
(2)该十进制3:2压缩器能将3个odds操作数压缩至2个odds数,因此可以运用于十进制乘法运算的部分积压缩树中,本发明采用的分级压缩和无进位叠加的拆分技术可以有效地简化十进制乘法运算系统的结构并且降低系统的延时。
附图说明
图1为基于冗余odds数的十进制3:2压缩器结构图。
图2为第i字编码转换方块a(i)的电路图。
图3为第i字编码转换方块b(i)的电路图。
具体实施方式
下面结合附图对发明的技术方案进行详细说明。
十进制乘法器包括部分积产生、部分积压缩和最终积产生三个部分,其中十进制部分积压缩在整个十进制乘法器结构中规模最大,耗时最多,因此构建一个高性能的十进制压缩器对十进制乘法器的设计至关重要。近年来常用的部分积产生电路包括:(a)有符号基-10编码和非冗余bcd-4221/5211编码构成的部分积阵列;(b)无符号双bcd编码构成的部分积阵列;(c)有符号基-10编码、冗余xs-3编码和odds编码构成的部分积阵列。基于bcd-4221编码的部分积产生电路在产生难倍数3x(x为十进制乘法运算的被乘数)时,需通过十进制加法器将x和2x相加,十进制加法器存在长进位链问题。基于无符号双bcd编码的部分积产生电路不存在长进位链的问题但产生双倍的部分积。基于有符号基-10编码、冗余xs-3编码和odds编码的部分积产生电路不存在长进位链和双倍部分积的问题,所产生的部分积阵列由odds编码构成。本发明提出的基于冗余odds数的十进制3:2压缩器可用于对odds部分积阵列进行压缩。
十进制3:2压缩器通常用于odds部分积压缩树的设计中,该电路结构由2级压缩构成:由4个二进制3:2压缩器构成的第一压缩模块和由编码转换方块a和b构成的第二级压缩模块,可以将3个odds操作数压缩至2个odds数。
图1中:
4个二进制3:2压缩器的压缩结果
图2中:
图3中:
设3个odds操作数分别为
第一二进制3:2压缩器将
编码转换方块a(i)将
编码转换方块b(i)将
编码转换方块a(i)由四个反相器、两个2输入与非门、四个2输入与门、两个2输入同或门、三个2输入或门、一个3输入或与非门和六个2选1数据选择器构成。编码转换方块a(i)将
表达式中十进制位权为10的co2i+1被传递至第i+1字,co2i为第i-1字传递来的进位。表达式中的
编码转换方块b(i)由两个2输入与门、一个2输入或门、一个3输入与门、四个2输入异或门和一个2选1数据选择器构成。编码转换方块b(i)将
表达式中co1i为第i-1字传递来的进位,其逻辑值与第i-1字第四二进制3:2压缩器的进位输出
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。