S频率发生器设计.docVIP

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

i南科技大学 FPGA课程设计报告 课程题目: 指导老师: 学 生: 波形发生 刘桂华 任健铭 gg 二o—二年五月三H 】本文主要讨论了Verilog语言的基于DDS的波形发生器的设计。从设计要求 入手,本文给出了DDS的详细设计过程,包括各个模块的设计思想,电路图,Verilog 语言程序代码。其大致思想为通过频率控制字和相位控制字去控制正弦函数的ROM 存储表的地址并对应着得到其幅度值,最终达到输出需要波形的目的。 本设计除了完成指定的任务。在此基础上,为了验证实验结果我们通过Quartusll 的仿真工具对设计的DDS进行了仿真,并且还进行了理论分析,发现理论和实践结 合的非常好。 关键词】FPGA DDS Verilog波形发生器Quartus II 设计并实现一个可产生正弦波、三角波波形发生器; 其工作频率为 50MHz,可产生 1MHz、2MHz、3MHz、4MHz、5MHz 的 正弦波、三角波。所产生波形的幅度、和位均可调整,输出数据的字长为12 bit。 若波形的频率为n MHz,则相位的最小调幅为2 k *n/60; 要求进行4级幅度调整,即ROM屮存储的数据字长为10 bit, ROM输 出的数据分别乘以001、010、011、和100。 设计原理及分析 本波形发生器的设计总共包含有频率选择、波形选择、相位选择和幅度选择 四个大块。其具体结构见阁2-1. 图2-1 图2-1整体设计方案 2. 1DDS基本原理 DDS的基本原理是利用采样定量,通过奔表法产生波形。DDS的结构有很多 种,其基本的电路原理可用图2-2来表示。 图2-2 DDS基本电路原理图fc 图2-2 DDS基本电路原理图 其中,相位累加器由N位加法器与N位累加寄存器级联构成如图2-3: fc fc 图2-3相频累加器 每来一个时钟脉冲cf ,加法器将控制字k与累加寄存器输出的累加相位数 据相加,把相加后的结果送到累加寄存器的数据输入端,以使加法器在不一个时 钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用I,不断 对频率控制字进行线性相位加累加。由此可以看出,相位累加器在每一个时钟输 入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相 位累加器的输出频率就是DDS输出的信号频率。 接着,把相位累加器输出的数据作为波形存储器(ROM)的相位取样地址。 这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查山(可 以看成是一种映射),完成相位到相放幅值转换。 2.2频率选择 基于DDS的波形发生器,其输出波形的频率由两方面决定。一方面是由频率 控制字,即波形输出的步长决定;另一方面是由波形点输出的固有频率决定。 DDS输出信号的频率与基准时钟频率的关系由下式给定: 其中,c f为基准时钟频率,2为波形存储器的字数,N为相位累加器的 位数,k为频率控制字。一般的,k小于N。假设基准时钟频率为131kHz,累 加器为8位,kM,则f。,2048 Hz。 2.3波形选择 木设计要实现三角波和正弦波这两种波形的输出。所以,在整个模块设定了 一个输入控制端。通过查询这个输入控制端的电平的高低来确定输出正弦波还是 输出三角波。其实质还是利用了 rom表完成了对相同相位的不同幅度的输出。 2. 4初相位选择 本设计中,对于产生的波形的初相的控制我们同样设定了一个输入控制端。 通过控制端的不同状态给波形添加不同的初相。其原理是对相频累加器的初次输 出加上一个特定的值。在本设计中无法实现初相的任意值设定。本设计只是设定 了几个特定的初相供选择己验证理论的正确性。 2. 5幅度选择 按照设计耍求,波形的最终输出幅度值是可调节的。设计要求中规定幅度值 是能够按照1到4倍的大小调节的。故在本设计中,在最后输出前,我们增加了 一个幅度按调节的部分。将相位幅度转换成功后的值再乘上一个要求的调幅系数 为最终的波形输出。 各模块代码及电路原理 3.1.频率控制字 module f_ctr(sel,f_out,en,reset); input[2:0] sel; input en,reset; f_ctrsel[2..O] f_out[8..0] f_ctr sel[2..O] f_out[8..0] en reset inst reg[8:0] f_out; always @ (sel) begin if(! reset) f_out = 9bOOOOOOOOO; else if(en) begin case(sel) 3*b001:f_out =9b001010010; 3b010:f_out =9b010100100; 3b011:f_out =9b011110110; 3bl00:f_out =9^101001000

文档评论(0)

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

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

1亿VIP精品文档

相关文档