[发明专利]用硬件实现指数运算的电路有效
申请号: | 201210175191.6 | 申请日: | 2012-05-31 |
公开(公告)号: | CN103455303B | 公开(公告)日: | 2017-10-31 |
发明(设计)人: | 王吉健 | 申请(专利权)人: | 上海华虹集成电路有限责任公司 |
主分类号: | G06F7/556 | 分类号: | G06F7/556 |
代理公司: | 上海浦一知识产权代理有限公司31211 | 代理人: | 戴广志 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 硬件 实现 指数 运算 电路 | ||
技术领域
本发明涉及一种用硬件实现指数运算的电路。
背景技术
指数运算是一种常用的运算,在支持浮点运算的处理器中,与对数运算一样,经常被要求实现。目前指数运算在硬件实现的时候,一般是用查找表实现的,这样需要占用大量的芯片面积。即使用软件方式实现,也只能通过泰勒展开等方式计算,计算时间比较长。
发明内容
本发明要解决的技术问题是提供一种用硬件实现指数运算的电路,计算速度快、精度高,且能显著减少所占用的芯片面积。
为解决上述技术问题,本发明的用硬件实现指数运算的电路,包括:
一最高位补“1”电路,其输入是a[M-1]到a[0],用a[M-1:0]表示,输出记为b;用于在输入的最高位前补一个逻辑”1”,使输出b的最高位为1,其余位从高到低则为a[M-1:0];
一移位电路,其一输入是所述最高位补“1”电路的输出b,另一输入是a[M+N-1]到a[M],记为a[M+N-1:M],表示成十进制数则为k,输出记为c,如果k-M是负数,则将b右移M-k位,如果k-M是非负数,则将b左移k-M位,补0。
采用本发明的用硬件实现指数运算的电路,在计算2x,x为11位浮点数,高4位为整数部分,低7位是小数部分时,仅仅需要几十个门电路,由纯组合电路即可实现。运算快速而计算结果的最大误差仅仅是6%。本发明与采用查找表由硬件实现指数运算的电路相比,大大减少了所占用的芯片面积;与采用软件实现指数运算的方式相比,大大提高了执行速度。
本发明可用于各种需要进行指数运算的产品。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是所述用硬件实现指数运算的电路的原理框图;
图2是所述用硬件实现指数运算的电路仿真结果图。
具体实施方式
参见图1所示,所述用硬件实现指数运算的电路,在下面的实施例中M=7,N=4,输入a有7+4=11位,输出c有24=16位,该电路包括:
一个最高位补”1”电路,其输入是a[M-1]到a[0],用a[M-1:0]表示,输出记为b。这个最高位补”1”电路的作用是在输入的最高位前补一个逻辑”1”,所以b的最高位是1,其余位从高到低就是a[M-1:0]。例如,假设a用二进制表示为10110110101,那么a[M-1:0]就是0110101(M=7),那么b就是10110101。
一个移位电路,其一个输入是所述最高位补”1”电路的输出b,另一个输入是a[M+N-1]到a[M],记为a[M+N-1:M],表示成十进制数就记为k;输出记为c。这个选择电路的作用就是,如果k-M是负数,就把b右移M-k位,如果k-M是非负数,就把b左移k-M位,补0。例如,假设a用二进制表示为10110110101,那么a[M+N-1:M]就是1011(M=7,N=4),那么k就是11。由于k-M=11-7=4,是非负数,那么输出c就是b右移4位补0,c就等于101101010000。
图2是上述实施例的仿真结果,其中横轴是输入数据,M=7,N=4;纵轴是精确计算2x的结果与本发明的运算结果的差同精确值之间的比值。从图中可见,当输入x的范围在1~2047内,用本电路计算2x的结果与2x的精确值之间的差别仅占2x的精确值的0.06即最大计算误差为6%。
以上通过具体实施方式和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华虹集成电路有限责任公司,未经上海华虹集成电路有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210175191.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:获取控件的逻辑位置的方法及装置
- 下一篇:一种电熨斗外壳的喷漆方法