网站大量收购独家精品文档,联系QQ:2885784924

DDS正弦信号发生器设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
梧州学院课程论文 (2016 -2017学年第1学期) 课程论文题目:DDS正弦信号发生器设计 学生姓名:欧锦生 提交日期: 年 月 日 学生签名: 学 号 201401910036 班级 14级 组员 课程编号 专业 自动化 课程名称 EDA技术 任课教师 黄玉健 教师评语: 成绩评定: 分 任课教师签名: 年 月 日 【摘要】本文主要讨论了Verilog语言的基于DDS的波形发生器的设计。从设计要 求入手,本文给出了DDS的详细设计过程,包括各个模块的设计思想,电路图, Verilog语言程序代码。其大致思想为通过频率控制字去控制正眩函数的ROM存储 表的地址并对应着得到其幅度值,最终达到输岀需要波形的目的。 本设计除了完成指定的任务。在此基础上,为了验证实验结果我们通过 QuartusII的仿真工具对设计的DDS进行了仿真,并且还进行了理论分析,发现理 论和实践结合的较好。 【关键词】FPGA DDS Verilog波形发生器Quartus 11 1 ?设计目的 精确地输出正弦波信号及保证信号的高可靠性。 设计要求 掌握DDS原理。 用Verilog语言代码或混合式设计一个8位的DDS正弦信号发生器。 下载并应用SinalTab II逻辑分析器显示波形。 可产生8个不同频率的正弦波。 设计原理及分析 本波形发生器的设计包含有频率选择。其具体结构见图3-1. Z \ 波形发生器 =频率选择 图3-1整体设计方案 3. 1DDS基本原理 DDS的基本原理是利用釆样定量,通过查表法产生波形。DDS的结构有很多 其中,相位累加器由N位加法器与N位累加寄存器级联构成如图3-3: 图3-3相频累加器 每来一个时钟脉冲cf ,加法器将控制字k与累加寄存器输岀的累加相位数 据相加,把相加后的结果送到累加寄存器的数据输入端,以使加法器在下一个时 钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断 对频率控制字进行线性相位加累加。由此可以看出,相位累加器在每一个时钟输 入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相 位累加器的输出频率就是DDS输出的信号频率。 接着,把相位累加器输出的数据作为波形存储器(ROM)的相位取样地址。 这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出(可 以看成是一种映射),完成相位到相应幅值转换。 2频率选择 基于DDS的波形发生器,其输出波形的频率由两方面决定。一方面是由频率 控制字,即波形输出的步长决定;另一方面是由波形点输出的固有频率决定。 DDS输出信号的频率与基准时钟频率的关系由下式给定: font = yN k 其中,fc为基准吋钟频率,2、为波形存储器的字数,N为相位累加器的位 数,k为频率控制字。一般的,k小于N。 各模块代码及电路原理图 4. 1.频率控制字 module f_ctr(sei, f_out, en,reset); input[2:0] sel;//3 位输入 input en,reset; output[7:0] f_out; reg[7:0] f out;//地址为8位的存储器 3 bOOOf. 3 bOOO f. _out 3 bOOl f_ _out 3, bOlO f_ out 3, bOll f_ out 3bl00 f_ _out 3bl01 f_ _out 3bllO f_ _out 3blll f out case (sei) always @ (sei) begin if(!reset) f_out = bOOOOOOOO; else if (en) begin =8〈二8bOOOOOOlO 〈二8 bOOOOOOll =8=8=8,〈二8bOOOOOlll 〈二8bOOOOlOOO default:f_out = 8 bOOOOOOOO; endcase end encl endmodule sel[2..O] Cout[7..0] en | reset inst 4. 2 8位加法器原理图模块 ?〃////////////////〃■〃/////////////////, 夕???????????? :addd ckck纟)^ dataa[7. .O] 纟datab[7.?0] ckck 幺 \ inst result[7..O]由宏模块生成 result[7..O] 纟[add?-? 纟[add ? -? -? 9 密4 纟4 clock data[7..O] q[7..O] T 9 -? ■ ? £ 9 9 9 9 9 纟 1 inst y !???!???!???!???!??????!???!???

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档