基于fpga的dds信号源

基于fpga的dds信号源

ID:34557337

大小:376.15 KB

页数:17页

时间:2019-03-07

基于fpga的dds信号源_第1页
基于fpga的dds信号源_第2页
基于fpga的dds信号源_第3页
基于fpga的dds信号源_第4页
基于fpga的dds信号源_第5页
资源描述:

《基于fpga的dds信号源》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、湖北师范学院电工电子实验教学省级示范中心电子版实验报告电工电子中心2009年5月绘制基于FPGA的DDS信号源一、任务解析DDS(DirectDigitalSynthesis数字频率合成器)信号源就是可以通过按键可以直接设定信号的输出频率,这时我们就可得到自己想要多少频率的信号,是一个非常方便的信号源。我们可以利用MAXPLUSII软件提供了非常丰富的参数化(LPM)模块,在FPGA上实现输出频率可调的信号。DDS原理DDS的原理框图如图1所示。图中相位累加器可在每一个时钟周期的上升沿将我们设定的步进值累加一次,如果计数超过了我们设定的计数值(N

2、bit),则会自动溢出,这时我们把高8位的值送去ROM波形中去查表,经过一个DA转换,就可以得到正弦信号。图1DDS原理M假设时钟为2Hz,数据保持寄存器选择NBit,在时钟驱动下,累加器输出结果S被反馈到累加器输入端B,B和A的数据被累加到S,下一个时钟脉冲又将S反馈到B,再次与A累加到S,下一个时钟脉冲又将S反馈到B,如此循环累加,实现按步进值,按时钟节拍循环累加,使得NBit数据被徐循环累加,产生循环扫描的地址码0~255(高8Bit)。完成一次地址循环需要的时间由时钟和步进值决定,可以由公式计算:湖北师范学院物电学院0803班六月未央制作

3、第2页,共18页湖北师范学院电工电子实验教学省级示范中心电子版实验报告N21T=´MA2一次地址循环可以输出一个完整的波形,既T就是输出波形的周期,转换成频率f,得到计算公式:xNM1212=´f=´AM,xNfxA22M当晶振(2)和计数器Bit数N确定之后,f既与步进值A成正比,对A的调整可x(M-N)以完成对f的设定,当N足够大时,比例常数2可以很小,例如0.01,既fxx等于A的0.01倍,这样就可以实现对f的精细调整。x初步设定S的宽度为24bit,由于我们现实中不存在晶振的频率刚好是2的多624´10少次方,譬如我们实验箱的晶振是24

4、MHz的。这个时候=1.4305,该如242何设定使得我们每次把步进值增加1,就可以实现频率也加1呢?对了,把步进24值A设为2=0.6991,这样相乘就是1Hz了,事实也是这样实现的。但是624´10这时又遇到难题了,步进值是不能设为小数,该怎么办呢?那可不可以这样呢,把步进值A乘以0.6991,这时候步进值A不就是频率f了吗?而MAXPLUSSII中也存在乘法器,这样难题不就解决了吗?我做的DDS信号源就是这样实现的,那么就来把问题一个个的解决掉吧!二、方案论证设定频率通过一个模式按键来选择对那一位设定,同时对那一位设定,该位会产生一个闪烁的

5、效果。该DDS设定的频率在0到99999Hz之间,模式有六种,0对应的不对任何位设值,1对应的对个位设值,2对应的对十位设值,3对应的对百位设值,4对应的对千位设值,5对应的对万位设值。1、模式程序如下:湖北师范学院物电学院0803班六月未央制作第3页,共18页湖北师范学院电工电子实验教学省级示范中心电子版实验报告moduleselect_sel(key2,sel);inputkey2;output[2:0]sel;reg[2:0]sel;always@(posedgekey2)if(sel<5)sel=sel+1;elsesel=0;endmo

6、dule2、频率的个位设定代码如下:moduleainputdata(clr,sel,upkey,downkey,a);inputclr,upkey,downkey;input[2:0]sel;output[3:0]a;reg[3:0]a;wireaddclk,clkb,clkc,clkd,upkeyout,downkeyout,newclk;assignupkeyout=upkey&(sel==1);assigndownkeyout=downkey&(sel==1);assignaddclk=upkeyout

7、downkeyout;LCELLA

8、A(addclk,clkb);LCELLBB(clkb,clkc);LCELLCC(clkc,clkd);LCELLDD(clkd,newclk);always@(posedgenewclkornegedgeclr)if(!clr)begina=0;endelsebeginif(upkeyout)beginif(a<9)a=a+1;elsea=0;endif(downkeyout)beginif(a==0)a=9;elsea=a-1;endendendmodule3、频率的十位设定代码如下:湖北师范学院物电学院0803班六月未央制作第4页,共18

9、页湖北师范学院电工电子实验教学省级示范中心电子版实验报告modulebinputdata(clr,sel,upkey,downkey,b

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。