DDS FSK 正弦波发生器 Verilog Quartus
名称DDS FSK 正弦波发生器 Verilog Quartus软件Quartus语言Verilog功能介绍本工程实现了一个基于 DDS 的 FSK 调制正弦波发生器使用 Verilog 编写并在 Quartus 工程环境下完成编译。设计通过输入 FSK_data 控制输出不同频率的 8 位正弦波可用于学习 DDS 频率合成、相位累加器、ROM 查表输出以及 FSK 数字调制的基本实现方法。 顶层模块 DDS_top 接收 50MHz 时钟和 FSK 调制控制信号输出 8 位 sin_wave 数字正弦波数据。系统内部根据 FSK_data 选择不同频率控制字驱动频率控制模块产生 ROM 地址再从正弦 ROM 中读取对应幅值实现频率随调制信号切换的正弦波输出。 工程包含 Quartus 项目文件、Verilog 源码、正弦 ROM 初始化数据和 ModelSim 仿真相关文件适合用于 FPGA 数字信号处理课程设计、DDS 原理实验、FSK 调制演示以及相关二次开发。运行环境开发软件Quartus。 硬件描述语言Verilog。 仿真环境ModelSim 相关仿真文件已配置包含 DDS_top_run_msim_rtl_verilog.do、仿真工作库文件和仿真转录记录。 工程对象DDS_top.qpf / DDS_top.qsf Quartus 工程包含可编译输出文件和 .sof 配置文件。设计思路本设计采用 DDS 直接数字频率合成思路实现 FSK 调制输出。系统以 50MHz 时钟作为基准通过频率控制字 FTW 控制相位累加器的地址步进速度再由正弦 ROM 按地址读取 8 位幅值数据输出从而得到对应频率的数字正弦波。 FSK_data 作为调制控制信号用于在两组频率控制字之间切换。当 FSK_data 为高电平时FTW 取 1000当 FSK_data 为低电平时FTW 取 500。根据代码中的计算关系 f50M*FTW/2^16两种控制字分别对应约 762939Hz 和 381469Hz 的正弦输出实现二频移键控的基本调制效果。 正弦波数据由 8 位、65536 深度的 ROM 查表产生相位累加器输出 16 位 ROM 地址。这样的结构便于理解 DDS 的核心工作流程也方便后续扩展为更多频点、可配置频率控制字或其他调制方式。模块结构工程主要由 DDS_top、Frequency_ctrl 和 sin_ROM 等模块组成。 DDS_top顶层模块连接时钟、FSK_data 调制输入、频率控制字选择、相位累加器和正弦 ROM 输出。 Frequency_ctrl频率控制/相位累加器模块根据输入频率控制字产生 16 位 ROM 地址控制正弦表读取速度。 sin_ROM正弦查找表 ROM使用 sin_8x65536.mif 初始化数据按地址输出 8 位正弦波幅值。 辅助生成模块包括 sin_ROM_decode、sin_ROM_mux、sin_ROM_altsyncram 等与 Quartus ROM 存储结构相关。演示视频配套演示视频展示了 DDS FSK 正弦波输出效果可用于直观查看工程运行现象和输出波形变化过程。演示视频请关注公众号后获取对应资料查看。仿真图/仿真说明/设计文档图片设计文档内容覆盖工程文件、程序文件、ROM、程序编译、RTL 图、Testbench、仿真图、整体仿真图、频率累加器模块仿真图和 DDS 模块仿真图。仿真部分可用于查看顶层 DDS 输出、频率累加器地址变化以及不同 FSK_data 控制下的输出频率切换过程。部分代码以下展示顶层模块DDS_top的部分代码完整代码可关注下方公众号卡片获取。module DDS_top( input clk_50M,//时钟频率50MHz input FSK_data,//FSK调制信号控制输出不同频率的正弦波 output [7:0] sin_wave//输出sin波形 ); //波形 ROM 地址位数 n16 wire [15:0] addra; wire [15:0] FTW;//频率控制字,值越大输出频率越大 assign FTW(FSK_data1)?16d1000:16d500;//1000对应762939Hz500对应381469Hz //对应输出频率f50M*FTW/2^16 //sin波ROM sin_ROM i_sin_ROM ( .clock(clk_50M), // input wire clka .address(addra), // input wire [15 : 0] addra .q(sin_wave) // output wire [7 : 0] douta ); //相位累加器 Frequency_ctrl i_Frequency_ctrl( . clk_50M(clk_50M), . frequency(FTW),//频率控制字,值越大输出频率越大 . addra(addra)//输出地址 ); endmodule代码获取下方公众号“FPGA代码设计学习资料”

相关新闻

AI大模型应用实战:从本地部署、RAG知识库到Dify编排的完整指南

AI大模型应用实战:从本地部署、RAG知识库到Dify编排的完整指南

最近在尝试将大模型应用到实际业务中,很多开发者朋友都遇到了相似的困境:网上教程要么是零散的代码片段,要么是过于理论化的论文解读,真正能跑通、能落地的完整闭环方案少之又少。特别是从本地部署、知识库增强到应用编排这一整套…

2026/6/30 18:40:56阅读更多 →
Axure RP完整中文界面解决方案:3分钟告别英文困扰

Axure RP完整中文界面解决方案:3分钟告别英文困扰

Axure RP完整中文界面解决方案:3分钟告别英文困扰 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英…

2026/6/30 18:40:56阅读更多 →
Postman串联接口测试实战:从单点验证到业务流程自动化

Postman串联接口测试实战:从单点验证到业务流程自动化

1. 项目概述:从单点测试到流程验证的跨越做接口测试的朋友,估计没人不知道Postman。我们用它来发个请求、看看返回结果,验证一下接口通不通,这几乎是日常。但很多时候,业务逻辑不是孤立的,它是由一连串的接…

2026/6/30 18:35:55阅读更多 →
数字图书馆的守护者:novel-downloader 开源项目深度解析

数字图书馆的守护者:novel-downloader 开源项目深度解析

数字图书馆的守护者:novel-downloader 开源项目深度解析 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在信息时代,我们每天都在创造和消费数字内容&#xf…

2026/7/1 17:01:17阅读更多 →
微信虚拟支付错误码:1000到10056,一路踩坑到支付成功

微信虚拟支付错误码:1000到10056,一路踩坑到支付成功

一、前期准备 按照官网先进行配置:虚拟支付 | 微信开放文档拿到相关参数:appid、appSecret、offerId、appKey(现网)、sandboxAppKey(沙网)、env(0:正式环境、1沙网环境)&#xff0c…

2026/7/1 17:01:17阅读更多 →
力扣334.递增的三元子序列

力扣334.递增的三元子序列

分享一种非递归的方法以及一种贪心的方法(优),第一种是自己想的方法一思路先找最大数A,如果最大数左边没有两个数,删除最大数A。继续寻找最大数A,再找最大数左边最大的数B,如果最大数B在最左边&…

2026/7/1 17:01:17阅读更多 →
如何让Mac Boot Camp驱动部署像呼吸一样简单?

如何让Mac Boot Camp驱动部署像呼吸一样简单?

如何让Mac Boot Camp驱动部署像呼吸一样简单? 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 想象一下:你刚在Mac上安装了Windows系统,准备开始工…

2026/7/1 17:01:17阅读更多 →
嵌入式高手都在偷偷用的“第15条”:用 __attribute__((cleanup)) 在 C 语言里优雅地自动释放资源

嵌入式高手都在偷偷用的“第15条”:用 __attribute__((cleanup)) 在 C 语言里优雅地自动释放资源

该文章同步至OneChan 你有没有经历过:在函数里加了锁,却因为中途 return 或 goto 提前退出,锁永远没释放,整个系统活活卡死? 这是资深工程师压箱底的编程技巧系列第十五篇。前面我们学会了用 constructor 在 main() 之…

2026/7/1 17:01:17阅读更多 →
网易云音乐直链解析API深度解析:从原理到实战的完整指南

网易云音乐直链解析API深度解析:从原理到实战的完整指南

网易云音乐直链解析API深度解析:从原理到实战的完整指南 【免费下载链接】netease-cloud-music-api 网易云音乐直链解析 API 项目地址: https://gitcode.com/gh_mirrors/ne/netease-cloud-music-api 在当今音乐流媒体服务蓬勃发展的时代,开发者经…

2026/7/1 16:56:16阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →