闲庭信步使用图像验证平台加速FPGA的开发:第二十六课——正弦波DDS的FPGA实现

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球: 成工fpga, https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)

至于DDS的原理和实现,成工就不多说了,因为在上个系列和《孩子都能学会的FPGA》系列都要详细的讲解,链接是https://t.zsxq.com/rDxYc,**其实DDS实现非常的简单,就是计算出频率控制字,然后直接累加即可。如果想调节相位,直接将相位字进行累加即可**。

直接上代码,在\src\dds文件夹下新建dds.sv的文件,代码如下,非常的简单,根据输入期望的频率值,计算出频率控制字,然后直接累加即可,将累加值作为存储正弦波数组的地址将正弦波读出,这儿用到了字节位数的扩展,原因在以前系列的文章中有详细的说明。

所以DDS的功能就是这样简单,寥寥数行代码就可以实现,难度系数几乎为0,很多培训机构还把DDS当成培训课程的一个亮点,可见培训水平之"高"!

为了显示正弦波的DDS图像,在src\dds文件夹下新建draw_wave.sv的文件,基本功能和上篇显示正弦波的功能一致,就是多了不同频率dds模块的例化。

在top模块例化draw_wave模块。

在tb_image_sim文件中的三个initial块如下所示,本篇就不会测试平台的数据进行比对了。

双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。

可以设置不同的频率多测试几次,在img文件夹下保存相关的图像,如下是频率500KHz和1MHz的正弦波图片。可见随着频率的增加,采样点数越来越少。

相关推荐
CoovallyAIHub5 小时前
YOLO新版本已经到13,为何落地首选仍是 v5/v8?
深度学习·算法·计算机视觉
点云SLAM6 小时前
OpenCV中常用特征提取算法(SURF、ORB、SIFT和AKAZE)用法示例(C++和Python)
opencv·算法·计算机视觉·surf算法·sift算法·orb算法·akaze算法
可编程芯片开发6 小时前
基于FPGA的多级流水线加法器verilog实现,包含testbench测试文件
fpga开发·verilog·加法器·多级流水线
CoovallyAIHub8 小时前
【技术前沿】减少90%人工!基于3D GPR深度学习的道路健康监测技术解析
深度学习·算法·计算机视觉
霖009 小时前
FPGA相关通信问题详解
开发语言·笔记·学习·fpga开发·信息与通信·信号处理
zzfive9 小时前
早期SD模型控制生成方法
人工智能·深度学习·计算机视觉
Blossom.11810 小时前
基于深度学习的目标检测:从基础到实践
人工智能·深度学习·目标检测·机器学习·计算机视觉·音视频·语音识别
hahaha601619 小时前
ARINC818协议综述
网络·fpga开发
伊织code19 小时前
OpenCV 官翻6 - Computational Photography
人工智能·opencv·计算机视觉·去噪·hdr·修复·曝光