基于FPGA的DDS信号发生器设计,生成频率可调的正弦波、三角波、锯齿波和方波
一、需求概述采用EGo1 FPGA开发板基于DDS原理通过拨码开关选择输出的波形为正弦波2’b00、三角波2’b01、锯齿波2’b10或者矩形波2’b11并且可以通过按键调高或调低频率调节频率范围为10Hz~1MHz。开发环境为Vivado 2018.3采用Verilog HDL编写并进行波形仿真最终下板验证。二、DDS设计原理DDSDirect Digital Synthesizer 即直接数字频率合成因其低功耗、高分辨率、变频迅速等优势已被广泛应用于遥感、雷达、导航等多个领域。DDS主要由相位控制字、频率控制字、相位累加器、ROM查找表、DAC、等构成其中相位控制字与频率控制字支持外部实时动态调控。其工作原理为系统时钟驱动其内部的相位累加器进行相位增量运算将ROM查找表输出的多位二进制数据经D/A转换输出模拟电信号从而产生不同频率波形同时保持频率改变过程中的相位连续性DDS结构示意图如图1所示。图1 DDS结构示意图N、M表示位宽相位累加器作为硬件系统核心单元由N位全加器与N位累加计数器组成每次时钟上升沿到来时累加器计数值会递增经过2^N个时钟周期完成1个周期的信号输出。假设累加器输入的时钟频率为f_clk此时相位累加器能够产生信号频率精度为f_clk/2^N若想实现信号的输出频率为f_out需在此基础上乘以频率控制字F_WORD计算公式为f_out F_WORD * f_clk / 2^N相位控制字的位宽M与ROM的地址位宽一致将相位累加器N的高M位截断作为后续ROM的地址输入而相位控制字直接叠加到这个地址信号中假设p_out为调节的相位P_WORD为相位控制字对应的相位变化关系如下p_out P_WORD 2Π / 2^MROM查找表中存储了“相位-幅度”对照表即查找表中每个地址都对应了一个完成波形从0到2Π的一个值。本实验采用相位截断法截取32bits位宽相位累加器的高8为有效相位值作为ROM的查询相位地址。相位累加器截断输出相位作为ROM查找表的地址输入并根据地址输出相应的幅值。因此通过查找表可以实现高精度的波形生成正弦波、三角波、锯齿波和方波的ROM查找表分别用于存储对应的波形数据点通过调整频率控制字的值可以改变输出信号的频率通过改变相位控制字的值可以改变输出信号的相位。三、系统搭建EGo1开发板的实物如图2所示是依元素科技基于Xilinx Artix-7 FPGA研发的便携式数模混合基础教学平台拥有丰富的外设VGA接口、音频接口、USB-UART/JTAG接口、USB转PS2接口、2个4位数码管、16个LED灯、8个拨码开关、1个8位DSP开关、5个按键、1个模拟电压输入、1个DAC输出接口、SRAM存储器、SPI FLASH存储器、蓝牙模块和1个通用扩展接口。EGo1开发板板载的FPGA芯片型号为Xilinx Artix-7系列XC7A35T-1CSG324具有33280个逻辑单元、41600个寄存器、1800kb的BRAM和90个DSP等逻辑资源可以实现较复杂的数字逻辑设计。图2 EGo1开发板实物图由于EGo1开发板中板载了一个8位的DAC数模转换芯片DAC0832DAC输出的模拟信号连接到接口J2上所以仅需要一个EGo1开发板接口完成本设计。EGo1开发板上的DAC0832电路原理图如图3所示。图3 DAC0832电路原理图四、模块设计与仿真注意事项使用Vivado打开.v文件查看代码时可能会出现乱码的情况使用Notepad打开即可。本设计的整体模块框图如图4所示各个模块的介绍如下1波形选择模块根据拨码开关来选择对应的波形正弦波2’b00、三角波2’b01、锯齿波2’b10或者矩形波2’b112频率控制模块根据频率控制按键来调整频率增大或减小频率计算对应的频率字输出到DDS控制模块3正弦波、三角波、锯齿波和方波ROM用于存储正弦波和三角波的波形数据文件DDS控制模块输出地址给ROM然后得到对应地址下ROM中的数据4DDS控制模块根据DDS生成对应频率的波形5DA转换模块驱动DAC0832完成数字信号转模拟信号输出到对应管脚最后可以用示波器观察图4 DDS波形发生器整体模块框图系统整体仿真波形如图5所示分别为正弦波、三角波、锯齿波和方波由于Vivado进行模拟波形显示时会自动把离散数字点用直线连起来了所以 0 / 255 的方波在显示上看起来像三角波数据本身完全正确这是显示方式导致的假象不是设计问题。图5 系统整体仿真波形将dac_data以无符号十进制数的格式进行显示如图6所示可以看出方波的数据正确仿真验证通过。图6 数据以无符号十进制表示结果五、上板验证对工程进行全编译工程总结界面如图7所示。图7 工程总结界面将bit流文件下载到EGo1开发板并用示波器观察DAC输出的模拟波形具体操作如图8所示。图8 开发板操作示意图初始时各个波形的频率均设置为1000Hz正弦波、三角波、锯齿波和方波的波形如图9-12所示。图9 正弦波波形图10 三角波波形图11 锯齿波波形图12 方波波形将波形切换至正弦波显示分别增大频率和减小频率结果如图13和图14所示频率分别为1.02kHz和977Hz。图13 增大频率显示结果图14 减小频率显示结果频率增大到2kHz和减小到511Hz的结果如图15和图16所示下板验证通过。图15 频率增大到2kHz图16 频率减小到511Hz六、获取方法获取方法加入知识星球——FPGA设计入门与提高

