首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏OpenFPGA

    CORDIC算法详解(六)- CORDIC 算法的硬件实现

    CORDIC算法详解(六)- CORDIC 算法的硬件实现 文章目录 CORDIC算法详解(六)- CORDIC 算法的硬件实现 6 CORDIC 算法的硬件实现 6.1 CORDIC 算法的硬件相关介绍 本节在阐述 CORDIC 算法三种旋转模式的基础上, 介绍了利用 CORDIC 算法计算三角函数、 反三角函数和复数求模等相关理论。 ---- 整个系列分别从圆周系统、 线性系统和双曲系统及硬件实现进行分析,如下: CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) CORDIC算法详解 (二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。

    6K32发布于 2020-06-28
  • 来自专栏OpenFPGA

    CORDIC算法详解(五)-统一的 CORDIC 算法形式

    CORDIC算法详解(五)- 统一的 CORDIC 算法形式 文章目录 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 5 统一的 CORDIC 算法形式 相关参考资料及源码   网上有很多类似的介绍 ---- 整个系列分别从圆周系统、 线性系统和双曲系统及硬件实现进行分析,如下: CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) CORDIC算法详解 (二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。 相关参考资料及源码 CORDIC算法:   CORDIC算法的资源 包括Xilinx出的关于算法的介绍和相关的仿真和Verilog代码,还有本人收集的关于CORDIC算法写的比较好的中文书的一章。

    1.9K20发布于 2020-06-28
  • 来自专栏OpenFPGA

    CORDIC算法详解(一)-CORDIC 算法之圆周系统之旋转模式

    CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) 文章目录 CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation 本节在阐述 CORDIC 算法三种旋转模式的基础上, 介绍了利用 CORDIC 算法计算三角函数、 反三角函数和复数求模等相关理论。 ---- 整个系列分别从圆周系统、 线性系统和双曲系统及硬件实现进行分析,如下: CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) CORDIC算法详解 (二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。

    5.9K42发布于 2020-06-28
  • 来自专栏OpenFPGA

    CORDIC算法详解(二)-CORDIC 算法之圆周系统之向量模式

    CORDIC算法详解(二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) 文章目录 CORDIC算法详解(二)- CORDIC 算法之圆周系统之向量模式(Vectoring 3 CORDIC 算法之圆周系统之向量模式及圆周模式应用 MATLAB代码3-3 function : cordic_cr MATLAB代码3-4 function : cordic_cr_pre MATLAB (二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。 其中,cordic_cr调用了两个函数cordic_cr_pre和cordic_cr_post,分别如MATLAB代码3-4和MATLAB代码3-5所示。

    3.6K11发布于 2020-06-28
  • 来自专栏OpenFPGA

    CORDIC算法详解(四)-CORDIC 算法之双曲系统及其数学应用

    CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 文章目录 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 4 CORDIC 算法之双曲系统及其数学应用 4.1 CORDIC 算法之双曲系统 4.2 CORDIC 算法之双曲系统数学应用 4.3 CORDIC 算法之双曲系统MATLAB代码 MATLAB 代码 3-7 function: cordic_hr MATLAB ---- 整个系列分别从圆周系统、 线性系统和双曲系统及硬件实现进行分析,如下: CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) CORDIC算法详解 (二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。

    3.3K10发布于 2020-06-28
  • 来自专栏OpenFPGA

    CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用

    CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 文章目录 CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 3 CORDIC 算法之线性系统及其数学应用 3.1 本节在阐述 CORDIC 算法三种旋转模式的基础上, 介绍了利用 CORDIC 算法计算三角函数、 反三角函数和复数求模等相关理论。 ---- 整个系列分别从圆周系统、 线性系统和双曲系统及硬件实现进行分析,如下: CORDIC算法详解(一)- CORDIC 算法之圆周系统之旋转模式( Rotation Mode ) CORDIC算法详解 (二)- CORDIC 算法之圆周系统之向量模式(Vectoring Mode) CORDIC算法详解(三)- CORDIC 算法之线性系统及其数学应用 CORDIC算法详解(四)- CORDIC 算法之双曲系统及其数学应用 CORDIC算法详解(五)- 统一的 CORDIC 算法形式 CORDIC算法详解(六)- CORDIC 算法的硬件实现 其中第五篇及第六篇后会放出相关参考资料及源码。

    2.3K21发布于 2020-06-28
  • 来自专栏自动化控制技术控

    CORDIC算法的相关知识

    概 述 CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、 CORDIC算法是一个“化繁为简”的算法,将许多复杂的运算转化为一种“仅需要移位和加法”的迭代操作。 CORDIC算法有旋转和向量两个模式,分别可以在圆坐标系、线性坐标系和双曲线坐标系使用,从而可以演算出8种运算,而结合这8种运算也可以衍生出其他许多运算。 CORDIC实际上用的就是二进制编码,这里的原因更明确,因为计算机的逻辑只有0和1,两种状态,最适合进行二进制运算,如果某一天可以进行N进制编码了,也许黄金分割会被真正应用进来。 而采用CORDIC算法来实现超函数时,则无需使用乘法器,它只需要一个最小的查找表(LUT),利用简单的移位和相加运算,即可产生高精度的正余弦波形,尤其适合于FPGA的实现。

    1.3K21发布于 2019-07-08
  • 来自专栏根究FPGA

    cordic的FPGA实现(五)、除法实现

    z-t; t=t/2; else %矢量向上移动 参考系为y y=y-x*t; z=z+t; t=t/2; end end c=z; CORDIC 为了在FPGA上实现CORDIC运算,需要将浮点数转换为定点数,转换的方式很简单~~~,左移16位不就好了!

    1.6K20发布于 2020-06-30
  • 来自专栏数字芯片

    cordic的FPGA实现(五) 除法实现

    z-t; t=t/2; else %矢量向上移动 参考系为y y=y-x*t; z=z+t; t=t/2; end end c=z; CORDIC 为了在FPGA上实现CORDIC运算,需要将浮点数转换为定点数,转换的方式很简单~~~,左移16位不就好了!

    1.3K10发布于 2020-07-20
  • 来自专栏根究FPGA

    cordic第二讲、向量模式与伪旋转处理

    从verilog角度来看,矢量模式下CORDIC的x、y输入分别对应x、y坐标,输出的x、z对应模长与正切角度。 伪旋转限定初始向量必须位于第一或者第四象限,这就要求x0必须大于0,而对y0无限制,根据对称性,当初始向量位于第二象限时,将其搬移到第一象限;当初始向量位于第三象限时,将其搬至第四象限,然后再对搬移后的向量利用CORDIC 算法进行处理,对于CORDIC处理的结果根据x0和y0的符号(判断初始向量所在象限)作相应的处理,从而获得初始向量的相角,处理流程为: ?

    1.9K40发布于 2020-06-30
  • 来自专栏根究FPGA

    cordic的FPGA实现(三)、乘法器实现

    CORDIC运算在齐次线性坐标系下时,可使用CORDIC实现乘法运算,这只乘法器有一些弊端,就是输入z只能是介于-2~2之间。 CORDIC算法实现最简单的功能即为线性函数,实现乘法器。 原CORDIC模块的输入为x、y、z,现在将原模块的输入y屏蔽掉,输出y就会产生乘法效果,然而,这个乘法器的输入z只能介于-2~2之间,这个乘法器为针对小数的乘法器,z只要介于-2~2之间,后面有多少位小数

    89031发布于 2020-06-30
  • 来自专栏数字芯片

    cordic的FPGA实现(四) 乘法器实现

    CORDIC运算在齐次线性坐标系下时,可使用CORDIC实现乘法运算,这只乘法器有一些弊端,就是输入z只能是介于-2~2之间。 CORDIC算法实现最简单的功能即为线性函数,实现乘法器。 原CORDIC模块的输入为x、y、z,现在将原模块的输入y屏蔽掉,输出y就会产生乘法效果,然而,这个乘法器的输入z只能介于-2~2之间,这个乘法器为针对小数的乘法器,z只要介于-2~2之间,后面有多少位小数

    77211发布于 2020-07-20
  • 来自专栏数字芯片

    cordic的FPGA实现(一) 简介与算法推导

    本系列打算更新CORDIC的原理、乘法器、触发器、sin与cos函数、tan函数等系列。 一、CORDIC简介 CORDIC是Coordinate Rotation Digital Computer的简称,即坐标旋转数字运算,主要用于解决导航系统中三角函数、反三角函数和开放运算的实时运算问题 ,CORDIC算法提供了一种数字计算的逼近方法,最终将运算分解为一系列的加减和移位操作,故非常适合硬件实现。 CORDIC算法有旋转和向量两个模式,分别可以在圆坐标系、线性坐标系,双曲线坐标系中使用。 二、旋转模式算法推导 ? 好像希腊字母插入不了?那我就把笔记截图吧请大家理解一下噻~~~~~~~~~ ?

    1.5K10发布于 2020-07-20
  • 来自专栏数字芯片

    cordic的FPGA实现(二) 向量模式与伪旋转处理

    从verilog角度来看,矢量模式下CORDIC的x、y输入分别对应x、y坐标,输出的x、z对应模长与正切角度。 伪旋转限定初始向量必须位于第一或者第四象限,这就要求x0必须大于0,而对y0无限制,根据对称性,当初始向量位于第二象限时,将其搬移到第一象限;当初始向量位于第三象限时,将其搬至第四象限,然后再对搬移后的向量利用CORDIC 算法进行处理,对于CORDIC处理的结果根据x0和y0的符号(判断初始向量所在象限)作相应的处理,从而获得初始向量的相角,处理流程为: ?

    1.2K10发布于 2020-07-20
  • 来自专栏Lauren的FPGA

    第24讲 案例分析:采用HLS实现CORDIC算法

    CORDIC (Coordinate Rotation Digital Computer)是坐标旋转数字计算机算法的简称,由Vloder于1959年在设计美国航空导航控制系统的过程中首先提出,主要用于解决导航系统中三角函数 1971年,Walther将圆周系统、线性系统和双曲系统统一到一个CORDIC迭代方程里,从而提出了一种统一的CORDIC算法形式。 CORDIC算法应用广泛。 例如,离散傅立叶变换、离散余弦变换、离散Hartley变换、Chirp-Z变换、各种滤波以及矩阵的奇异值分解中都可应用CORDIC算法。从广义上讲,CORDIC算法提供了一种数学计算的逼近方法。 例如,在工程领域可采用CORDIC算法实现直接数字频率合成器。 采用C++描述CORDIC算法简单易行。用到了for循环,用到了移位、加减操作。

    1.1K40发布于 2019-10-31
  • 来自专栏瓜大三哥

    基于FPGA的Sobel算子(三)

    基于FPGA的Sobel算子(三) 之Cordic坐标系转换电路 1.前期预处理:完成坐标象限转换。 2.完成n次迭代工作:采用菊花链式结构设计。 3.后期处理工作:恢复象限转换,增益补偿。 2.单元迭代运算单元 经过预处理后的绝对值输出可以直接送入Cordic处理核进行Cordic运算,Cordic运算,Cordic运算实际上是n次迭代运算的过程。 3.Cordic处理核单元 将单次迭代单元迭代n次即可完成一次cordic运算。 4.Cordic后续处理模块 后续处理模块需实现坐标象限还原,很明显,这里的象限指的是角度象限。

    84190发布于 2018-02-26
  • 来自专栏根究FPGA

    cordic的FPGA实现(三)、sin、cos函数运算与源码分析

    想出这个CORDIC求解tan、sin、cos的人真的好厉害!!! verilog代码: module cordic ( input CLOCK,RESET, input iCall, output oDone, input [31:0]iData sin = y; assign { q_deg,q_y,q_x } = { deg,y,x }; endmodule 仿真代码: `timescale 1ns/1ns module cordic_tb wire oDone; //迭代完成标志 wire [31:0]cos; //cos值 wire [31:0]sin; //sin值 wire [31:0]deg_left; //剩余角度 cordic

    2.5K31发布于 2020-06-30
  • 来自专栏根究FPGA

    CORDIC的FPGA实现第一讲、简介与算法推导

    最近经常看到群里有人在说cordic,觉得用处还蛮大的,所以私下学习了一下,果然很强大!本系列打算更新CORDIC的原理、乘法器、触发器、sin与cos函数、tan函数等系列。 一、CORDIC简介 CORDIC是Coordinate Rotation Digital Computer的简称,即坐标旋转数字运算,主要用于解决导航系统中三角函数、反三角函数和开放运算的实时运算问题 ,CORDIC算法提供了一种数字计算的逼近方法,最终将运算分解为一系列的加减和移位操作,故非常适合硬件实现。 CORDIC算法有旋转和向量两个模式,分别可以在圆坐标系、线性坐标系,双曲线坐标系中使用。 二、旋转模式算法推导 ? 好像希腊字母插入不了?那我就把笔记截图吧请大家理解一下噻~~~~~~~~~ ?

    1.1K22发布于 2020-06-30
  • 来自专栏云深之无迹

    旋转的世界:从CW32L012看CORDIC算法

    ; CORDIC_Init(&init); CW_CORDIC->X = az_q15; CW_CORDIC->Y = ay_q15; cordic_wait_eoc( (ay^2 + az^2) -------- init.func = CORDIC_FUNC_HYPOT; CORDIC_Init(&init); CW_CORDIC->X = ay_q15; CW_CORDIC->Y = az_q15; cordic_wait_eoc(); int16_t r_half_q15 = (int16_t)CW_CORDIC ; CORDIC_Init(&init); CW_CORDIC->X = r_q15; CW_CORDIC->Y = (int16_t)(-ax_q15); cordic_wait_eoc (&init); float_to_q1_15() / q1_15_to_float() CW_CORDIC 寄存器定义 CORDIC_GetStatus() 的 eoc 标志 把上面的 cordic_wait_eoc

    13110编辑于 2026-01-07
  • 来自专栏数字芯片

    cordic的FPGA实现(三) sin、cos函数运算与源码分析

    想出这个CORDIC求解tan、sin、cos的人真的好厉害!!! verilog代码: module cordic ( input CLOCK,RESET, input iCall, output oDone, input [31:0]iData sin = y; assign { q_deg,q_y,q_x } = { deg,y,x }; endmodule 仿真代码: `timescale 1ns/1ns module cordic_tb wire oDone; //迭代完成标志 wire [31:0]cos; //cos值 wire [31:0]sin; //sin值 wire [31:0]deg_left; //剩余角度 cordic

    1.8K20发布于 2020-07-20
领券