- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
基于FPGA的DDS波形发生器
DDS波形发生器设计
•功能描述
•输入输出描述
•顶层划分
•
o顶层模块说明
o设计思想说明
•子模块描述
•
o分频模块
o相位累加器模块
o存储模块
oD/A转换模块
•验证方案
•顶层模块代码片
功能描述
1.具有产生正弦波、三角波、方波、锯齿波四种周期性波形的功
能。
2.输出波形的频率范围为61Hz-915Hz,频率分辨率1Hz。
3.由外界按键输入选择产生波形的种类、频率。
输入输出描述
顶层划分
顶层模块说明
1.fenpin:用于将系统时钟分成所需时钟。
2.addr:用于相位累加。
3.rom:用于将相位转化成幅度。
4.pmodDA2:用于将数字量转化成模拟量。
设计思想说明
1.选择端和频率控制端在时钟控制下,用相位累加器输出的地址,
作为查找表的输入,得到各种波形的数字量输出。
2.数字量输出作为D/A模块的输入,得到模拟量的输出,连接示
波器进行观察,若波形不理想可以用示波器上的数字滤波器,用低通
滤波器,选择上限截止频率进行观察。
子模块描述
分频模块
本次设计需要1MHz,所以首先对系统时钟(50MHz)来进行分
频,使其为1MHz来正常相位模块。
相位累加器模块
相位累加器由14位地址加法器与14位累加寄存器构成。每来一
个时钟脉冲,地址加法器将频率控制字与累加寄存器出的累加相位数据
相加,并把相加后的结果送至累加寄存器的输入端。累加寄存器将上一
时钟周期作用后所产生的新的相位数据反馈到地址加法器的输入端,
使地址加法器在下一时钟的作用下继续与频率控制字相加,这样,相位
累加器在时钟的作用下,进行相位累加,当相位累加器累加满量时就会
产生一次溢出,完成一个周期性的动作,这个周期也就是DDS信号的一
个频率周期(基频)。
备注:因为我的rom地址线为10位(因为存的点越多,精度越
高,但同时使用资源也在成几何倍数增长),频率控制4位,所以想
要采样到我存到rom中的所有点的话,必须要相位累加器的位宽不小
于14位。
存储模块
用MATLAB生成.coe文件,调用rom核,用相位累加器输出的
相位数据作为波形存储器的地址,在时钟下进行波形的相位与幅值转
换,按照地址和选择端的不同可以输出相应相位的正弦波、方波、三
角波、锯齿波得到离散样值序列。
备注:我是用ISE级联modelsim仿真,查看输出端men_out的
波形,ISE中我找不到查看模拟量的选项。级联方式找度娘。
clc;clear;
depth=2^10;存储单元%;
widths=12;数据宽度为%12位;
index=linspace(0,pi*2,depth);
sin_value=sin(index);
sin_value=2*sin_value*(depth-1);扩大正弦幅度值%
sin_value=fix((sin_value)+0.5);
plot(sin_value);
number=[0:depth];
fid=fopen(sin_table.coe,w+);
fprintf(fid,memory_initialization_radix=10;\n);
fprintf(fid,memory_initialization_vector=\n);
fori=1:depth
fprintf(fid,%d,\n,sin_value(
文档评论(0)