一种基于冗余ODDS数的十进制3:2压缩器结构的制作方法

文档序号:16529128发布日期:2019-01-05 10:35阅读:474来源:国知局
一种基于冗余ODDS数的十进制3:2压缩器结构的制作方法

本发明公开了一种基于冗余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压缩器将压缩至一个位和以及一个进位其位权分别为1和2;第二二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为2和4;第三二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为4和8;第四二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为8和16。进位的位权为16,将其拆分为位权为10的co1i+1以及位权为6的使得其中,表示的算术值(又称为数值),逻辑变量co1i+1被传递至第i+1字。将第一至第四二进制3:2压缩器生成的二进制位和以及进位拆分为两组,第一组包括第二组包括其拆分原则是:一组(方块b)为包含所有位权为1的数值范围∈[0,15]的变量集合(该组不产生进位),另外一组(方块a)是数值范围∈[0,24]的偶数值变量集合,第一组经编码转换产生一个odds数,第二组偶数值变量集合转换为位权是8,4,2和进位(位权为10)的变量集合,进位可以传递到高一十进制位的编码转换方块a(i+1)的odds数输出的最低位(位权为1)而无需和高一位十进制数进行叠加,因此可以构建一个无进位叠加的十进制3:2压缩器。

第i字的编码转换方块a(i)将和co2i(由编码转换方块a(i-1)产生的第i-1字的进位)转换至一个odds操作数和一个位权为10的进位co2i+1,其中,co2i+1被传递至第i+1字。

编码转换方块b(i)将和co1i(由i-1字第一级压缩模块传递来的进位)转换至一个odds操作数

编码转换方块a(i)由四个反相器、两个2输入与非门、四个2输入与门、两个2输入同或门、三个2输入或门、一个3输入或与非门和六个2选1数据选择器构成。编码转换方块a将和co2i转换为一个odds操作数以及一个位权为10的进位co2i+1,编码转换的逻辑表达式如下所示:

如图1所示,表达式中十进制位权为10的co2i+1被传递至第i+1字,co2i是由第i-1字编码转换方块a传递来的进位。表达式中的位权为6,其逻辑值与第i字第四二进制3:2压缩器的进位输出相同,也就是

第i字编码转换方块b由两个2输入与门、一个2输入或门、一个3输入与门、四个2输入异或门和一个2选1数据选择器构成。编码转换方块b将和co1i转换为一个odds操作数编码转换的逻辑表达式如下所示:

表达式中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中:为第i字十进制3:2压缩器的3个odds编码的输入操作数,采用4个二进制3:2压缩器对这3个操作数进位按位压缩,产生4个二进制位和()以及4个二进制进位(),4个二进制位和的位权分别为8、4、2和1,4个进位的位权分别为16、8、4和2。将位权为16的二进制进位拆分为和co1i+1,其中,的位权为6,被输出至编码转换方块a(i)中,co1i+1的位权为10,co1i+1被传递至第i+1字。

4个二进制3:2压缩器的压缩结果被分为两组,其中,为一组,为一组。和第i-1字的进位co2i在编码转换方块a(i)中被转换为一个odds操作数和一个位权为10的进位co2i+1,co2i+1被传递至第i+1字编码转换方块a(i+1)中。另一组数和第i-1字的进位co1i在编码转换方块b(i)中被转换为一个odds操作数

图2中:和co2i为编码转换方块a(i)的5个输入操作数,位权分别为6、8、8、2和1。编码转换方块a(i)的电路由反相器、2输入与门、2输入与非门、2输入或门、2输入同或门、3输入或与非门以及2选1数据选择器构成。编码转换方块a(i)的输出包括一个十进制进位co2i+1和一个odds操作数其中,的值等于i-1字的进位co2i.

图3中:和co1i为编码转换方块b(i)的5个输入操作数,位权分别为4、4、2、1和1。编码转换方块b(i)的电路由2输入与门、2输入或门、2输入异或门、3输入与门以及2选1数据选择器构成。编码转换方块b(i)的输出为一个odds操作数

设3个odds操作数分别为

第一二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为1和2;所述第二二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为2和4;所述第三二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为4和8;所述第四二进制3:2压缩器将压缩至一个位和以及一个进位其位权分别为8和16。所述进位的位权为16,将其拆分为位权为10的co1i+1以及位权为6的其中,co1i+1被传递至第i+1字。将第一至第四二进制3:2压缩器生成的二进制位和以及进位拆分为两组,第一组包括第二组包括

编码转换方块a(i)将和第i-1字的进位co2i转换至一个odds操作数和一个位权为10的进位co2i+1,其中,co2i+1被传递至第i+1字。

编码转换方块b(i)将和第i-1字的进位co1i转换至一个odds操作数

编码转换方块a(i)由四个反相器、两个2输入与非门、四个2输入与门、两个2输入同或门、三个2输入或门、一个3输入或与非门和六个2选1数据选择器构成。编码转换方块a(i)将和co2i转换为一个odds操作数以及一个位权为10的进位co2i+1,编码转换方块a(i)的逻辑表达式如下所示:

表达式中十进制位权为10的co2i+1被传递至第i+1字,co2i为第i-1字传递来的进位。表达式中的位权为6,其逻辑值与第i字第四二进制3:2压缩器的进位输出相同,也就是

编码转换方块b(i)由两个2输入与门、一个2输入或门、一个3输入与门、四个2输入异或门和一个2选1数据选择器构成。编码转换方块b(i)将和co1i转换为一个odds操作数编码转换方块b(i)的逻辑表达式如下所示:

表达式中co1i为第i-1字传递来的进位,其逻辑值与第i-1字第四二进制3:2压缩器的进位输出相同,也就是

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1