CN101819513A - 一种由补码求原码绝对值的方法 - Google Patents
一种由补码求原码绝对值的方法 Download PDFInfo
- Publication number
- CN101819513A CN101819513A CN 201010115996 CN201010115996A CN101819513A CN 101819513 A CN101819513 A CN 101819513A CN 201010115996 CN201010115996 CN 201010115996 CN 201010115996 A CN201010115996 A CN 201010115996A CN 101819513 A CN101819513 A CN 101819513A
- Authority
- CN
- China
- Prior art keywords
- complement code
- code
- absolute value
- output
- scrambler
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种由补码求原码绝对值的方法,可用于完成补码原码转换。该方法将要转换的补码A通过编码器C得到编码后的结果B,再把B与原来的补码A异或,最终得到补码的绝对值D。使用本发明提供的方法,与常规的技术相比可节省一定的基本单元,面积变小,功耗降低,且关键路径上的延时变短,计算速度提高。
Description
技术领域
本发明属于电子技术领域,具体涉及一种补码求绝对值方法。
技术背景
在集成电路设计过程中,人们经常会遇到求补码的绝对值运算。而补码转换成原码通常会采用附图1所示的取反加一的方法,先将补码的各位取反,再加一,得到最终的结果。
因为取反加一的过程需要大量的半加器和反相器,所以消耗的器件比较多。而且取反加一的关键路径很长,特别是位数比较多的情况下,面积和成本相应比较高,计算速度也比较慢。
发明内容
本发明针对现有技术的不足,提供了一种补码求绝对值方法。应用该方法可以节省一定的基本单元,缩短关键路径上的延时。在芯片的设计中,特别是位数多的情况下,可节约器件和降低计算时间。
本发明解决技术问题所采用的方案是:一种补码求绝对值方法,其特征在于,参加运算的数必须为负数的补码,步骤如下:
(3)将补码A送入编码器C,得到编码后的数B。
(4)将编码后得到的数B与原来的补码A逐位异或,最后得到补码的绝对值D。
编码器C的特征在于:编码规律为从补码A的最低位开始逐位检查,直到找出第一个1出现的位置A[X],然后输出B[X:0]为0,B[N-1:X+1]为1。具体步骤如下:
第一步:检查补码A的A[0]位是否为1。如果A[0]为1,则输出B[0]为0,B[N-1:1]位输出为1。如果A[0]为0,继续第二步。
第二步:检查补码A的A[1]位是否为1。如果A[1]为1,则输出B[1:0]都为0,B[N-1:2]位输出为1。如果A[1]为0,继续第三步。
第三步:检查补码A的A[2]位是否为1。如果A[2]为1,则输出B[2:0]都为0,B[N-1:3]输出为。.如果A[2]为0,继续第四步。
.......
这样从最低位A[0]到A[N-1]位逐位检查第一个1出现的位置,对应输出见表1,表中:Y表示取值为0或者1。在输入数据中,Y...表示A[N-3:3]中取任意值。0...表示A[N-3:3]数据全部为0。在输出数据中,1...表示B[N-3:3]全部为1,0...表示B[N-3:3]全部为0。
特别地,从最低位开始检查,当A[N-2:0]都为0的时候,不管A[N-1]输入是0还是1,输出从B[N-1:0]都为0.
表1:
从表1可以总结出B的每一位的输出表达式为
B[0]=0
B[1]=A[0]
B[2]=A[0]+A[1]
B[N-2]=A[0]+A[1]+A[2]+......+A[N-3]
B[N-1]=A[0]+A[1]+A[2]+......+A[N-2]
整个电路的原理图参见图2。
本发明原理的特点是,用编码的方法取代了传统的用半加器加一的方法,来达到优化的目的。本发明的有益效果是,在芯片设计中为实现补码转原码的运算,使用本发明提供的方法,可节省一定的基本单元,缩短关键路径上的延时,从而使设计的产品面积变小,功耗降低,成本降低,且计算速度得到提高。
附图说明
图1是现有常用的补码转原码方法示意图;
图2是本发明的求补码的绝对值的示意图;
图3是4位编码器C的电路图。
具体实施方式
下面结合附图和实例对本发明作进一步说明,本发明的目的和效果将更加明显,但本发明的实施不限于此。
如图2,为本发明的求补码的绝对值的示意图。补码A送入编码器C,得到编码后的数B,所述补码A为负数的补码;将编码后得到的数B与原来的补码A逐位异或,最后得到补码的绝对值D。
下面以4位的负数的补码求绝对值作为例子,4位的编码器C的编码原理如表2所示,
表2
A[3] | A[2] | A[1] | A[0] | B[3] | B[2] | B[1] | B[0] |
x | x | x | 1 | 1 | 1 | 1 | 0 |
x | x | 1 | 0 | 1 | 1 | 0 | 0 |
x | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
根据上表,我们可以写出对应的B[(N-1):1]的各位的表达式
B[0]=o
B[1]=A[0]
B[2]=A[0]+A[1]
B[3]=A[0]+A[1]+A[2]
具体实现的电路如图3所示,图中的in[3…0]为补码A的输入,out[3…0]为输出数B。
本实施方式求绝对值处理方法具体步骤如下:
(1)将补码A送入编码器C,得到编码后的数B。
(2)将编码后得到的数B与原来的补码A逐位异或,得到补码的绝对值D。
例如,补码A为1010(-6),其中最高位为符号位。
步骤(1),通过编码后对应输出B为1100
步骤(2),A与B逐位异或最终得到结果D:0110.结果正确。8位,16位,32位等的电路可以用4位的电路进行级联。
下面列举采用以上方法与使用传统取反加一的方法所占用资源情况。采用不同方法占用资源对比如表3所示,表3中“所有逻辑单元”中的not表示非门,xor表示或非门,and表示与门。“在关键路径延时”上,and表示一个与门的延时,xor表示一个异或门的延时,or表示一个或门的延时。
表3
由上表可以看出,位数越高,面积优势比较明显,延时优势下降。针对不同的面积和延时的需要,采用不同的位数优化。
Claims (5)
1.一种由补码求原码绝对值的方法,其特征在于包括如下步骤:
(1)将补码A送入编码器C,得到编码后的数B,所述补码A为负数的补码;
(2)将编码后得到的数B与原来的补码A逐位异或,最后得到补码的绝对值D。
2.根据权利要求1所述的方法,特征在于编码器C的编码过程为:从补码A的最低位开始逐位检查,直到找出第一个1出现的位置A[X],然后输出
B[X:0]都为0,B[N-1:X+1]都为1,其中,N为编码器的位数,X为0~N-1中的某个整数,X越大,表示A[X]、B[X]所在的位越高,B[X:0]表示数B中B[X]至B[0]的所有位,B[N-1:X+1]表示数B中B[N-1]至B[X+1]的所有位。
3.根据权利要求2所述的方法,特征在于编码器C的编码步骤具体如下:
第一步:检查补码A的A[0]位是否为1,如果A[0]为1,则输出B[0]为0,B[N-1]:1]位输出为1,如果A[0]为0,继续第二步;
第二步:检查补码A的A[1]位是否为1,如果A[1]为1,则输出B[1:0]都为0,B[N-1:2]位输出为1,如果A[1]为0,继续第三步;
第三步:检查补码A的A[2]位是否为1,如果A[2]为1,则输出B[2:0]都为0,B[N-1:3]输出为1,如果A[2]为0,继续第四步;
......
这样从最低位A[0]依次到最高位A[N-1]位逐位检查第一个1出现的位置,然后输出数B各位的值。
4.根据权利要求3所述的方法,其特征在于编码器C的编码过程中,从最低位开始检查,当A[N-2:0]都为0的时候,不管A[N-1]输入是0还是1,输出从B[N-1:0]都为0。
5.根据权利要求4所述的方法,其特征在于B的每一位的输出表达式为
B[0]=0
B[1]=A[0]
B[2]=A[0]+A[1]
B[N-2]=A[0]+A[1]+A[2]+......+A[N-3]
B[N-1]=A[0]+A[1]+A[2]+......+A[N-2].
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101159962A CN101819513B (zh) | 2010-02-11 | 2010-02-11 | 一种由补码求原码绝对值的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101159962A CN101819513B (zh) | 2010-02-11 | 2010-02-11 | 一种由补码求原码绝对值的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101819513A true CN101819513A (zh) | 2010-09-01 |
CN101819513B CN101819513B (zh) | 2012-05-23 |
Family
ID=42654631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101159962A Expired - Fee Related CN101819513B (zh) | 2010-02-11 | 2010-02-11 | 一种由补码求原码绝对值的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101819513B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202053A (zh) * | 2014-07-17 | 2014-12-10 | 南京航空航天大学 | 一种快速n位原码到补码的转换装置和转换方法 |
CN112230883A (zh) * | 2020-10-14 | 2021-01-15 | 上海芯旺微电子技术有限公司 | 一种用于乘法器零标志位的产生电路、乘法器和检测方法 |
CN112350716A (zh) * | 2020-11-27 | 2021-02-09 | 中科院微电子研究所南京智能技术研究院 | 一种补码运算方法及装置、补码运算装置的运算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716178A (zh) * | 2005-07-07 | 2006-01-04 | 杭州晶图微芯技术有限公司 | 一种补码乘法处理方法 |
US20060282238A1 (en) * | 2005-05-25 | 2006-12-14 | Shankar Krithivasan | System and method of performing two's complement operations in a digital signal processor |
CN1975661A (zh) * | 2006-12-20 | 2007-06-06 | 北京中星微电子有限公司 | 一种集成电路中的数据运算方法及装置 |
-
2010
- 2010-02-11 CN CN2010101159962A patent/CN101819513B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282238A1 (en) * | 2005-05-25 | 2006-12-14 | Shankar Krithivasan | System and method of performing two's complement operations in a digital signal processor |
CN1716178A (zh) * | 2005-07-07 | 2006-01-04 | 杭州晶图微芯技术有限公司 | 一种补码乘法处理方法 |
CN1975661A (zh) * | 2006-12-20 | 2007-06-06 | 北京中星微电子有限公司 | 一种集成电路中的数据运算方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202053A (zh) * | 2014-07-17 | 2014-12-10 | 南京航空航天大学 | 一种快速n位原码到补码的转换装置和转换方法 |
CN104202053B (zh) * | 2014-07-17 | 2017-04-19 | 南京航空航天大学 | 一种快速n位原码到补码的转换装置和转换方法 |
CN112230883A (zh) * | 2020-10-14 | 2021-01-15 | 上海芯旺微电子技术有限公司 | 一种用于乘法器零标志位的产生电路、乘法器和检测方法 |
WO2022078265A1 (zh) * | 2020-10-14 | 2022-04-21 | 上海芯旺微电子技术有限公司 | 一种用于乘法器零标志位的产生电路、乘法器和检测方法 |
CN112350716A (zh) * | 2020-11-27 | 2021-02-09 | 中科院微电子研究所南京智能技术研究院 | 一种补码运算方法及装置、补码运算装置的运算方法 |
CN112350716B (zh) * | 2020-11-27 | 2023-08-04 | 中科南京智能技术研究院 | 一种补码运算方法及装置、补码运算装置的运算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101819513B (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Unrelated parallel machine scheduling problem with energy and tardiness cost | |
CN105183425B (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
CN106990937A (zh) | 一种浮点数处理装置 | |
CN101527010A (zh) | 人工神经网络算法的硬件实现方法及其系统 | |
CN103227635A (zh) | 一种高速低功耗的cmos全加器及其运算方法 | |
CN101819513B (zh) | 一种由补码求原码绝对值的方法 | |
Anitha et al. | A new hybrid multiplieusing Dadda and Wallace method | |
CN101216865A (zh) | 用于数字集成电路设计的最佳极性搜索方法 | |
Yin et al. | FPGA-based high-performance CNN accelerator architecture with high DSP utilization and efficient scheduling mode | |
CN103957002B (zh) | 一种栅压自举异或/同或电路及栅压自举一位全加器 | |
Ge et al. | BNReLU: Combine batch normalization and rectified linear unit to reduce hardware overhead | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN1209809C (zh) | 一种具有并行结构的大规模数字电路最大功耗估计方法 | |
Sung et al. | A power-aware 2-dimensional bypassing multiplier using cell-based design flow | |
CN104202053B (zh) | 一种快速n位原码到补码的转换装置和转换方法 | |
CN102929575B (zh) | 一种模(2n+3)乘法器 | |
CN111523657A (zh) | 神经网络加速器创建方法及装置、电子设备和存储介质 | |
CN103699353B (zh) | 一种一位全减器电路 | |
Bansal et al. | High performance pipelined signed 64x64-bit multiplier using radix-32 modified Booth algorithm and Wallace structure | |
CN102955682B (zh) | 一种模(23n-2n)乘法器 | |
Ghasemzadeh et al. | A new ultra high speed 5-2 compressor with a new structure | |
CN105827248A (zh) | 一种自适应频率编码方法和装置 | |
CN220305789U (zh) | 一种基于基本门电路的低功耗全加器 | |
CN203457135U (zh) | 格雷码计数器装置 | |
CN202617076U (zh) | 一种提前终止异步比较器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20150211 |
|
EXPY | Termination of patent right or utility model |