CN109614073A - 四象限反正切函数硬件实现电路 - Google Patents

四象限反正切函数硬件实现电路 Download PDF

Info

Publication number
CN109614073A
CN109614073A CN201811263212.3A CN201811263212A CN109614073A CN 109614073 A CN109614073 A CN 109614073A CN 201811263212 A CN201811263212 A CN 201811263212A CN 109614073 A CN109614073 A CN 109614073A
Authority
CN
China
Prior art keywords
look
value
quadrant
rom
arctan function
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
Application number
CN201811263212.3A
Other languages
English (en)
Other versions
CN109614073B (zh
Inventor
吴键
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Electronic Technology Institute No 10 Institute of Cetc
Original Assignee
Southwest Electronic Technology Institute No 10 Institute of Cetc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southwest Electronic Technology Institute No 10 Institute of Cetc filed Critical Southwest Electronic Technology Institute No 10 Institute of Cetc
Priority to CN201811263212.3A priority Critical patent/CN109614073B/zh
Publication of CN109614073A publication Critical patent/CN109614073A/zh
Application granted granted Critical
Publication of CN109614073B publication Critical patent/CN109614073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/548Trigonometric functions; Co-ordinate transformations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Analogue/Digital Conversion (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提出了一种四象限反正切函数硬件实现电路,旨在提供一种实现简单,精度较高的四象限反正切电路。本发明通过下述技术方案予以实现:预处理电路对四象限反正切函数arctan2(a,b)的输入反正切函数信号a和输入反正切函数信号b,作乘除法256*a/b得到除值c,将除值c送入二象限反正切查表逻辑电路通过特定逻辑转换为查找表输入d值,二象限反正切ROM查找表模块根据查找表输入d,对ROM寻址得到二象限反正切弧度查表值e,二象限反正切查表逻辑电路将弧度查表值e转换为二象限反正切查表输出f。输出处理逻辑电路根据相应判断逻辑将二象限反正切查表输出f转换为四象限反正切值的最终输出值g。

Description

四象限反正切函数硬件实现电路
技术领域
本发明涉及数字信号处理领域中,关于查找表实现四象限反正切电路。
背景技术
求三角函数值是科学计算和工程设计中一种重要的运算,广泛应用于三角学、误差计算、图像处理等科学技术领域。反正切函数是数学术语,指函数y=tan(x)的反函数。函数 y=tan(x),(x∈R)的反函数,记作y=arctan(x),叫做反正切函数,数学上四象限反正切函数arctan2(a,b)输出范围为-π~π,而二象限反正切函数arctan(x)输出范围为-π/2~π/2。二象限反正切函数arctan(x)和四象限反正切函数arctan2(a,b)广泛应用于通信信号相干解调中的鉴频器、鉴相器及其他学科如偏振图像的获取系统等领域,这两类函数的输出范围就决定了 arctan2(a,b)比arctan(x)工作范围更宽等优点,如二象限反正切鉴相器的迁入范围为-90°~90°, 而四象限反正切鉴相器有更大迁入范围为-180°~180°,扩大了鉴相器的线性工作区。
硬件电路对反正切函数的实现较为困难,目前主要有基于泰勒级数近似逼近的方法、基于数学变化如CORDIC函数变换法和ROM查找表法。泰勒级数近似逼近法适用的输出角度较小,要实现较大的数据角度占用硬件资源呈几何倍数增加;CORDIC函数变换法的序贯特征使得它们在注重计算速率的应用中没有优势,且随着所要求分辨率的提高,会有更多的流水线级,因而这种结构将会占用更多的硬件资源;ROM查找表法实现简单,但由于反正切函数输入范围可达正负无穷大,必须对其进行分段处理,目前有文献《基于FPGA的反正切函数优化算法》提出了对二象限反正切的ROM查表的优化实现方法。但四象限反正切由于具有两个输入值,且硬件电路目前无法实现二维查表。目前硬件实现反正切运算的方法主要有查表法、泰勒公式展开法和CORDIC算法。查找表法虽然实现简单,输出时延小,但需消耗大量存储资源,如果用传统的除法器、乘法器等计算方法需要占用大量的FPGA资源。
文献《基于FPGA的反正切函数优化算法》根据二象限反正切函数中心反对称特性,函数输出-π/2~π/2,只需对0~π/2查表取反即可得到-π/2~0的值。将二象限反正切函数输出的0~π/2,分段为0~π/4和π/4~π/2,由数学变换可实现只对ROM存储0~π /4函数值即可实现-π/2~π/2范围内查找。ROM中存储值单位为度,可实现查找精度为 0.25°。
发明内容
本发明针对上述现有技术存在的不足之处,提供一种具有速度快、精度高、硬件实现简单的四象限反正切函数硬件实现电路。
本发明的上述目的可以通过下述技术方案予以实现:一种四象限反正切函数硬件实现电路,包括:预处理电路、二象限反正切查表逻辑电路和输出处理逻辑电路,其特征在于:预处理电路对四象限反正切函数arctan2(a,b)的输入反正切函数信号a和输入反正切函数信号b,作乘除法256*a/b得到除值c,将除值c送入二象限反正切查表逻辑电路,按逻辑转换为查找表输入d值,二象限反正切ROM查找表模块根据查找表输入d值,对ROM寻址得到二象限反正切弧度查表值e,二象限反正切查表逻辑电路将弧度查表值e转换为二象限反正切查表输出值f,输出处理逻辑电路根据相应判断逻辑将二象限反正切查表输出值f 转换为四象限反正切值的最终输出值g。
本发明具有如下有益效果:
(1)速度快、硬件实现简单。本发明采用二象限反正切查表逻辑电路、二象限反正切ROM查找表模块和输出处理逻辑电路,节省了硬件资源,用查找表法实现四象限反正切函数,原理及实现简单,只需一个512比特深度的ROM和几个除法器即可实现。和传统CORDIC实现相比,既减少运算量又提高了运算速度。
(2)精度高。本发明对文献《基于FPGA的反正切函数优化算法》进行了改进,利用弧度比度值更小的特点通过将ROM查找表存储值由度改进为弧度,同时在输出端用一个乘法器将弧度转为度,提高实现精度,相同位宽存储器表示弧度可比度精度更高。可在资源几乎不增加的条件下,将输出精度从0.25°提高到0.15°,特别是输出范围45°~90°区间的精度。
附图说明
下面结合附图和实施实例对本发明进一步说明。
图1是本发明四象限反正切函数硬件实现电路原理框图。
图2是图1中二象限反正切查表逻辑电路处理流程图。
图3是图1中输出处理逻辑电路判断流程图。
具体实施方式
参阅图1。在以下描述的实施例中,一种四象限反正切函数硬件实现电路,包括:预处理电路、二象限反正切查表逻辑电路和输出处理逻辑电路。四象限反正切函数实现电路采用将四象限反正切转换为二象限反正切查找表法实现四象限反正切函数,预处理电路对四象限反正切函数arctan2(a,b)的输入反正切函数信号a和输入反正切函数信号b,作乘除法 256*a/b得到除值c,将除值c送入二象限反正切查表逻辑电路通过特定逻辑转换为查找表输入d值,将输出值d作为二象限反正切ROM查找表模块的输入,二象限反正切ROM查找表模块根据查找表输入d,对ROM寻址得到二象限反正切弧度查表值e,二象限反正切查表逻辑电路将弧度查表值e转换为二象限反正切查表输出f。输出处理逻辑电路根据相应判断逻辑将二象限反正切查表输出f转换为四象限反正切值的最终输出值g。
为防止b=0时造成除法a/b输出无效数,预处理电路中的零值转换模块需对反正切函数信号b=0时转换为b的最小分辨值,若反正切函数信号b在实现电路中位宽为32 位变量,则在b=0时需转换为b=0x00000001。预处理电路实现256乘法时,采用直接对信号a进行左移8比特运算可避免使用乘法器,减少逻辑资源占用和提高运行速度。
本实施例中,为提高二象限反正切ROM查找表模块查表精度,ROM查找表中存储值单位由度改为弧度,在ROM深度及位宽同样为256*8比特的前提下,ROM存储值是对实际弧度值放大256倍。
参阅图2。二象限反正切查表逻辑电路处理流程如下:二象限反正切查表逻辑电路上电初始化后,判断除值c≥0是否成立,若c≥0成立则继续判断c≥256是否成立,是则按公式d=256-131072/(256+c)计算ROM查找表输入d,ROM查找表根据输入d对 ROM寻址得到查表值e,此条件下二象限弧度查表值g=查表值e+π/4;否则ROM查找表输入d=除值c,ROM查找表根据输入d对ROM寻址得到查表值e,此条件下二象限弧度查表值g=查表值e。
若c≥0不成立则将c按位取反得到-c即c=-c,再判断取反后c≥256是否成立,是则按公式d=256-131072/(256+c)计算ROM查找表输入d,ROM查找表根据输入d对ROM寻址得到查表值e,此条件下二象限弧度查表值g=-(查表值e+π/4);否则ROM查找表输入 d=c,ROM查找表根据输入d对ROM寻址得到查表值e,此条件下二象限弧度查表值g=-查表值e;最后,二象限反正切查表逻辑电路对二象限弧度查表值g通过一个固定值360/(2* π)/256乘法器,将弧度查表值g转换为度查表输出f,固定值第二个除256为ROM存储值放大256的补偿,采用右移8比特运算可避免使用乘法器,减少逻辑资源占用和提高运行速度。
参阅图3。输出处理逻辑电路是将二象限反正切查表值转换为四象限反正切输出值g 的判断电路。输出处理逻辑电路上电初始化后,首先判断输入反正切函数信号b≥0是否成立,是则输出值g=度查表输出f,否则判断输入反正切函数信号a≥0是否成立,是则输出值g=度查表输出f+180°;否则g=度查表输出f-180°。
本发明可以在可编程门阵列FPGA芯片中实现,也可以在专用集成电路ASIC芯片中实现。
以上结合附图对本发明进行了详细描述,在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。另外,本发明未详细说明部分属于本领域技术人员公知常识。

Claims (10)

1.一种四象限反正切函数硬件实现电路,包括:预处理电路、二象限反正切查表逻辑电路和输出处理逻辑电路,其特征在于:预处理电路对四象限反正切函数arctan2(a,b)的输入反正切函数信号a和输入反正切函数信号b,作乘除法256*a/b得到除值c,将除值c送入二象限反正切查表逻辑电路,按逻辑转换为查找表输入d,二象限反正切ROM查找表模块根据查找表输入d值,对ROM寻址得到二象限反正切弧度查表值e,二象限反正切查表逻辑电路将弧度查表值e转换为二象限反正切查表输出值f,输出处理逻辑电路根据相应判断逻辑将二象限反正切查表输出值f转换为四象限反正切值的最终输出值g。
2.如权利要求1所述的四象限反正切函数硬件实现电路,其特征在于:为防止b=0时造成除法a/b输出无效数,预处理电路中的零值转换模块对反正切函数信号b=0时转换为b的最小分辨值,若反正切函数信号b在实现电路中位宽为32位变量,则在b=0时需转换为b=0x00000001。
3.如权利要求1所述的四象限反正切函数硬件实现电路,其特征在于:预处理电路实现256乘法时,采用直接对反正切函数信号a进行左移8比特运算。
4.如权利要求1所述的四象限反正切函数硬件实现电路,其特征在于:为提高二象限反正切ROM查找表模块查表精度,ROM查找表中存储值单位由度改为弧度,在ROM深度及位宽同样为256*8比特的前提下,ROM存储值对实际弧度值放大256倍。
5.如权利要求1所述的四象限反正切函数硬件实现电路,其特征在于:二象限反正切查表逻辑电路上电初始化后,判断除值c≥0是否成立,若c≥0成立则继续判断c≥256是否成立,是则按公式d=256-131072/(256+c)计算ROM查找表输入d值,ROM查找表根据输入d值对ROM寻址得到查表值e,此条件下二象限弧度查表值g=查表值e+π/4;否则ROM查找表输入d=除值c,ROM查找表根据输入d对ROM寻址得到查表值e,此条件下二象限弧度查表值g=查表值e。
6.如权利要求1所述的四象限反正切函数硬件实现电路,其特征在于:二象限反正切查表逻辑电路上电初始化后,首先判断除值c≥0是否成立,若c≥0不成立则将c按位取反得到-c即c=-c,再判断取反后c≥256是否成立,是则按公式d=256-131072/(256+c)计算ROM查找表输入值d,ROM查找表根据输入值d对ROM寻址得到查表值e,此条件下二象限弧度查表值g=-(查表值e+π/4);否则ROM查找表输入d=c,ROM查找表根据输入值d对ROM寻址得到查表值e,此条件下二象限弧度查表值g=-查表值e。
7.如权利要求1所述的四象限反正切函数硬件实现电路,其特征在于:二象限反正切查表逻辑电路对二象限弧度查表值g通过一个固定值360/(2*π)乘法器,将弧度查表值g转换为度查表输出值f,固定值第二个除256为ROM存储值放大256的补偿,采用右移8比特运算。
8.如权利要求1所述的一种四象限反正切函数硬件实现电路,其特征在于:输出处理逻辑电路是将二象限反正切查表值转换为四象限反正切输出值g的判断电路。
9.输出处理逻辑电路上电初始化后,首先判断输入反正切函数信号b≥0是否成立,是则输出值g=度查表输出f,否则判断输入反正切函数信号a≥0是否成立,是则输出值g=度查表输出f+180°;否则g=度查表输出f-180°。
10.如权利要求1所述的一种四象限反正切函数硬件实现电路,其特征在于:四象限反正切函数硬件实现电路采用将四象限反正切转换为二象限反正切查找表法实现预处理电路。
CN201811263212.3A 2018-10-28 2018-10-28 四象限反正切函数硬件实现电路 Active CN109614073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811263212.3A CN109614073B (zh) 2018-10-28 2018-10-28 四象限反正切函数硬件实现电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811263212.3A CN109614073B (zh) 2018-10-28 2018-10-28 四象限反正切函数硬件实现电路

Publications (2)

Publication Number Publication Date
CN109614073A true CN109614073A (zh) 2019-04-12
CN109614073B CN109614073B (zh) 2023-08-08

Family

ID=66003024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811263212.3A Active CN109614073B (zh) 2018-10-28 2018-10-28 四象限反正切函数硬件实现电路

Country Status (1)

Country Link
CN (1) CN109614073B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949934A (zh) * 2020-08-20 2020-11-17 桂林电子科技大学 一种基于fpga的cordic优化方法
CN114816333A (zh) * 2022-05-13 2022-07-29 兰州大学 一种基于cordic算法实现反正切计算的方法
CN114845023A (zh) * 2022-04-26 2022-08-02 杭州海康威视数字技术股份有限公司 一种驱动方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910465A (en) * 1988-10-31 1990-03-20 Hewlett-Packard Company Phase detector
CN1162229A (zh) * 1996-03-06 1997-10-15 松下电器产业株式会社 差分检波接收机
US7394247B1 (en) * 2007-07-26 2008-07-01 Magic Technologies, Inc. Magnetic field angle sensor with GMR or MTJ elements
CN102737222A (zh) * 2011-04-08 2012-10-17 刘石 基于数学函数查表法优化的快速指纹识别算法
CN102799412A (zh) * 2012-07-09 2012-11-28 上海大学 基于并行流水线设计的cordic加速器
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN104732056A (zh) * 2013-12-24 2015-06-24 通用汽车环球科技运作有限责任公司 快速反正切计算预处理和后处理的方法
CN106227291A (zh) * 2016-07-26 2016-12-14 中国科学院自动化研究所 基于分段式查表法的反正切函数的实现方法及实现装置
CN107479856A (zh) * 2017-08-09 2017-12-15 珠海市杰理科技股份有限公司 反正切函数数据结构及建立方法、函数值获取方法和装置
CN107608656A (zh) * 2017-09-27 2018-01-19 郑州云海信息技术有限公司 一种四象限三角函数求解器的设计方法
CN108507459A (zh) * 2018-03-12 2018-09-07 连云港杰瑞电子有限公司 一种自整角机信号角度的测量方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910465A (en) * 1988-10-31 1990-03-20 Hewlett-Packard Company Phase detector
CN1162229A (zh) * 1996-03-06 1997-10-15 松下电器产业株式会社 差分检波接收机
US7394247B1 (en) * 2007-07-26 2008-07-01 Magic Technologies, Inc. Magnetic field angle sensor with GMR or MTJ elements
CN102737222A (zh) * 2011-04-08 2012-10-17 刘石 基于数学函数查表法优化的快速指纹识别算法
CN102799412A (zh) * 2012-07-09 2012-11-28 上海大学 基于并行流水线设计的cordic加速器
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN104732056A (zh) * 2013-12-24 2015-06-24 通用汽车环球科技运作有限责任公司 快速反正切计算预处理和后处理的方法
CN106227291A (zh) * 2016-07-26 2016-12-14 中国科学院自动化研究所 基于分段式查表法的反正切函数的实现方法及实现装置
CN107479856A (zh) * 2017-08-09 2017-12-15 珠海市杰理科技股份有限公司 反正切函数数据结构及建立方法、函数值获取方法和装置
CN107608656A (zh) * 2017-09-27 2018-01-19 郑州云海信息技术有限公司 一种四象限三角函数求解器的设计方法
CN108507459A (zh) * 2018-03-12 2018-09-07 连云港杰瑞电子有限公司 一种自整角机信号角度的测量方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘礼刚: "基于FPGA的反正切函数的优化算法", 《微计算机信息》 *
刘礼刚: "基于FPGA的反正切函数的优化算法", 《微计算机信息》, 15 June 2007 (2007-06-15), pages 203 - 204 *
吴键: "基于FPGA的查找表实现四象限反正切函数算法", 《中国新通信》, vol. 21, no. 15, pages 138 - 139 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949934A (zh) * 2020-08-20 2020-11-17 桂林电子科技大学 一种基于fpga的cordic优化方法
CN114845023A (zh) * 2022-04-26 2022-08-02 杭州海康威视数字技术股份有限公司 一种驱动方法及装置
CN114816333A (zh) * 2022-05-13 2022-07-29 兰州大学 一种基于cordic算法实现反正切计算的方法

Also Published As

Publication number Publication date
CN109614073B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN109614073A (zh) 四象限反正切函数硬件实现电路
CN107479856B (zh) 反正切函数数据结构及建立方法、函数值获取方法和装置
CN111859269B (zh) 相控阵天线波控角度解算方法、系统及存储介质
CN101917356A (zh) LTE系统上行参考信号q阶ZC序列的生成方法及其系统
Li et al. Study of CORDIC algorithm based on FPGA
CN107589935A (zh) 一种非线性函数计算装置及方法
CN107656989B (zh) 云存储系统中基于数据分布感知的近邻查询方法
Yang et al. FID-sketch: An accurate sketch to store frequencies in data streams
CN110633447B (zh) 基于fpga的球面距离定点计算方法及其计算装置
CN205670191U (zh) 一种激光测风雷达的回波信号采集装置
CN104615404A (zh) 一种基于查表操作的高速浮点除法部件装置
CN109345463A (zh) 一种坐标旋转数字计算方法的优化方法及系统
CN113726660B (zh) 一种基于完美哈希算法的路由查找器和方法
US20100161697A1 (en) Method of cordic computing vector angle and electronic apparatus using the same
CN1166226C (zh) 数字本振信号产生方法及数字控制振荡器
CN111984057B (zh) 基于gpu的数字nco高精度并行实现方法
KR20020024937A (ko) 입력연산자 정규화를 이용한 테이블참조 기반 고속통신용위상계산기
CN104683806A (zh) 基于深度流水的mq算术编码器高速fpga实现方法
CN100534203C (zh) 一种获取白平衡校正参数的方法和图像处理装置
Yu et al. Research on a method of high precision frequency measurement based on coordinate rotation digital computer algorithm and Kalman filter
CN111814107B (zh) 一种高精度实现平方根倒数的计算系统及其计算方法
CN109408027A (zh) 基于fpga硬件设备快速计算指数函数的方法及装置
CN104820652B (zh) 一种使用axi总线的图像模板匹配装置
CN109032562A (zh) 低时延高频单向旋转的cordic算法装置及算法
CN103810146B (zh) 一种逆序输入顺序输出的fft结构设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant