下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑一种浮点反正切函数的FPGA设计和实现-设计应用快速的反正弦函数运算在现代工程中应用广泛。为了提高反正弦函数的精度和计算能力,研究了基于CORDIC算法的反正弦函数运算器的FPGA实现,并通过改进算法减小了误差,使误差精度达到10--4数量级。并在Xilinx的XC5VSX50T芯片上验证,结果表明该运算器的数据处理速度快,精度较高,适用于高速大数据量的数据信号处理领域。
在数字信号处理领域,高速高精度的反正弦函数发生器有着广泛的应用。目前在FPGA上实现反正弦函数运算器采用的主要方法是查找表法和泰勒公式展开法。查找表法所需要的存储单元随着精度的增加或输入值范围的增大而成指数增加;泰勒公式展开法将函数简化成一系列的乘法和加法运算,但是在FPGA上实现乘法运算既耗时又占用大量资源。本文设计了基于CORDIC算法的反正切函数计算模块,并且根据IEEE-754单精度浮点数据格式对输入输出数据进行处理,实现了高精度的浮点反正切函数的计算。
1反正切函数实现原理
CORDIC(CoordinateRotationDigitalComputer)算法即坐标旋转数字计算方法,是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所示。
采用QuartusII对设计进行FPGA综合,FPGA芯片选择EP2C70F896C6,硬件环境为Altera公司的DE2-70平台,总共需要1522个逻辑单元,占用芯片资源的2%,工作频率为100MHz.
4NiosII中反正切函数的自定义指令实现
反正切函数与NiosIICPU的接口采用multi-cyclecustominstruction,dataa和datab为输入数据,result为结果输出,要从C语言中直接调用自定义指令,需要一个宏定义接口。可以在system.h文件中找到自定义指令的宏定义,如:
#defineALT_CI_CORDIC_ATAN2_N0x00000000
#defineALT_CI_CORDIC_ATAN2(A,B)__builtin_custom_inii
(ALT_CI_CORDIC_ATAN2_N,(A),(B))
为了正确调用自定义指令,在主程序中重新做以下宏定义:
#defineATAN2(A,B)__builtin_custom_fnff(ALT_CI_CORDIC_ATAN2_N,(A),(B))
与system.h文件中系统自动生成的宏定义不同之处在于将宏定义的接口说明由"__builtin_custom_inii"改为了"__builtin_custom_fnff".系统自动生成的宏定义默认输入输出皆为整型数据,改为"__builtin_custom_fnff"就是通知系统这是一条输入输出都是单精度浮点数据类型的用户自定义指令。这样由CPU调用时就不会出现数据类型不匹配的错误。
通过在NiosIICPU中加入的JTAG_UART模块,可以从调试终端窗口中获得运行结果。硬件IP核平均计算用时73个周期,而软件计算平均用时21000个周期,计算速度提升300倍以上。此时CPU工作频率为100MHz,且配置为性能,浮点反正切函数硬件模块仅工作在50MHz.浮点反正切函数硬件模块的计算精度完全可以满足单精度浮点数据的要求,计算误差小于10e-6,因此可以用于对精度和速度都要求很高的各种信号处理领域。
利用CORDIC算法将反正弦函数转换为加法和移位运算,降低了复杂度,容易在硬件上实现。本文探讨了基于CORDIC算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京市个体工商户雇工劳动合同书范文
- 2025年度按摩店合伙人市场分析与竞争策略协议3篇
- 2025年度农村墓地建设项目投资合作协议书
- 二零二五年度养老公寓入住与休闲娱乐服务合同3篇
- 二零二五年度公司企业间新能源车辆购置借款合同3篇
- 2025年度工伤赔偿争议解决机制协议书3篇
- 二零二五年度养老机构兼职校医照护服务合同3篇
- 二零二五年度养殖场专业技术人员聘用合同3篇
- 二零二五年度地下停车场开发与运营管理合同3篇
- 二零二五年度智能电网设备采购合同风险识别与防范3篇
- TSG 51-2023 起重机械安全技术规程 含2024年第1号修改单
- 《正态分布理论及其应用研究》4200字(论文)
- GB/T 45086.1-2024车载定位系统技术要求及试验方法第1部分:卫星定位
- 1古诗文理解性默写(教师卷)
- 广东省广州市越秀区2021-2022学年九年级上学期期末道德与法治试题(含答案)
- 2024-2025学年六上科学期末综合检测卷(含答案)
- 在线教育平台合作合同助力教育公平
- 工地钢板短期出租合同模板
- 女排精神课件教学课件
- 2024年湖南省公务员考试《行测》真题及答案解析
- 超市消防安全巡查制度
评论
0/150
提交评论