FPGA教程系列-Vivado IP核DDS核

FPGA教程系列-Vivado IP核DDS核

FPGA教程系列-Vivado IP核DDS核

直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统的重要组成部分。正交合成器用于构建数字下行和上行转换器和解调器。它们还用于实现各种类型的调制方案,包括 PSK(相移键控)、FSK(频移键控)和 MSK(最小移位键控)。数字生成复值或实值正弦波的常用方法是采用查找表方案。查找表存储正弦波的样本。数字积分器用于生成合适的相位参数,该参数由查找表映射到所需的输出波形。简单的用户界面可接受系统级参数,如所需的输出频率和生成波形的杂散抑制。直接数字合成器(DDS)或数控振荡器(NCO)是许多数字通信系统的重要组成部分。正交合成器用于构建数字下行和上行转换器和解调器。它们还用于实现各种类型的调制方案,包括 PSK(相移键控)、FSK(频移键控)和 MSK(最小移位键控)。数字生成复值或实值正弦波的常用方法是采用查找表方案。查找表存储正弦波的样本。数字积分器用于生成合适的相位参数,该参数由查找表映射到所需的输出波形。简单的用户界面可接受系统级参数,如所需的输出频率和生成波形的杂散抑制。

image
image

进入IP核设置

image

模式配置

image

Phase Generator:相位发生器由一个累加器和一个可选的加法器组成,用于添加相位偏移。在定制内核时,相位增量(PINC)和相位偏移(POFF)可独立配置为固定、可编程(使用 CONFIG 通道)或流式(使用输入 PHASE 通道)。

SIN/COS LUT:当仅配置为正弦/余弦 LUT 时,不执行相位发生器, PHASE_IN 信号使用输入 PHASE 通道输入,并使用查找表转换为正弦和余弦输出。通过利用正弦波形的对称性,实现了高效的内存使用。内核可配置为仅正弦输出、仅余弦输出或两者(正交)输出。每个输出可独立配置为负输出。使用可选的泰勒级数校正功能可提高精度。这就利用了支持 DSP 片的 FPGA 系列,实现了高速运行下的高 SFDR。

Phase Generator and SIN/COS LUT (DDS):相位发生器与 SIN/COS LUT 配合使用,可提供相位截断 DDS 或泰勒级校正 DDS。可在这两个模块之间添加一个可选的抖动发生器,以提供相位抖动 DDS。

系统设置

image

system clock(MHz)系统时钟:50MHz工作时钟,即50MHz采样率。

Number of chanels通道数量:设为1,单通道模式,通道的采样频率等于采样时钟50MHz。如果设置多通道模式,那么每个通道的频率为50MHz/N,N为通道数量。

Mode of operation模式:Standard标准模式,Rasterized栅格模式。两种情况下,输出的频率和频率分辨率、相位增量等参量的计算方式不同。Standard模式下计算出来的相位增量可能是小数,而在FPGA中要对相位进行截断取整,存在相位误差,对噪声要求较高的场合,可以使用8处的噪声整形配置来弥补,使用相位抖动(Phase Dithering)或者泰勒级数纠正(Taylor Series Correct)来补偿相位误差;Rasterized Mode配置下,相位增量一定是整数,不存在截断效应,没有Standard模式下的时间基抖动。

 一般情况下,多选择Standard标准模式。 

system Parameters系统参数:包括System parameters和Hardware parameters。一般设置System parameters。

系统参数

image

SpuriousFree Dynamic Range无杂散动态范围:对应幅度,对应M_AXIS_DATA通道,SFDR越大,用于表示幅度的数据的位宽越大.其输出位宽满足如下公式:

Frequency Resolution配置频率分辨率:对应相位的增量配置、位宽,对应M_AXIS_PHASE通道,频率分辨率越小,用于表示相位的数据的位宽越大;

image

Noise shape: Auto根据设计的SFDR参数自动选择是否使用整形;None不整形;Phase Dithering相位抖动,在使用相位截断技术时,产生随机的噪声来使得量化误差随机;

image

Phase Increment Programmability(相位增量可编程性)

  • Fixed(固定) :相位增量为常数,输出频率不可动态调整
  • Programmable(可编程) :相位增量可通过外部接口实时修改,实现动态调频(最常用)
  • Streaming(流式) :相位增量以数据流形式持续输入,适合高速连续频率变化

Resync(重同步)

  • 勾选后,当参数更新时自动插入重同步周期,使相位平滑过渡
  • 避免信号出现相位跳变,适用于对相位连续性要求高的应用

Phase Offset Programmability(相位偏移可编程性)

  • None(无) :无相位偏移,从0相位开始
  • Fixed(固定) :固定的初始相位偏移
  • Programmable(可编程) :可实时修改相位偏移,实现动态相移
  • Streaming(流式) :连续相位变化输入

Output Selection(输出选择)

  • Sine(正弦波) :仅输出正弦信号
  • Cosine(余弦波) :仅输出余弦信号
  • Sine and Cosine(正弦+余弦) :同时输出两种信号(最常用)

Polarity(极性)

  • Negative Sine(负正弦) :输出反相正弦波
  • Negative Cosine(负荷弦) :输出反相余弦波
  • 未勾选时输出正常极性信号

Amplitude Mode(幅度模式)

  • Full Range(全范围) :输出幅度覆盖DAC满量程
  • 其他选项限制幅度范围,用于降低功耗或匹配电路电平

Has Phase Out(是否包含相位输出)

  • 勾选后额外输出当前相位值,用于监控或反馈控制

