0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在FPGA中利用CORDIC算法IP核实现三角函数关系的转换

FPGA设计论坛 来源:CSDN 作者:撕裂的牛仔裤 2022-10-17 11:58 次阅读

FPGA实现CORDIC核的应用和解卷绕

在FPGA硬件实现CORDIC的逻辑其实是很简单的,就是设置好输入输出的位宽,然后建立好对应的精度表,通过旋转加得到运算结果。但是在IP核的使用中需要特别注意输入数据的位宽和大小。IP核的申请配置如下图:

ed08f03e-4dcb-11ed-a3b6-dac502259ad0.png

这个选项卡里主要是选择功能、处理速度和模式。

ed2caed4-4dcb-11ed-a3b6-dac502259ad0.png

这个选项卡主要是选择弧度输出还是±1输出、输入输出位宽和截位方式,一般选择四舍五入的截位方式。

ed4a4ca0-4dcb-11ed-a3b6-dac502259ad0.png

这个选项卡是配置输出项的。还需要特别注意的就是输入与输出的延时latency;

这个IP的申请比较简单,在实际仿真时需要注意的是输入数据的大小。在官方文档LogiCORE IP CORDIC v4.0中对输入数据有着很严格的规定,我们在使用时也需要严格的遵守。数据输入规定如下图:

ed646b6c-4dcb-11ed-a3b6-dac502259ad0.png

在满足了上面IP的例化后通过modelsim仿真。分别输入两个信号,通过CORDIC核输出相位信号,仿真波形如下图:

ed7eb738-4dcb-11ed-a3b6-dac502259ad0.png

从图中可以看出输入信号是连续的,而输出信号存在跳跃,这是因为CORDIC核只能输出-3.14到+3.14之间的信号,因此输出信号存在着卷绕现象,这样的输出结果不能反映实际的相位信息,因此需要进行解卷绕处理。

在CORDIC核输出的相位信号发声突变是在-3.14到+3.14处,因此我们只要根据突变前后数据的符号和大小即可通过加上或者减去6.28来实现解卷绕的过程。利用FPGA进行解卷绕时至少需要两个点,通过判断这两个点的符号和差值的绝对值是否等于6.28来进行确定相位突变的点和方向。在实际代码仿真可知通过两个点判断这种方式是可行的,仿真波形如下图所示:

edabbda0-4dcb-11ed-a3b6-dac502259ad0.png




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601656
  • IP核
    +关注

    关注

    4

    文章

    326

    浏览量

    49418
  • CORDIC算法
    +关注

    关注

    0

    文章

    17

    浏览量

    9713

原文标题:FPGA实现CORDIC核的应用和解卷绕

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RX系列三角函数单元(TFU)的使用介绍

    硬件加速器三角函数单元(Trigonometric Function Unit)能够高速处理三角函数sin、cos、arctan和sqrt(x2+y2)函数的运算,可显著减少CPU负荷,
    的头像 发表于 12-04 12:25 2030次阅读
    RX系列<b class='flag-5'>三角函数</b>单元(TFU)的使用介绍

    ARM7如何实现三角函数

    ARM7如何编程实现三角函数sin,cos,软件用的是TKStudio,求大神
    发表于 11-12 16:31

    基于FPGA的数字相锁相环的基本原理分析

    摘要:数字相锁相环中含有大量乘法运算和三角函数运算,占用大量的硬件逻辑资源。为此,提出一种数字相锁相环的优化实现方案,利用乘法模块复用和
    发表于 06-27 07:02

    FPGA设计必须掌握的Cordic算法

    计算机时发明的。这是一种设计用于计算数学函数三角函数和双曲函数的简单算法。这种算法的真正优势在于只需要采用极小型的
    发表于 09-19 09:07

    labview三角函数问题

    我想使用三角函数的余弦函数(输入是角度的那种)我试了一下,发现cos90°算出来不是0,为什么呀,算别的角度是对的,就是算值等于0的度数会有问题。用了弧度角度换算、公式节点、直接输入π/2,这种方法出来都不是0
    发表于 04-09 14:18

    Cordic IP用户手册

    CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是 J.D.Volder1于 1959 年首次提出,主要用于三角函数、双曲线、指数
    发表于 08-09 06:45

    基于DSP的三角函数快速计算

    基于DSP的三角函数快速计算
    发表于 04-07 14:33 53次下载
    基于DSP的<b class='flag-5'>三角函数</b>快速计算

    三角函数arcranx运算电路

    三角函数arcranx运算电路
    发表于 04-09 10:16 2757次阅读
    反<b class='flag-5'>三角函数</b>arcranx运算电路

    利用Cordic算法来计算三角函数的值

    减运算,就能计算常用三角函数值,如Sin,Cos,Sinh,Cosh等函数。 J. Walther1974年在这种算法的基础上进一步改进,使其可以计算出多种超越
    发表于 11-17 16:37 6945次阅读
    <b class='flag-5'>利用</b><b class='flag-5'>Cordic</b><b class='flag-5'>算法</b>来计算<b class='flag-5'>三角函数</b>的值

    基于三角函数搜索因子的混合蛙跳算法

    针对传统混合蛙跳算法存在收敛速度慢、容易陷入局部最优和搜索精度不高的缺陷,提出了基于三角函数搜索因子的混合蛙跳算法。该算法将基于三角函数搜索
    发表于 11-24 15:56 0次下载

    欧拉公式与三角函数_欧拉公式推导三角函数

    欧拉公式是指以欧拉命名的诸多公式。其中最著名的有,复变函数的欧拉幅公式,即将复数、指数函数三角函数联系起来。拓扑学
    发表于 11-28 20:44 21.5w次阅读

    如何使用Cordic算法C语言实现三角函数的计算

    三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值。这种表格人们刚刚产生三角函数的概念的时
    发表于 04-25 18:27 9次下载
    如何使用<b class='flag-5'>Cordic</b><b class='flag-5'>算法</b>C语言<b class='flag-5'>实现</b><b class='flag-5'>三角函数</b>的计算

    如何使用DSP汇编语言实现高精度的三角函数

    现今DSP 软件工程设计,广泛采用高级语言(如C 语言)直接调用三角函数进行计算。然而,汇编语言的稳定性、可读性和执行效率均优于高级语言,因缺少可供直接调用的三角函数库,其开发周期
    发表于 08-28 09:36 7次下载
    如何使用DSP汇编语言<b class='flag-5'>实现</b>高精度的<b class='flag-5'>三角函数</b>

    AD639:通用三角函数转换器废弃数据表

    AD639:通用三角函数转换器废弃数据表
    发表于 05-17 17:29 8次下载
    AD639:通用<b class='flag-5'>三角函数</b><b class='flag-5'>转换</b>器废弃数据表

    TI Arm内核三角函数的优化

    电子发烧友网站提供《TI Arm内核三角函数的优化.pdf》资料免费下载
    发表于 09-11 09:19 0次下载
    TI Arm内核<b class='flag-5'>三角函数</b>的优化