eda论文共享.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
eda论文共享

梧 州 学 院 课 程 论 文 (2016 -2017学年) 课程论文题目:DDS正弦信号发生器设计 学生姓名:欧锦生 提交日期: 年 月 日 学生签名: 学 号 201401910036 班级 14级 组员 课程编号 专业 自动化 课程名称 EDA技术 任课教师 黄玉健 教师评语: 成绩评定: 分 任课教师签名: 年 月 日 【摘要】本文主要讨论了Verilog语言的基于DDS的波形发生器的设计。从设计要求入手,本文给出了DDS的详细设计过程,包括各个模块的设计思想,电路图,Verilog语言程序代码。其大致思想为通过频率控制字去控制正弦函数的ROM存储表的地址并对应着得到其幅度值,最终达到输出需要波形的目的。 本设计除了完成指定的任务。在此基础上,为了验证实验结果我们通过QuartusII的仿真工具对设计的DDS进行了仿真,并且还进行了理论分析,发现理论和实践结合的较好。 【关键词】FPGA DDS Verilog 波形发生器 Quartus II 1.设计目的 精确地输出正弦波信号及保证信号的高可靠性。 2.设计要求 (1)掌握DDS原理。 (2)用Verilog语言代码或混合式设计一个8位的DDS正弦信号发生器。 (3)下载并应用SinalTab II逻辑分析器显示波形。 (4)可产生8个不同频率的正弦波。 3.设计原理及分析 本波形发生器的设计包含有频率选择。其具体结构见图3-1. 图3-1 整体设计方案 3.1DDS基本原理 DDS的基本原理是利用采样定量,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图2-2来表示。 图3-2 DDS基本电路原理图 其中,相位累加器由N位加法器与N位累加寄存器级联构成如图3-3: 图3-3 相频累加器 每来一个时钟脉冲c f ,加法器将控制字k 与累加寄存器输出的累加相位数据相加,把相加后的结果送到累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位加累加。由此可以看出,相位累加器在每一个时钟输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的输出频率就是DDS 输出的信号频率。 接着,把相位累加器输出的数据作为波形存储器(ROM)的相位取样地址。这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出(可以看成是一种映射),完成相位到相应幅值转换。 3.2频率选择 基于DDS的波形发生器,其输出波形的频率由两方面决定。一方面是由频率控制字,即波形输出的步长决定;另一方面是由波形点输出的固有频率决定。 DDS 输出信号的频率与基准时钟频率的关系由下式给定: 其中, fc 为基准时钟频率,2N 为波形存储器的字数,N 为相位累加器的位数, k 为频率控制字。一般的, k 小于N。 4.各模块代码及电路原理图 4.1.频率控制字 module f_ctr(sel,f_out,en,reset); input[2:0] sel;//3位输入 input en,reset; output[7:0] f_out; reg[7:0] f_out;// 地址为8位的存储器 always @ (sel) begin if(!reset) f_out = 8 else if(en) begin case(sel) 3b000:f_out =8 3b001:f_out =8 3b010:f_out =8 3b011:f_out =8 3b100:f_out =8 3b101:f_out =8 3b110:f_out =8 3b111:f_out =8 default:f_out = 8 endcase end end endmodule 4. 2 8位加法器原理图模块 由宏模块生成 4.3 8位寄存器原理图模块 由宏模块生成 4.4正弦波形数据ROM模块 由宏模块生成 4.5 顶层电路原理图 引脚功能说明: 输入引脚 clk:时序同步时钟。该时钟主要用于相位累加器和rom表查询的同时序。它决

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档