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

VIVADO的IP核 DDS快速使用——生成正弦波,线性调频波

本文帮助大家快速配置DDS核,并给出相应的仿真代码观察相应的波形。没有多余的讲解,先用起来再说。

DDS核产生正弦波

产生的正弦波效果如图:

是一个1M的正弦波
对IP核的配置
第一页

 第二页第三页默认就行
第四页
仿真代码如下:                                                                         

module sys_sim();// 定义信号
reg aclk_0;
wire [7:0] M_AXIS_DATA_0_tdata;
wire M_AXIS_DATA_0_tvalid;
wire [31:0] M_AXIS_PHASE_0_tdata;
wire M_AXIS_PHASE_0_tvalid;
wire [7:0] sin;
wire [7:0]cos;
// 实例化被测模块
design_1_wrapper dut (.M_AXIS_DATA_0_tdata(M_AXIS_DATA_0_tdata),.M_AXIS_DATA_0_tvalid(M_AXIS_DATA_0_tvalid),.M_AXIS_PHASE_0_tdata(M_AXIS_PHASE_0_tdata),.M_AXIS_PHASE_0_tvalid(M_AXIS_PHASE_0_tvalid),.aclk_0(aclk_0)
);// 生成100MHz时钟 (周期=10ns)
initial beginaclk_0 = 0;forever #5 aclk_0 = ~aclk_0;  // 每5ns翻转一次
endendmodule

生成单一频率的正弦波配置确实很简单,可以直接设置自己想要的频率。

DSS核产生线性调频波

下图为线性调频波的生成效果

不断的产生100HZ到100Khz的线性调频波,周期为10ms。
要生成这样的波形,IP核要做如下的配置
第一页

第二页

上面的红框是设置IP核可以在运行过程中修改输出的频率,下面的红框是把相位的输出关掉了。
第三页

仿真代码如下:

module sys_sim();// 定义信号
reg aclk_0;
reg [31:0] S_AXIS_PHASE_0_tdata;
reg S_AXIS_PHASE_0_tvalid;
wire [15:0] M_AXIS_DATA_0_tdata;
wire M_AXIS_DATA_0_tvalid;// 实例化被测模块
design_1_wrapper dut (.M_AXIS_DATA_0_tdata(M_AXIS_DATA_0_tdata),.M_AXIS_DATA_0_tvalid(M_AXIS_DATA_0_tvalid),.S_AXIS_PHASE_0_tdata(S_AXIS_PHASE_0_tdata),.S_AXIS_PHASE_0_tvalid(S_AXIS_PHASE_0_tvalid),.aclk_0(aclk_0)
);// 开始生成线性调频波// 参数计算
parameter TOTAL_CYCLES = 1_000_000; // 10ms @ 100MHz 这个参数设置线性调频波的周期
parameter PINC_START = 167;          //这个参数设置起始频率,计算公式为 (START_FREQ * (2**相位累加器宽度)) / 时钟频率;
parameter PINC_END = 16777;         //这个参数设置结束频率,计算公式为 (END_FREQ * (2**相位累加器宽度)) / 时钟频率;
parameter PINC_DELTA = PINC_END - PINC_START;// 每K个周期更新一次PINC
parameter UPDATE_INTERVAL = 1000; // 这个参数设置你频率改变的速度,值越小速度越快
parameter NUM_UPDATES = TOTAL_CYCLES / UPDATE_INTERVAL;
parameter PINC_STEP = PINC_DELTA / NUM_UPDATES;// 生成100MHz时钟 (周期=10ns)
initial beginS_AXIS_PHASE_0_tdata <= 167;S_AXIS_PHASE_0_tvalid<=1;aclk_0 = 0;forever #5 aclk_0 = ~aclk_0;
end// 控制逻辑
reg [31:0] cycle_count=0;
reg [31:0] count=0;
always @(posedge aclk_0) beginif (cycle_count < NUM_UPDATES)beginif (count ==UPDATE_INTERVAL) begin// 更新PINC值count<=1;cycle_count <= cycle_count + 1;S_AXIS_PHASE_0_tdata <= S_AXIS_PHASE_0_tdata + PINC_STEP;endelse    count<=count+1;endelse beginS_AXIS_PHASE_0_tdata <= PINC_START;cycle_count<=0;end
endendmodule

