vivado CORDIC ip核计算arctan记录

这篇具有很好参考价值的文章主要介绍了vivado CORDIC ip核计算arctan记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文主要记录自己使用vivado CORDIC ip 核计算arctan的过程。


一、CORDIC ip核配置

下面是我测试工程的具体配置。
vivado CORDIC ip核计算arctan记录
要计算arctan需要在Functional Selection选择为“Arc Tan”,结构默认为并行结构。Pipelining Mode可以设置为最大值(Maximum)、最优值(Optimal)和不设置流水线(No pipelining即纯组合逻辑实现)。增加流水线级数可以提高计算速度。计算arctan时Data Format固定为带符号小数(SignedFraction)。Phase Format可以设置为Radians(范围-pi到pi)或Scaled Radians(范围-1到1),即第二种模式的结果为第一种的1/pi。

Input/Output Options中设置输入数据位宽和输出数据位宽,以及舍位的模式,这里选择为Nearest Even,表示最接近的值(可以理解为四舍五入)。

Coarse Rotation”,默认为勾选。选中此值时,CORDIC的输出范围是-pi到pi;没有选中时,CORDIC的输出范围是-1/4pi到1/4pi。一般选前者。

vivado CORDIC ip核计算arctan记录
这里是一些接口的选取。
vivado CORDIC ip核计算arctan记录
在这个界面可以知道Latency为35,输入32位其中1位符号位,一位整数位,30位小数位,输出为1位符号位,2位整数位,29位小数位。
vivado CORDIC ip核计算arctan记录

xilinx ip 书册PG105第28页给了一个示例,便于理解输入输出的定点数形式。另外注意输入数据要保证输入数据的范围限定在-1~1之间。如果不能确定要输入数据的范围,可以先仿真,确定数据的最大值和最小值是否超出了该范围。如果超过可以用进行移位,缩小输入数据范围。由于是带符号数二进制补码,移位时注意高位补符号位,如{q[32],q[31:1],i[32],i[31:1]}。

二、CORDIC ip核接口

在建好ip核后找到veo文件,例化模板,下面为我测试工程的接口。
cordic_atan your_instance_name (
.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 [63 : 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 [31 : 0] m_axis_dout_tdata
);
其中s_axis_cartesian_tvalid是两路输入数据的拼接,如arctan(y/x),y为高32位,x为低32位,

三、仿真波形

vivado CORDIC ip核计算arctan记录
下面进行对结果的验证,arctan(-1000000/1000000)结果显然为-pi/4,因为我在配置时选用的Scaled Radians模式,所以结果应为(-pi/4)/pi=-0.25.仿真结果的范围必定是在(-1到1)之间,所以结果的整数位完全可以忽略,直接将结果用十进制有符号数显示,为-134217740,因为结果小数位为29位,将-134217740除以2^29,得-0.250000022351741790771484375,可见结果正确。

四、工程文件

工程文件:vivado2019.2文章来源地址https://www.toymoban.com/news/detail-469017.html

到了这里,关于vivado CORDIC ip核计算arctan记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CORDIC IP (SIN AND COS功能详解)

    目录 一:Parallel or Serial Architecture 二:输入输出数据格式(fix16_13;fix16_14讲解) 三:XQN format与fix16_15/14等format转换 四:ip核设置及详细讲解 !:内容全部来自XILINX官方文档PG105_CORDIC以及自己的理解 概括来说就是Parallel 运行速度快,占用资源多(一个周期即可完成数据吞吐)

    2023年04月08日
    浏览(40)
  • Vivado DDS IP核使用、仿真、多相处理和相关计算验证

    第一次学,查询了很多CSDN网页,也问了组里的技术专家,得到了很多指导。把我的个人学习笔记在这里保存记录分享,如果有问题欢迎大家批评指正。也欢迎大家点赞评论收藏,一起进步! 1 DDS IP核的配置 创建工程,在IP核配置页面选择DDS compiler 6.0。对IP核进行配置。 如图

    2024年02月02日
    浏览(50)
  • 【STM32】STM32G系列使用CORDIC模块加速计算

    STM32G431系列产品内置了CORDIC运算单元,可以用来加速数学计算,如三角函数、取模、开方等。适合大量数据进行相同的运算操作。配合DMA可以大大节省CPU计算开销。 使用CORDIC模块无需配置参数,若采用DMA方式则只需配置DMA读写通道,配置如下 在代码中对cordic模块进行初始化

    2024年02月12日
    浏览(40)
  • Gowin FPGA学习记录——前言

            好久没有写博客了,想想是不是又该写点啥东西了么,准备写点国产FPGA的使用经历吧                  得益于目前国内的政策对国产化芯片扶持,越来越要求核心器件能够自主可控,因此作为核心芯片FPGA,国产FPGA的势头也发展很快。          现在FPGA的这

    2024年02月16日
    浏览(43)
  • 将GPU版本的torch和torchvision下载至本地进行安装,解决torch.cuda.is_available()为False的情况,本文主要解决CPU版本的torch问题。

    这是困扰我很久的问题,今天花了一点时间去研究一下为什么我的cuda和cudann安装完成了,却不能使用GPU,原因是我的torch和torchvision是cpu版本的,必须下载GPU版本的才能使torch.cuda.is_available()为True,本文使用将文件下载到文件夹后进行安装。 1、打开Anaconda Prompt(Anaconda3)  2、打开

    2024年02月10日
    浏览(63)
  • Linux tcp/ip 网路协议栈学习-00 前言

    Linux tcp/ip 网路协议栈学习-00 前言 目录 Linux  tcp/ip 网路协议栈学习-00 前言 (1)预备知识  (2)前置知识 (3)学习目标 (4)总结     (1)预备知识  好工具事半功倍,做任何事情都需要有方法和工具,同样,阅读 Linux 内核源码也是如此。由于当前内核源码非常庞大,学习上,不能一

    2024年04月26日
    浏览(45)
  • 什么是IP65?仅仅是防水等级吗?看完本文直呼666!

    IP65在硬件设备,准确的来说在电气设备中,这个参数很常见,但是作为网络技术的博主,为啥要介绍IP65? 这个很好解释,因为网络设备,比如路由器、交换机,还有服务器、监控等都是属于电气设备,只要电气设备都会涉及一个参数: 防水 。 那么IP65就是防水参数中一个术

    2024年02月12日
    浏览(37)
  • 快速上手Xilinx DDR3 IP核----汇总篇(MIG) ?前言

            本文是 《快速上手Xilinx DDR3 IP核》 系列文章的汇总篇。         该系列介绍了Xilinx 控制DDR3的IP核----MIG IP核的基本构成和使用方法,在MIG 接口的基础上在外部封装了FIFO,使得操作时序更加简单,并用此方法实现了几个练手的小项目。         MIG IP核对外提供了两类

    2024年02月05日
    浏览(55)
  • 本文带你了解透彻云计算(前世,今生,未来)

    作者简介:一名在校云计算网络运维学生、每天分享云计算运维的学习经验、和学习笔记。   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 对于云计算,我们将会通过云计算的前世,今生,未来,特点,原理等几个方面进行讲解。 云计算的一个 核心

    2024年01月21日
    浏览(41)
  • Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。

    Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。 get_pins命令用于获取指定对象(Object)的引脚(Pin)列表。我们可以使用get_pins来获取具有特定命名约定的引脚(如CLOCK、RESET等),并通过对这些引

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包