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
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593195
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49043
  • CORDIC算法
    +关注

    关注

    0

    文章

    17

    浏览量

    9696

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

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

收藏 人收藏

    评论

    相关推荐

    开源的hbird-e-sdk,怎么用软件实现三角函数的计算,有没有数学函数库可以调用?

    想请问开源的hbird-e-sdk,怎么用软件实现三角函数的计算,有没有数学函数库可以调用?类似于“math.h”
    发表于 01-10 07:06

    怎么Hightec编译环境调用三角函数,是需要包含某些库吗?

    怎么Hightec编译环境调用三角函数,sin(),cos(),tan(),求教,是需要包含某些库吗?
    发表于 02-18 08:44

    MATLAB三角函数命令

    MATLAB三角函数命令Sin 正弦 Sinh 双曲正弦 Asin 反正弦 Asinh 反双曲正弦 Cos 余弦 Cosh 双曲余弦 Acos 反余弦 Acosh 反双曲余弦 Tan 正切&
    发表于 09-22 16:04

    ARM7如何实现三角函数

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

    labview的三角函数pi在哪

    labview的三角函数pi在哪
    发表于 03-23 09:29

    恳请帮忙:FPGA,微分解算

    导师让进行弹道解算,四阶龙格库塔,主要包括微分和三角函数运算,请问有没有合适的IP核能实现,如果没有CORDIC算法可以吗?谢谢了
    发表于 04-15 17:15

    请问一下,28035的cla支持三角函数运算吗

    请问一下,28035的cla支持三角函数运算吗,为什么使用sin函数时,编译有错,那该怎么使用三角函数
    发表于 05-14 00:58

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

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

    FPGA设计必须掌握的Cordic算法

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

    电磁波为什么要用三角函数表示?

    怎样形象的理解傅里叶变换?电磁波为什么要用三角函数表示?什么是三角函数的相位?
    发表于 10-25 08:57

    labview三角函数问题

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

    MounRiver Studio环境下math头文件如何进行三角函数计算?

    需要用到atan2和asin函数,include了math.h后报错函数不存在;和keil下的math文件内容对比了一下发现确实少了三角函数的申明,为什么会存在这种差异?该如何进行三角函数
    发表于 06-01 06:18

    Cordic IP用户手册

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

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

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

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

    三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值。这种表格在人们刚刚产生三角函数的概念的时候就已经有了,它们通常是通过从已知值(比如s
    发表于 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>的计算