【FPGA】:ip核----cordic

news/2025/1/8 13:21:51/

文章目录

  • 一、概述
  • 二、端口说明
  • 三、ip核的生成
  • 四、示例
  • 五、参考资料

一、概述

cordic核主要用来求三角方程, 主要功能为:
 rotate 旋转 ——复数旋转
 translate 变换 ——复数转极坐标
 sin/cos
 arctan
 sinh/cosh
 arc tanh
 square root 平方根

二、端口说明

备注:s_axis_代表核作为丛机,m_axis代表核作为主机,数据宽度一般为8的整数倍
在这里插入图片描述
在这里插入图片描述

三、ip核的生成

(1)在ip catalog里面选择cordic
在这里插入图片描述
(2)配置configuration
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
compensation Scaling:补偿因子,当选择不补偿时他的输出是乘了倍数Z的,如下所示:在这里插入图片描述
因此,为了让结果为z,则需要选择补偿项
(3)配置Axis Stream Option

在这里插入图片描述
与核相关的具体细节如下所示:
在这里插入图片描述

四、示例

以arctan函数为例进行仿真说明:

在这里插入图片描述

输入: 复数据实部虚部,输入格式:IMAG(31:16),REAL(15:0);范围:− 1 ≤ x o r y ≤ 1
输出: 相位,输出格式:PHASE(15:0);范围:− π ≤ x ≤ π 在这里插入图片描述

tb文件:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/06/04 10:14:40
// Design Name: 
// Module Name: cordic_tb
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module cordic_tb();reg aclk;
reg aresetn;
reg s_axis_cartesian_tvalid;
reg [31:0] s_axis_cartesian_tdata;
wire m_axis_dout_tvalid;
wire [15:0] m_axis_dout_tdata;wire [15:0]X_in;//real
wire [15:0]Y_in;//imagassign Y_in = s_axis_cartesian_tdata[31:16];
assign X_in = s_axis_cartesian_tdata[15: 0];cordic_0 cordic_0_inst0(.aclk(aclk),                                        // input wire aclk.aresetn(aresetn),                                  // input wire aresetn.s_axis_cartesian_tvalid(s_axis_cartesian_tvalid),  // input wire s_axis_cartesian_tvalid.s_axis_cartesian_tdata(s_axis_cartesian_tdata),    // input wire [31 : 0] s_axis_cartesian_tdata.m_axis_dout_tvalid(m_axis_dout_tvalid),            // output wire m_axis_dout_tvalid.m_axis_dout_tdata(m_axis_dout_tdata)              // output wire [15 : 0] m_axis_dout_tdata
);/*********************************时钟信号*********************************/initial aclk = 0;always #5 aclk = ~aclk;initial beginaresetn =0;s_axis_cartesian_tvalid=0;s_axis_cartesian_tdata=32'd0;#20;aresetn =1;s_axis_cartesian_tvalid=1;// 前两位为整数部分【第1位符号位,第2位为数字】,后两位为小数部分,,输入必须归一化到-1到1// s_axis_cartesian_tdata=32'b0010000000000000_0010100000000000;       //高位为虚部,低位为实部s_axis_cartesian_tdata=32'b0010000000_000000_0010100000_000000;
endendmodule

仿真结果;
在这里插入图片描述
其中modelsim显示小数的方法如下:
在这里插入图片描述
在这里插入图片描述
对于本例而言,输入数据的整数为2bit,输出数据的整数为3bit,均为有符号数。
总结: cordic ip核使用 时候通常情况下输入为【-1,1】,超过此范围会出错,因此,常用办法为,对原来数据的最高位进行扩一位符号位,再送入cordic ip核,或者代码中必定能要保证输入数据的范围限定在-1~1之间。若是不能肯定上级模块向CORDIC中输入数据的范围,能够先仿真,肯定数据的最大值和最小值是否超出了该范围。若是超过能够用相似“{q[15],q[15:1],i[15],i[15:1]}”这样的移位除法,缩小输入数据范围。因为是带符号数二进制补码,移位时注意高位补符号位。

五、参考资料

  1. VIVADO cordic IP核
  2. XILINX CORDIC IP核使用记录
  3. CORDIC(6.0) IP核 与 DDS Compiler(6.0) IP核 使用示例
  4. FPGA----IP核cordic使用
  5. VIVADO cordic IP核
  6. Cordic v6.0 IP CORE使用说明
  7. modelsim调试把信号显示为小数格式
  8. VIVADO cordic IP核(遇到的一些问题)
  9. FPGA数字信号处理(十四)Vivado Cordic IP核计算arctan(使用技巧)

http://www.ppmy.cn/news/102781.html

相关文章

2023 年 14 个最佳隐私和安全 Linux 发行版

随着数字时代的到来,隐私和安全成为了越来越重要的议题。对于那些关注隐私和安全的用户来说,选择一款专注于保护用户数据和系统安全的Linux发行版是至关重要的。在本文中,我们将介绍2023年14个最佳的隐私和安全Linux发行版,这些发…

IC芯片自动测试系统平台ATECLOUD:提高半导体制造效率与质量

近年来,随着半导体产业的快速发展,IC芯片在各种电子设备中扮演着越来越重要的角色。然而,为了满足不断增长的需求和保持竞争力,制造商需要不断提高生产效率并确保产品质量。ATECLOUD——一款基于云计算技术的IC芯片自动测试系统平…

Oxford online English-Chair a Meeting 05/29

Getting people’s attention If I could have your attention, please. Could I have your attention, please? Good afternoon, everyone. -> Good afternoon, everyone, could I have your attention, please? Welcoming attendees I’d like to welcome you all …

【TI毫米波雷达笔记】IWR6843AOPEVM-G的UniFlash烧录配置及避坑(官方手册有误)

【TI毫米波雷达笔记】IWR6843AOPEVM-G的UniFlash烧录配置及避坑(官方手册有误) 毫米波雷达有两种烧录方式: 搭配ICBOOST烧录雷达板自己烧录 搭配ICBOOST烧录时 需要配置为 MMWAVEICBOOST 模式 SOP都是下拉 而后通过 MMWAVEICBOOST 上的SO…

C/C++ 关于引用(reference)的代码案例

前言:引用是C中的一种重要特性,它可以让代码更加高效、简洁和易读。本篇博客将深入探讨引用的相关知识,包括引用的概念、使用方法、优点和注意事项等。建议根据给出的代码案例练一下,熟悉即可。 目录 一、引用的概念 二、引用的…

Python进阶 │反爬虫和怎样反反爬虫

爬虫、反爬虫和反反爬虫是网络爬虫工作过程中一直伴随的问题。 在现实生活中,网络爬虫的程序并不像之前介绍的爬取博客那么简单,运行效果不如意者十有八九。首先需要理解一下“反爬虫”这个概念,其实就是“反对爬虫”。根据网络上的定义&…

【珍藏版】SolVES模型的生态系统服务功能社会价值评估及拓展

生态系统服务是人类从自然界中获得的直接或间接惠益,可分为供给服务、文化服务、调节服务和支持服务4类,对提升人类福祉具有重大意义,且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目(Millennium Ecosystem Asse…

【MySQL】MySql的底层数据结构

文章目录 前言索引结构及查找算法不适合做MySql的数据结构及其原因 一、BTree和BTree的引出1.1 BTree数据结构2.2 BTree数据结构 二、计算m阶,即BTree该取多少合适总结 前言 索引结构及查找算法 一个sql语句在mysql里究竟是如何运行的呢?又是怎么去查找…