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

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

3天内不再提示

vivado IP核cordic中sin和cos的计算

FPGA设计论坛 ? 来源:FPGA设计论坛 ? 2025-05-03 18:16 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

IP核的配置

412ae24c-23fa-11f0-9310-92fbcf53809c.png

其输入为角度值。

1. 功能选择为sin and cos(输出时sin在高32位,cos在低32位)

2.Architectural Configuration选择为并行模式,具有单周期数据吞吐量和较大的硅面积。具有并行结构配置的CORDIC核使用移位相加子级数组并行实现这些移位相加操作。该并形电路的实现规模与(内部精度 * 迭代次数)成正比。

3.Pipelining Mode选择Optimal:在不使用任何额外LUT的情况下,以尽可能多的使用流水线级数。

4.Signed Fraction:有符号分数(默认格式)。X和Y的输入和输出表示为整数宽度为2位的二进制补码定点数。这里输入的角度值是第一位表示正负,第二位和第三位表示整数部分,后29位表示小数部分,范围[-π,π]。输出的值是第一位表示正负,第二位表示整数部分,后30位表示小数部分,范围[-1,1]。

5.Radians:弧度制,范围[-Pi,Pi]。相位将表示位整数宽度位3位的二进制补码定点数。

6.Round Mode:Pos Neg Infinity:类似 round(x)。 四舍五入。

7.Iterations

控制要执行的内部 add-sub 迭代次数。

当设置为0时(默认情况),执行的迭代次数由输出的所需精度决定,自动确定迭代次数,通常为输出位宽。

手动设置时,开方设置比较复杂,参照手册描述。其他情况下,对于位宽大于13的,应加1。

8.Precision

控制要执行的内部 add-sub 计算精度。

当设置为0时(默认情况),根据输出所需精度和内部迭代次数自动确定内部精度。

设置为( Input _ Width + Output _ Width + log2 ( Output _ Width) )时,无论输入幅度如何,输出相位都精确到全输出宽度。

9.Coarse Rotation

控制粗旋转模块的实例化。作用于:Vector rotation, Vector translation, Sin and Cos, and ArcTan 功能。

关闭粗旋转模块,输入输出范围限制在第一象限( - Pi / 4至+ Pi / 4)。

开启粗旋转模块,粗旋转通过将输入样本旋转到第一象限,反向旋转输出样本回到合适的象限,将CORDIC运算范围扩展到全圆。

10.Compensation Scaling

控制用于补偿CORDIC幅度缩放的补偿缩放模块。作用于:Vector Rotation and Vector Translation 功能。当选择不补偿时输出是乘了倍数Z的。对于 Sin, Cos, Sinh, Cosh, ArcTan, ArcTanh and Square Root 无影响,应设置为 No Scale Compensation。

