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