相关新闻

华为交换机VLAN与Trunk配置实战指南

华为交换机VLAN与Trunk配置实战指南

1. 实验背景与核心目标 在中小型网络架构中,VLAN(虚拟局域网)技术是解决广播风暴和提高网络安全性的关键手段。本次实验通过两台交换机的级联配置,模拟企业办公网中常见的跨设备VLAN划分场景。不同于单台交换机的VLAN实验&#xf…

2026/8/10 8:57:51 阅读更多 →
3步快速解密网易云音乐NCM文件:ncmdump免费工具终极指南

3步快速解密网易云音乐NCM文件:ncmdump免费工具终极指南

3步快速解密网易云音乐NCM文件:ncmdump免费工具终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的加密NCM格式音乐文件无法在其他播放器播放而烦恼吗?ncmdump解密工具是你需要的…

2026/8/10 8:57:51 阅读更多 →
Windows系统R与RStudio安装配置全攻略:3分钟搭建数据分析环境

Windows系统R与RStudio安装配置全攻略:3分钟搭建数据分析环境

这次我们来看一个R语言和RStudio的安装配置教程。对于数据分析、统计建模和可视化的初学者或需要快速搭建环境的开发者来说,R语言和RStudio的组合是绕不开的起点。很多人卡在第一步:官网下载慢、安装路径选择困难、RStudio找不到R解释器、中文环境乱码。…

2026/8/10 8:57:51 阅读更多 →

最新新闻

AI智能体协作新范式:策略相似性如何自发促进合作

AI智能体协作新范式:策略相似性如何自发促进合作

这次我们来看谷歌DeepMind团队在AI智能体协作领域的最新研究。这篇论文的核心不是介绍一个新模型或开源工具,而是通过一系列实验,揭示了一个反直觉的发现: 在重复博弈中,能力相似的AI智能体之间,更容易达成理性、稳定…

2026/8/10 9:46:18 阅读更多 →
学术人必会!AI 辅助搞定五大学术写作场景,效率翻倍(附专业提示词教程)

学术人必会!AI 辅助搞定五大学术写作场景,效率翻倍(附专业提示词教程)

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。 把AI用在学术写作上后,才发现是真的好用。有些做科研同仁,可能已…

2026/8/10 9:46:18 阅读更多 →
前端必会能力 - 网络请求  高可用封装  鉴权权限体系

前端必会能力 - 网络请求 高可用封装 鉴权权限体系

模块三:网络请求 & 高可用封装 & 鉴权权限体系 本模块为前端工程化核心基建,覆盖企业级Axios高可用封装、请求防抖/取消/重试、TS类型约束、双Token无感刷新、RBAC四层权限架构全体系。 解决项目请求混乱、重复请求、接口报错容错差、Token过期…

2026/8/10 9:46:18 阅读更多 →
GB/T 20986-2023 与 GB/Z 20986-2007 对比分析: 从“信息安全”到“网络安全”的范式升级

GB/T 20986-2023 与 GB/Z 20986-2007 对比分析: 从“信息安全”到“网络安全”的范式升级

GB/T 20986-2023 与 GB/Z 20986-2007 对比分析:从“信息安全”到“网络安全”的范式升级 一、背景 2023年12月1日,GB/T 20986-2023《信息安全技术 网络安全事件分类分级指南》正式实施,取代了沿用十六年之久的GB/Z 20986-2007。作为一线开发者和安全工程…

2026/8/10 9:46:18 阅读更多 →
C++变成的多线程同步

C++变成的多线程同步

C++多线编程通过上一节介绍的Release-Acquire抽象语义来保证共享变量的读写顺序,避免编译器/CPU乱序等的影响,除此之外我们还需要考虑多线程间同步的实现,本节我们介绍一下如何实现多线程同步。主要通过互斥锁和条件变量来实现 給出一段实例代码 #include <iostream>…

2026/8/10 9:46:18 阅读更多 →
AI时代最贵的不是算力,不是数据,不是模型——是知道“什么是对的“这件事本身

AI时代最贵的不是算力,不是数据,不是模型——是知道“什么是对的“这件事本身

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 让我们静下心来审视一下自己,是不是忙得有价值,忙得有意义,忙得有目的,看一看我们是不是因为忙而迷失了自己。如果我们仅是为了忙而忙,那不妨让…

2026/8/10 9:45:18 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析&#xff1a;useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍&#xff1a;KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器&#xff1a;游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑&#xff1a;baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码&#xff08;维护中 rm repo&#xff09; 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片&#xff1a;Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身&#xff0c;而应重视模型外的系统搭建&#xff0c;即Harness。提出AgentModelHarness的实用公式&#xff0c;详细介绍Harness的四个层次&#xff1a;持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →