一种由补码求原码绝对值的方法技术

技术编号:3933745 阅读:519 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种由补码求原码绝对值的方法,可用于完成补码原码转换。该方法将要转换的补码A通过编码器C得到编码后的结果B,再把B与原来的补码A异或,最终得到补码的绝对值D。使用本发明专利技术提供的方法,与常规的技术相比可节省一定的基本单元,面积变小,功耗降低,且关键路径上的延时变短,计算速度提高。

【技术实现步骤摘要】

本专利技术属于电子
,具体涉及一种补码求绝对值方法。
技术介绍
在集成电路设计过程中,人们经常会遇到求补码的绝对值运算。而补码转换成原 码通常会采用附图1所示的取反加一的方法,先将补码的各位取反,再加一,得到最终的结果。因为取反加一的过程需要大量的半加器和反相器,所以消耗的器件比较多。而且 取反加一的关键路径很长,特别是位数比较多的情况下,面积和成本相应比较高,计算速度 也比较慢。
技术实现思路
本专利技术针对现有技术的不足,提供了一种补码求绝对值方法。应用该方法可以节 省一定的基本单元,缩短关键路径上的延时。在芯片的设计中,特别是位数多的情况下,可 节约器件和降低计算时间。本专利技术解决技术问题所采用的方案是一种补码求绝对值方法,其特征在于,参加 运算的数必须为负数的补码,步骤如下(3)将补码A送入编码器C,得到编码后的数B。(4)将编码后得到的数B与原来的补码A逐位异或,最后得到补码的绝对值D。编码器C的特征在于编码规律为从补码A的最低位开始逐位检查,直到找出第一 个1出现的位置A,然后输出Β为0,B为1。具体步骤如下第一步检查补码A的A位是否为1。如果A为1,则输出B为0,B 位输出为1。如果A为0,继续第二步。第二步检查补码A的A位是否为1。如果A为1,则输出B都为0, B位输出为1。如果A为0,继续第三步。第三步检查补码A的A位是否为1。如果A为1,则输出B都为0, B输出为。.如果A为0,继续第四步。.......这样从最低位A到A位逐位检查第一个1出现的位置,对应输出见表1, 表中Y表示取值为0或者1。在输入数据中,Y...表示Α中取任意值。0...表示 Α数据全部为0。在输出数据中,1...表示Β全部为1,0...表示Β 全部为0。特别地,从最低位开始检查,当Α都为0的时候,不管Α输入是0还 是1,输出从Β都为0.表1:<table>table see original document page 4</column></row><table>从表1可以总结出B的每一位的输出表达式为B = 0B = AB = A+AB = A+A+A+......+AB = A+A+A+......+A 整个电路的原理图参见图2。本专利技术原理的特点是,用编码的方法取代了传统的用半加器加一的方法,来达到 优化的目的。本专利技术的有益效果是,在芯片设计中为实现补码转原码的运算,使用本专利技术提 供的方法,可节省一定的基本单元,缩短关键路径上的延时,从而使设计的产品面积变小, 功耗降低,成本降低,且计算速度得到提高。附图说明图1是现有常用的补码转原码方法示意图;图2是本专利技术的求补码的绝对值的示意图;图3是4位编码器C的电路图。具体实施例方式下面结合附图和实例对本专利技术作进一步说明,本专利技术的目的和效果将更加明显, 但本专利技术的实施不限于此。如图2,为本专利技术的求补码的绝对值的示意图。补码A送入编码器C,得到编码后 的数B,所述补码A为负数的补码;将编码后得到的数B与原来的补码A逐位异或,最后得 到补码的绝对值D。下面以4位的负数的补码求绝对值作为例子,4位的编码器C的编码原理如表2所 示,表2<table>table see original document page 5</column></row><table>根据上表,我们可以写出对应的B的各位的表达式B =OB=AB = A+AB = A+A+A具体实现的电路如图3所示,图中的in为补码A的输入,out为输 出数B。本实施方式求绝对值处理方法具体步骤如下(1)将补码A送入编码器C,得到编码后的数B。(2)将编码后得到的数B与原来的补码A逐位异或,得到补码的绝对值D。例如,补码A为1010 (-6),其中最高位为符号位。步骤(1),通过编码后对应输出B为1100步骤(2),A与B逐位异或1100 1010=0110,最终得到结果D =0110.结果正确。8 位,16位,32位等的电路可以用4位的电路进行级联。下面列举采用以上方法与使用传统取反加一的方法所占用资源情况。采用不同方 法占用资源对比如表3所示,表3中“所有逻辑单元”中的not表示非门,xor表示或非门, and表示与门。“在关键路径延时”上,and表示一个与门的延时,xor表示一个异或门的延 时,or表示一个或门的延时。表3<table>table see original document page 6</column></row><table> 由上表可以看出,位数越高,面积优势比较明显,延时优势下降。针对不同的面积 和延时的需要,采用不同的位数优化。权利要求,其特征在于包括如下步骤(1)将补码A送入编码器C,得到编码后的数B,所述补码A为负数的补码;(2)将编码后得到的数B与原来的补码A逐位异或,最后得到补码的绝对值D。2.根据权利要求1所述的方法,特征在于编码器C的编码过程为从补码A的最低位 开始逐位检查,直到找出第一个1出现的位置A,然后输出Β都为0,Β都为1,其中,N为编码器的位数,X为0 N-I中的某个 整数,X越大,表示A、B所在的位越高,Β表示数B中B至B的所有位, Β表示数B中B至B的所有位。3.根据权利要求2所述的方法,特征在于编码器C的编码步骤具体如下第一步检查补码A的A位是否为1,如果々为1,则输出BW]为0,B 1] 位输出为1,如果A为0,继续第二步;第二步检查补码A的A位是否为1,如果A为1,则输出B都为0,B位输出为1,如果A为0,继续第三步;第三步检查补码A的A位是否为1,如果々为1,则输出B都为0,B输出为1,如果A为0,继续第四步;这样从最低位A依次到最高位A位逐位检查第一个1出现的位置,然后输出 数B各位的值。4.根据权利要求3所述的方法,其特征在于编码器C的编码过程中,从最低位开始检 查,当A都为0的时候,不管A输入是0还是1,输出从B都为0。5.根据权利要求4所述的方法,其特征在于B的每一位的输出表达式为 B =0B = A B = A+AB = A+A+A+......+AB = A+A+A+......+A ,全文摘要本专利技术提供,可用于完成补码原码转换。该方法将要转换的补码A通过编码器C得到编码后的结果B,再把B与原来的补码A异或,最终得到补码的绝对值D。使用本专利技术提供的方法,与常规的技术相比可节省一定的基本单元,面积变小,功耗降低,且关键路径上的延时变短,计算速度提高。文档编号G06F7/00GK101819513SQ20101011599公开日2010年9月1日 申请日期2010年2月11日 优先权日2010年2月11日专利技术者姜小波, 范永杰 申请人:华南理工大学本文档来自技高网...

【技术保护点】
一种由补码求原码绝对值的方法,其特征在于包括如下步骤:(1)将补码A送入编码器C,得到编码后的数B,所述补码A为负数的补码;(2)将编码后得到的数B与原来的补码A逐位异或,最后得到补码的绝对值D。

【技术特征摘要】

【专利技术属性】
技术研发人员:姜小波范永杰
申请(专利权)人:华南理工大学
类型:发明
国别省市:81[中国|广州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1