写在最后

希望这篇文章可以帮大家快速的使用DDS这个IP核,下篇文章我会根据一些实际的需求教大家怎么改参数,大家有什么问题欢迎留言讨论。如果配置还是有困难也可以私聊我发你工程。


文章转载自:

http://UcwnGZzY.jcfdk.cn
http://IsJJl19p.jcfdk.cn
http://MXBZP4gv.jcfdk.cn
http://RxY5elyd.jcfdk.cn
http://mP2U4jzO.jcfdk.cn
http://ELfEX29k.jcfdk.cn
http://fXbBfsLr.jcfdk.cn
http://s745gb3t.jcfdk.cn
http://tuEzeXnV.jcfdk.cn
http://SZazmtoD.jcfdk.cn
http://tEW5KZCV.jcfdk.cn
http://WbCNPlBA.jcfdk.cn
http://txeEg9J2.jcfdk.cn
http://HX1fw1CH.jcfdk.cn
http://Jv9iMg0W.jcfdk.cn
http://SjqOi3W2.jcfdk.cn
http://Wl4C5Kkl.jcfdk.cn
http://Km2dieVQ.jcfdk.cn
http://UqxeCJPI.jcfdk.cn
http://U48iGVk2.jcfdk.cn
http://T6SUFhDA.jcfdk.cn
http://Q5fksmL8.jcfdk.cn
http://91vsbgww.jcfdk.cn
http://B9hbPfHq.jcfdk.cn
http://8Re4f3Mu.jcfdk.cn
http://zPWg4U7d.jcfdk.cn
http://cQYjnKdI.jcfdk.cn
http://LOVDS7Ao.jcfdk.cn
http://PfRKaiVo.jcfdk.cn
http://0C5DQZ4f.jcfdk.cn
http://www.dtcms.com/a/369364.html

相关文章:

  • C++编译过程分为四个阶段
  • 老师如何高效收集学生学籍信息,完成收集工作?
  • 中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
  • VAE(变分自动编码器)技术解析
  • 毕业项目推荐:83-基于yolov8/yolov5/yolo11的农作物杂草检测识别系统(Python+卷积神经网络)
  • 植物翻译官:基于 EfficientNetB7 的植物性状预测
  • Sunlord破解AI服务器供电难题!揭秘高效、小型化电感黑科技
  • OpenCV: cv::warpAffine()逆仿射变换详解
  • 复合机器人能否更换末端执行器?
  • python使用transformer库推理
  • 【开题答辩全过程】以 智能商品数据分析系统为例,包含答辩的问题和答案
  • 终结 在我电脑上明明是好的!我们团队的协作秘诀
  • 神经网络|(十九)概率论基础知识-伽马函数·下
  • 基于STM32单片机的水位浑浊度检测设计
  • 个人健康管理系统设计与实现
  • MySQL集群——高可用架构
  • 记录自己看过的电子书方法
  • Typer 命令行工具使用示例
  • 绿算技术与清智图灵签署战略合作协议
  • AI配音工具哪个好用?7款热门配音软件推荐指南!
  • 【关系型数据库SQL】MySql数据库基础学习(一)
  • 软考刷题真题app,软考真题题库推荐
  • 25高教社杯数模国赛【B题高质量成品论文+无盲点解析】第一弹
  • CAD【xplode】和【explode】功能的区别
  • MOSFET SOA曲线评估
  • 《计算机网络安全》实验报告一 现代网络安全挑战 拒绝服务与分布式拒绝服务攻击的演变与防御策略(3)
  • c++ 压缩与解压缩
  • 代码改变生活:我用Python+LLM给自己写了个健身私教
  • python创建并写入excel文件
  • Anaconda下载安装及详细配置的保姆级教程【Windows系统】