Memory Type(存储器类型)

  • Auto(自动) :工具自动选择最优存储器
  • Block RAM:使用专用块RAM(速度快,数量有限)
  • Distributed RAM:使用分布式RAM(资源丰富,速度较慢)

Optimization Goal(优化目标)

  • Auto(自动) :工具自动优化
  • Speed(速度) :优先提高工作频率
  • Area(面积) :优先减少资源消耗

DSP48 Use(DSP48单元使用)

  • Minimal(最小化) :尽量少用DSP48乘法器
  • Auto(自动) :工具自动分配
  • Maximum(最大化) :尽可能多用DSP48

配置建议

  • 需要动态调频/相移:选择"Programmable"模式
  • 需要高精度相位连续性:勾选"Resync"
  • 需要多通道信号:选择"Sine and Cosine"输出
  • FPGA资源紧张:优先选择"Area"优化和"Minimal"DSP48使用
    这些参数的合理配置直接影响DDS输出的信号质量(频率精度、相位噪声)和系统性能(工作频率、资源占用)

第三页配置默认即可。

输出频率设置:

image

完成以后generate就可以了,还是具体根据需求进行配置。

Read more

人工智能:循环神经网络(RNN)与序列数据处理实战

人工智能:循环神经网络(RNN)与序列数据处理实战

循环神经网络(RNN)与序列数据处理实战 1.1 本章学习目标与重点 💡 学习目标:掌握循环神经网络的核心原理、经典变体结构,以及在文本序列任务中的实战开发流程。 💡 学习重点:理解 RNN 的循环计算机制,学会使用 TensorFlow/Keras 搭建基础 RNN 与 LSTM 模型,完成文本分类任务。 1.2 循环神经网络核心原理 1.2.1 为什么需要 RNN 💡 传统的前馈神经网络(如 CNN、全连接网络)的输入和输出是相互独立的。它们无法处理序列数据的上下文关联特性。 序列数据在现实中十分常见,比如自然语言文本、语音信号、时间序列数据等。这些数据的核心特点是,当前时刻的信息和之前时刻的信息紧密相关。 循环神经网络通过引入隐藏状态,可以存储历史信息,从而有效捕捉序列数据的上下文依赖关系。 1.2.2 RNN

OpenClaw配置GLM联网搜索 - 免费使用AI搜索功能

OpenClaw配置GLM联网搜索 - 免费使用AI搜索功能

还在为AI联网搜索头疼费?这篇文章教你实现AI联网搜索 背景 现在AI助手大火,但是大部分都不支持联网搜索。能够联网的Perplexity一个月要20美元,对个人开发者来说确实有点肉疼。 作为一个程序员,我一直在找免费或者低成本的解决方案。直到我发现OpenClaw这个开源平台,可以很方便地自定义Skill,配合智谱AI的GLM模型,实现了免费联网搜索功能。 什么是OpenClaw OpenClaw是一个开源的AI助手平台,支持: * 多个AI模型(GPT、Claude、GLM等) * 自定义Skill(技能) * 多种部署方式 * 飞书、Telegram等多平台接入 官方文档:https://github.com/openclaw/openclaw 核心思路 利用OpenClaw的自定义Skill功能,调用智谱AI的GLM模型。GLM模型支持联网搜索工具(web_search),我们只需要: 1. 申请智谱AI的API Key 2. 编写调用脚本 3. 配置到OpenClaw 详细配置步骤 第一步:申请智谱AI API Key

OpenClaw + cpolar + 蓝耘MaaS:把家里的 AI 变成“随身数字员工”,出门也能写代码、看NAS电影、远程桌面

OpenClaw + cpolar + 蓝耘MaaS:把家里的 AI 变成“随身数字员工”,出门也能写代码、看NAS电影、远程桌面

目录 前言 1 OpenClaw和cpolar是什么? 1.1 OpenClaw:跑在你自己电脑上的本地 AI 智能体 1.2 cpolar:打通内网限制的内网穿透桥梁 2 下载 安装cpolar 2.1 下载cpolar 2.2 蓝耘 MaaS 平台:给 OpenClaw 装上“最强大脑” 2.3 注册及登录cpolar web ui管理界面 2.4 一键安装 OpenClaw 并对接蓝耘 MaaS 3 OpenClaw + cpolar 的 N 种玩法 3.1 出门在外也能看家里 NAS

技术拆解:P2P组网如何一键远程AI

技术拆解:P2P组网如何一键远程AI

文章目录 * **远程访问AI服务的核心是什么?** * **从暴露服务到连接设备** * **核心组件与交互解析** * **安全架构深度剖析** * **一键安装脚本的技术实现** * **# Windows** * **#macOS** * **#Linux** * **与AI工作流的结合实践** 远程访问AI服务的核心是什么? 你自己在电脑或者服务器上装了AI服务,比如大语言模型、Stable Diffusion这些,但是有个头疼的事儿:外面的人或者你在别的地方,怎么既安全又方便地连上这些本地的服务?以前的办法要么得有公网IP,还得敲一堆命令行用SSH隧道,要么就是直接开端口映射,等于把服务直接晾在公网上,太不安全了。 今天咱们就好好说说一种靠P2P虚拟组网的办法,还拿个叫节点小宝的工具举例子,看看它怎么做到不用改啥东西,点一下就装好,还能建个加密的通道,实现那种“服务藏得好好的,想连就能直接连上”的安全远程访问方式。 从暴露服务到连接设备 核心思路转变在于:不再尝试将内网服务端口暴露到公网(一个危险的攻击面),而是将外部访问设