一种浮点反正切函数的FPGA设计和实现

发布者:小牛队最新更新时间:2011-12-27 来源: 互联网关键字:FPGA 手机看文章 扫描二维码
随时随地手机看文章
     快速精确的反正弦函数运算在现代工程中应用广泛。为了提高反正弦函数的精度和计算能力, 研究了基于CORD IC算法的反正弦函数运算器FPGA 实现, 并通过改进算法减小了误差, 使误差精度达到10--4 数量级。并在X ilinx 的XC5VSX50T芯片上验证, 结果表明该运算器的数据处理速度快, 精度较高, 适用于高速大数据量的数据信号处理领域。

    在数字信号处理领域, 高速高精度的反正弦函数发生器有着广泛的应用。目前在FPGA 上实现反正弦函数运算器采用的主要方法是查找表法和泰勒公式展开法。查找表法所需要的存储单元随着精度的增加或输入值范围的增大而成指数增加; 泰勒公式展开法将函数简化成一系列的乘法和加法运算,但是在FPGA 上实现乘法运算既耗时又占用大量资源。本文设计了基于CORDIC算法的反正切函数计算模块,并且根据IEEE-754单精度浮点数据格式对输入输出数据进行处理,实现了高精度的浮点反正切函数的计算。

    1 反正切函数实现原理

    CORDIC(Coordinate RotatiON Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算。该算法通过基本的加和移位运算代替乘法运算,使得矢量的旋转和定向的计算不再需要三角函数、乘法、开方、反三角、指数等函数。

    CORDIC算法有旋转模式和向量模式两种计算模式。旋转模式可以用来计算一个输入角的正弦、余弦,向量模式可以计算给定向量的角度和长度。

    CORDIC算法的基本迭代公式为:


 


    从上式可以看出,CORDIC算法在向量模式可以计算出给定向量(X,Y)的长度和角度,即从平面坐标到极坐标的变换。

    2 数据格式转换接口模块

    本文设计的反正切函数硬件模块输入为IEEE-754单精度浮点数据,而模块内部迭代使用的是定点整型数据,因此需要进行转换。

    在图1的输入数据转换接口示意图中,X、Y为输入的IEEE-754浮点数据格式,输入范围是(-∞,+∞),经过接口模块转换为整型定点数据Xn、Yn,其表示范围是[-1 +1].

    矢量(X,Y)在平面坐标系中的角度为arctan(Y/X),它只与Y和X的比值有关,与Y和X的实际长度无关。用这个性质可以以X和Y中绝对值最大的值作为归一化数值,将X和Y的范围重新映射在[-1 +1]之间,实现(X,Y)到(Xn,Yn)的转换。

    计算结束后输出结果Z.Z是32位定点整型数据,且232被定义为2π,将其规格化为IEEE-754格式的过程如图2所示。在对Z进行规格化之前,需要进行前导零检测,以确定规格化时尾数左移的位数和指数位的大小,前导零的检测硬件上可以用casex语句实现。

    3 整体设计以及仿真综合

    浮点反正切函数的硬件结构包括了三个主要部分,即浮点数据格式转换接口模块、CORDIC内核计算模块和浮点输出数据转换接口模块,如图3所示。

 

    采用QUARTus II对设计进行FPGA综合,FPGA芯片选择EP2C70F896C6,硬件环境为Altera公司的DE2-70平台,总共需要1 522个逻辑单元,占用芯片资源的2%,最高工作频率为100 MHz.

    4 Nios II中反正切函数的自定义指令实现

    反正切函数与Nios II CPU的接口采用multi-cycle cuSTom instruction,dataa和datab为输入数据,result为结果输出,要从C语言中直接调用自定义指令,需要一个宏定义接口。可以在system.h文件中找到自定义指令的宏定义,如:

    #define ALT_CI_CORDIC_ATAN2_N 0x00000000

    #define ALT_CI_CORDIC_ATAN2(A,B) __builtin_custom_inii

    (ALT_CI_CORDIC_ATAN2_N,(A),(B))

    为了正确调用自定义指令,在主程序中重新做以下宏定义:

    #define ATAN2(A,B) __builtin_custom_fnff(ALT_CI_CORDIC_ATAN2_N,(A),(B))

    与system.h文件中系统自动生成的宏定义不同之处在于将宏定义的接口说明由"__builtin_custom_inii"改为了"__builtin_custom_fnff".系统自动生成的宏定义默认输入输出皆为整型数据,改为"__builtin_custom_fnff"就是通知系统这是一条输入输出都是单精度浮点数据类型的用户自定义指令。这样由CPU调用时就不会出现数据类型不匹配的错误。

    通过在Nios II CPU中加入的JTAG_UART模块,可以从调试终端窗口中获得运行结果。硬件IP核平均计算用时73个周期,而软件计算平均用时21 000个周期,计算速度提升300倍以上。此时CPU工作频率为100 MHz,且配置为最高性能,浮点反正切函数硬件模块仅工作在50 MHz.浮点反正切函数硬件模块的计算精度完全可以满足单精度浮点数据的要求,计算误差小于10e-6,因此可以用于对精度和速度都要求很高的各种信号处理领域。

    利用CORD IC算法将反正弦函数转换为加法和移位运算, 降低了复杂度, 容易在硬件上实现。本文探讨了基于CORDIC 算法的反正弦函数的硬件实现, 实现过程采用流水线结构, 具有速度快、实现简单、精度高等优点。仿真结果和实验结果表明该运算器的输出误差为10- 4数量级, 时钟可达到150MH z, 具有较高的精度和运行速度, 因此具有十分重要的工程研究和应用意义。


关键字:FPGA 引用地址:一种浮点反正切函数的FPGA设计和实现

上一篇:基于FPGA的并行扫频DDS的实现
下一篇:以FPGA为核心的多功能输液系统的设计

推荐阅读最新更新时间:2024-05-02 21:48

基于FPGA的电子设计竞赛电路板的设计
  引言   全国大学生电子设计竞赛至今已成功举办了八届, 参赛人数越来越多, 竞赛规模越来越大。大学生电子竞赛在培养学生创新能力、促进高校学风建设及电子信息学科教学改革等方面起到了引导和推进作用。   大学生电子竞赛题目以模拟电子、数字电子、可编程逻辑器件及单片机技术为核心, 涉及电子仪器仪表、通信、高频无线电、自动控制等多学科内容。2007 年电子设计竞赛组委会专家指出: 电子设计竞赛的发展趋势将以模电、数电、FP2GA 为重点。因此, 对于参赛队员来说要获得较好的成绩, 选择合适的题目并进行培训至关重要。笔者针对以FPGA 为核心的竞赛题目特点及竞赛元器件要求, 设计制作了竞赛电路板, 组成框图如图1 所示。 图1
[单片机]
基于<font color='red'>FPGA</font>的电子设计竞赛电路板的设计
莱迪思即将举办网络研讨会,讨论最新的Avant平台——再创超低功耗新境界
莱迪思即将举办网络研讨会,讨论最新的Avant平台——再创超低功耗新境界 中国上海——2023年3月15日——莱迪思半导体公司,低功耗可编程器件的领先供应商,今日宣布将举办网络研讨会探讨Avant™平台,这是一款全新的FPGA平台,旨在将莱迪思领先的低功耗架构、小尺寸和高性能拓展到中端FPGA产品。 在网络研讨会期间, 莱迪思的技术专家将介绍莱迪思Avant平台和首款基于Avant的FPGA系列产品——莱迪思Avant-E™ ,帮助客户解锁全新的FPGA创新设计。 • 举办方:莱迪思半导体公司 • 内容:全新莱迪思Avant平台——再创超低功耗新境界 • 时间:北京时间 3月28日(周二)下午2:00 •
[嵌入式]
RS与Red Pitaya签订全球独家经销协议
据此协议,RS 将为这家测试和测量领域的创业公司经销革命性的新型开源测试与测量仪,产品价格亲民,面向大众市场;其独具特色的 Red Pitaya 技术提供简单的用户界面,所有人都能轻松上手。 北京2014年3月27日电 /美通社/ -- 全球领先的电子与维修产品高端服务分销商Electrocomponents plc 集团公司(LSE:ECM)旗下的贸易品牌 RS Components (RS)与测试和测量领域一家重要的新进竞争者 -- Red Pitaya -- 签订独家协议。根据协议,RS 将经销这家新锐公司的首款独创产品,也就是一种开放式单板仪表与控制台,这种标价不到500美元的产品可以替代多种昂贵的实验室仪器。
[测试测量]
英特尔 FPGA 助力 Microsoft Azure 人工智能
新特性:在近日举行的 Microsoft Build 大会上,Microsoft推出了 基于 Project Brainwave 的 Azure 机器学习硬件加速模型,并与 Microsoft Azure Machine Learning SDK 相集成以供预览。客户可以使用 Azure 大规模部署的 英特尔 ®  FPGA (现场可编程逻辑门阵列)技术,为其模型提供行业领先的人工智能 (AI) 推理性能。   “作为一家整体技术提供商,我们通过与 Microsoft 密切合作为人工智能提供支持。人工智能适用于从训练到推断,从语音识别到图像分析等各种使用场景,英特尔拥有广泛的硬件、软件和工具组合,可满足这些工作负载的需求。”  
[嵌入式]
详解远距离测温器数控系统设计
0 引言 在一些特殊的科研场所和工业生产单位,出于各种条件限制,仪表往往不能就近测量物体实际温度;而以往所使用的一些传感器在使用时受到各种环境因素的影响,使得传感器测量得到的温度不能精确地反映被测物体的温度。因此,人们需要找寻一种远距离测温器,能够精确测量物体温度,并能实时监控温度数据。 远距离测温器是一种被动式的温度遥感器,可用于远距离探测物体的温度,在科学研究和工业生产中发挥了重要作用。由于在使用时人们对测温器的测量范围、灵敏度要求很高,同时由于当今遥感仪器的设计越来越趋于低功耗高密度及小型化,因此,要求测温器的数据处理与控制系统具有高可靠性、高分辨率、实时性、体积小等特点。由于FPGA的功能强大,逻辑速度快,可以用多种
[测试测量]
详解远距离测温器数控系统设计
华为美产FPGA芯片告急,“备胎”能否接过大任?
华盛顿邮报引述总部位于美国加州的研究公司Mobile Experts首席分析师马登(Joe Madden)的话指出,华为的美国芯片等零部件库存将用尽。 报道指出,华为即将耗尽的正是用于包括5G基站在内的通信设备的FPGA芯片,来自美国半导体大厂赛灵思(Xilinx),可编程逻辑器件(FPGA)独步全球。 自孟晚舟及美国实体清单事件之后,华为一方面开启了备胎计划,搬出多年积累的自研芯片,另一方面华为早就预想到了美国制裁,早早的就在大量囤积可能受到制裁影响的零部件,以及转单不受美国影响的零部件供应商,来保障零部件供应。外界预估,华为的库存可保证一年的缓冲期。 此外,由于美国的制裁,华为转向扶持国内供应商,目前有多家国
[网络通信]
华为美产<font color='red'>FPGA</font>芯片告急,“备胎”能否接过大任?
罗姆推出FPGA用电源稳压器及模块
近年来,电子设备(应用)的多样化与高性能化以惊人的速度不断发展。可以说,这种趋势使各产品的开发周期缩短,并给半导体技术带来了巨大的发展空间。 在这种背景下,被称为FPGA的LSI为电子设备的开发作出了巨大贡献,它比以往任何时候更引人关注,市场规模不断扩大。 1.何谓FPGA FPGA为Field Programmable Gate Array的缩写,意为在现场(Field)、可擦写(Programmable=可编程)的、逻辑门(Gate)呈阵列(Array)状排布的半定制LSI,简言之,即“后期电路可擦写逻辑元件”。 产品售出后也可进行再设计,可顺利进行产品的更新以及新协议标准的应对。这是制成后内容即被固定的ASIC (A
[嵌入式]
罗姆推出<font color='red'>FPGA</font>用电源稳压器及模块
FPGA在多进制正交扩频通信系统中的应用
    摘 要: 讨论了高速无线分组网络中多进制正交扩频通信系统的设计和实现,其中在系统核心部分的扩频编码调制和解调等很多功能都由FPGA来完成,并对此进行了详细的介绍。     关键词: FPGA 扩频通信 多进制正交扩频 QPSK调制        门阵列逻辑电路在数字系统设计中得到广泛的应用,因此从GAL、EPLD直至目前的FPGA(现场可编程门阵列),容量和功能以及可靠性都得到很大的发展。目前的FPGA结构采用总线方式,布局布线方便灵活,Altera公司的FLEX10K系列FPGA掩埋带有入出寄存器的RAM块,更加方便地应用于CPU系统。随着器件的发展,开发环境进一步得到优化。Altera公司的Ma
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved