当前位置: 首页 > ai >正文

DDS compiler(6.0) IP核配置与使用教程

DDS compiler IP核配置与使用教程

  • DDS compiler IP核的功能
  • DDS compiler IP核工作原理
  • DDS compiler IP核port
  • DDS compiler IP核基础概念
    • 第一页
      • configuration options
        • SIN_COS_LUT_only
        • Phase Generator only
        • Phase Generator and SIN_COS_LUT
    • 第二页
    • 第三页
    • 第四页 :频率控制字
    • 第五页 :总结
    • 第六页 :实际输出频率

DDS compiler IP核的功能

  • 产生高精度、可编程的正弦/余弦波形.
    DDS通过查找表(LUT)和相位累加器,能够在FPGA内部直接合成高精度的正弦波、余弦波等周期信号。输出的波形频率、相位、幅度都可以通过输入参数灵活控制。

  • 频率、相位、幅度可动态调节
    可以实时改变输出信号的频率(通过频率控制字)、相位(通过相位偏移)、幅度(通过幅度控制字)。适合做频率扫描、跳频、调制等应用。

  • 典型应用场景
    数字下变频(DDC)/上变频(DUC);软件无线电(SDR);通信系统中的本振信号(LO)产生;任意波形发生器;调制/解调器。

DDS compiler IP核工作原理

DDS IP核结构
- ① 相位累加器(标记1所示):每个时钟周期累加一个频率控制字,输出当前的相位值。 - ②LUT查找表(标记2所示): 用相位值查表,得到对应的正弦/余弦幅值。 - ③抖动产生器和泰勒级数矫正产生模块(标记3所示):主要用来改善SFDR,两者改善的效果、使用的逻辑资源存在差异。 - ④AXI4接口(标记4所示):实现相位累加字配置,多通道配置,相位累加器输出和波形数据输出。

DDS compiler IP核port

  • s_axis_phase_tdata: AXI-Stream接口上的相位输入;
    ①DDS Compiler有两种可以输入PHASE(相位)的配置方式,但这两种方式不能同时启用(互斥)。
    ②TDATA总线最多有四个字段(PINC、POFF、PHASE_IN、AMP),但这四个字段不可能同时全部出现。
    ③当DDS配置为SIN/COS LUT only模式时,PHASE_IN字段会映射到 s_axis_phase_tdata 这个输入端口。
    ④你可以通过 s_axis_phase_tdata 端口直接输入相位数据,DDS会用这个相位去查LUT,输出对应的正弦/余弦值。
    ⑤HASE_IN字段在总线的最低有效位(LSB)部分,占用的位宽是8的整数倍(即1字节、2字节、3字节……)。
    ⑥如果你的PHASE_IN不是8的整数倍,比如说11位,那么s_axis_phase_tdata会自动扩展到16位(2字节),多出来的高位会被忽略,不影响功能,综合时会被优化掉。
    ⑦管是PINC、POFF都设置为Streaming,还是只有PINC或POFF为Streaming,或者是SIN/COS LUT only模式,只要Phase_Width=11,s_axis_phase_tdata的宽度就是16位,最低11位为有效相位数据,高5位无效。

实际应用举例:
在这里插入图片描述
s_axis_phase_tdata数据结构
在这里插入图片描述

DDS compiler IP核基础概念

DDS的原理并不复杂,但其中涉及一些正弦波的基础概念的理解。下面对这些概念进行梳理。

一个通用的正弦波函数如下所示:
f ( t ) = s i n ( θ ) = s i n ( ω ⋅ t + φ ) = s i n ( 2 π f ⋅ t + φ ) f(t)=sin(θ)=sin(ω⋅t+φ)=sin(2πf⋅t+φ) f(t)=sin(θ)=sin(ω

http://www.xdnf.cn/news/8378.html

相关文章:

  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(五)
  • 【数据架构05】数据要素架构篇
  • 二、OpenCV图像处理-几何变换
  • 服务接口鉴权与内部认证:自定义注解与AOP实现的企业级实践
  • Android 14 Binderized HAL开发实战指南(AIDL版)
  • StringBuilder 和 StringBuffer 的线程安全分析
  • maven添加自己下载的jar包到本地仓库
  • Python字典的工作原理:深入理解哈希表实现
  • Redis主从+哨兵+集群分片
  • 回溯算法:解锁多种问题的解决之门
  • 利用Qt绘图随机生成带多种干扰信息的数字图片
  • Lavavel学习笔记(Eloquent ORM/Swoole 定时任务)
  • Logback 在 Spring Boot 中的详细配置
  • 【深尚想!爱普特APT32F1023H8S6单片机重构智能电机控制新标杆】
  • PostgreSQL 软件升级
  • 06 如何定义方法,掌握有参无参,有无返回值,调用数组作为参数的方法,方法的重载
  • 解构赋值与剩余参数:语法特性背后的思考
  • Go语言爬虫系列教程(三)HTML解析技术
  • 【MySQL】剖析事务和锁
  • 疏锦行Python打卡 DAY 9 热力图和子图的绘制
  • 如何备份和恢复Linux系统?
  • RHCSA Linux 系统 硬盘管理
  • linux 内核warn_on/Bug_on
  • 【深度学习-Day 16】梯度下降法 - 如何让模型自动变聪明?
  • 应对进行性核上性麻痹,健康护理铸就温暖防线
  • MATLAB NLP 工具箱 文本预处理教程
  • 四、GPU是如何成为当前电脑中不可或缺的一部分的,opengl在其中起到了什么效果
  • HTA8111 18W内置升压单声道D类音频功放
  • SAP Business One, Web Client: The Advantages of All Worlds
  • 微服务架构下的智能规则解析:Java 解释器模式的高可用实现