modulesincos_test(  input       clk,  input       start,  input[31:0]    pha_in,  outputwire    over,  outputwire[31:0] sin_out,  outputwire[31:0] cos_out   );   cordic_sincos my_sincos ( .aclk(clk),                // input wire aclk.s_axis_phase_tvalid(start), // input wire s_axis_phase_tvalid.s_axis_phase_tdata(pha_in),  // input wire [31 : 0] s_axis_phase_tdata.m_axis_dout_tvalid(over),  // output wire m_axis_dout_tvalid.m_axis_dout_tdata({sin_out,cos_out})   // output wire [63 : 0] m_axis_dout_tdata);    endmodule
`timescale1ns / 1psmoduletb_sincos();regclk =0;regstart =0;reg[31:0] pha_in=0;wireover;wire[31:0] sin_out;wire[31:0] cos_out;always#4.069clk=~clk;initialbegin    #10    start<=1;?// ? ? ? pha_in<=32'b00111001000000000000000000000000;? ? ? ? ?pha_in<=32'b01010000111110001000101101100010; ? ?endsincos_test my_sincos_test ( ? ?.clk? ? ? ? ? (clk), ? ?.start? ? ? ? (start), ? ?.pha_in? ? ? ?(pha_in), ? ?.over? ? ? ? ?(over), ? ?.sin_out? ? ? (sin_out), ? ?.cos_out? ? ? (cos_out) );endmodule

仿真结果:

4150f48c-23fa-11f0-9310-92fbcf53809c.png

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

    关注

    7

    文章

    2789

    浏览量

    50588
  • IP核
    +关注

    关注

    4

    文章

    338

    浏览量

    50876
  • Vivado
    +关注

    关注

    19

    文章

    835

    浏览量

    68915

原文标题:vivado IP核 cordic 中sin和cos的计算

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Xilinx FPGA入门连载73:波形发生器之IPCORDIC(正弦波)配置

    `Xilinx FPGA入门连载73:波形发生器之IPCORDIC(正弦波)配置特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1jGjAhEm 1
    发表于 04-24 18:57

    请问8335电机套件程序sin cos怎么计算

    在28335电机套件的程序中有个图中有sin\cos转变的功能,就在斜坡函数的后面,灰色的。就我了解好像是程序只有sin函数没有cos函数,然后为了
    发表于 09-17 14:55

    LabVIEW FPGA CORDIC IP的arctan使用方法

    使用LabVIEW FPGA模块CORDIC IP,配置arctan(X/Y)算法,配置完成之后,IP
    发表于 09-10 20:07

    控制函数cossin函数数值的获取,

    第18章 DSP控制函数-更好用的SINCOS计算本期教程主要讲解控制函数cossin
    发表于 08-11 08:24

    Vivado生成IP

    vivado生成ip后缺少一大片文件,之前是可以用的,中途卸载过Modelsim,用vivado打开过ISE工程,因为工程很多
    发表于 04-24 23:42

    xilinx vivado调用cordic IP进行实现时报错多重驱动?

    vivado2019.2建立工程,工程调用cordic IP进行atan求解,功能仿真时正常且满足要求;综合时正常;实现时报错提示多重
    发表于 06-06 17:17

    sin/cos发生器,sin/cos信号产生电路图

    sin/cos发生器 sin/cos发生器的任务是根据电压频率转换器输出脉冲的多少和方
    发表于 05-07 00:10 ?4035次阅读
    <b class='flag-5'>sin</b>/<b class='flag-5'>cos</b>发生器,<b class='flag-5'>sin</b>/<b class='flag-5'>cos</b>信号产生电路图

    使用Xilinx CORDIC IP生成正、余弦波

    本文介绍如何调用Xilinx的CORDIC IP生成某一频率的正弦波和余弦波。 主要是CORDIC IP
    发表于 02-08 15:24 ?7633次阅读
    使用Xilinx <b class='flag-5'>CORDIC</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>生成正、余弦波

    了解VivadoIP的原理与应用

    IPIP Core) Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、D
    发表于 11-15 11:19 ?9613次阅读

    vivado调用IP详细介绍

    大家好,又到了每日学习的时间了,今天咱们来聊一聊vivado 调用IP。 首先咱们来了解一下vivadoIP
    的头像 发表于 05-28 11:42 ?3.8w次阅读

    Vivadoxilinx_courdic IP的使用方法

    由于Verilog/Vhdl没有计算exp指数函数的库函数,所以在开发过程可利用cordic IP做exp函数即e^x值;但前提要保证输
    的头像 发表于 07-25 16:51 ?4682次阅读
    <b class='flag-5'>Vivado</b><b class='flag-5'>中</b>xilinx_courdic <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用方法

    Vivadoxilinx_courdic IP(求exp指数函数)使用

    由于Verilog/Vhdl没有计算exp指数函数的库函数,所以在开发过程可利用cordic IP做exp函数即e^x值;但前提要保证输
    发表于 01-27 07:21 ?9次下载
    <b class='flag-5'>Vivado</b><b class='flag-5'>中</b>xilinx_courdic <b class='flag-5'>IP</b><b class='flag-5'>核</b>(求exp指数函数)使用

    VCS独立仿真Vivado IP的问题补充

    在仿真Vivado IP时分两种情况,分为未使用SECURE IP和使用了SECURE IP
    的头像 发表于 06-06 14:45 ?2326次阅读
    VCS独立仿真<b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的问题补充

    Xilinx Vivado DDS IP使用方法

    DDS(Direct Digital Frequency Synthesizer) 直接数字频率合成器,本文主要介绍如何调用Xilinx的DDS IP生成某一频率的SinCos信号
    的头像 发表于 07-24 11:23 ?6854次阅读
    Xilinx <b class='flag-5'>Vivado</b> DDS <b class='flag-5'>IP</b>使用方法

    如何在Vivado配置FIFO IP

    Vivado IP提供了强大的FIFO生成器,可以通过图形化配置快速生成FIFO IP
    的头像 发表于 08-07 15:36 ?5846次阅读
    如何在<b class='flag-5'>Vivado</b><b class='flag-5'>中</b>配置FIFO <b class='flag-5'>IP</b><b class='flag-5'>核</b>