南京理工大学DDS实验报告.docx

上传人:b****4 文档编号:12100547 上传时间:2023-04-17 格式:DOCX 页数:22 大小:242.32KB
下载 相关 举报
南京理工大学DDS实验报告.docx_第1页
第1页 / 共22页
南京理工大学DDS实验报告.docx_第2页
第2页 / 共22页
南京理工大学DDS实验报告.docx_第3页
第3页 / 共22页
南京理工大学DDS实验报告.docx_第4页
第4页 / 共22页
南京理工大学DDS实验报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

南京理工大学DDS实验报告.docx

《南京理工大学DDS实验报告.docx》由会员分享,可在线阅读,更多相关《南京理工大学DDS实验报告.docx(22页珍藏版)》请在冰豆网上搜索。

南京理工大学DDS实验报告.docx

南京理工大学DDS实验报告

南京理工大学

直接数字频率合成器

实验报告

学号:

姓名:

学院:

指导老师:

时间:

 

目录

摘要与关键字------------------------------------------3

实验设计内容------------------------------------------3

设计原理----------------------------------------------3

概念------------------------------------------------------3

设计基本要求-----------------------------------------------3

实验要求---------------------------------------------------4

设计提高部分要求--------------------------------------------4

基本框图---------------------------------------------------4

工作原理---------------------------------------------------4

整体电路图-------------------------------------------------5

各子模块设计原理--------------------------------------6

频率预置和调节电路-----------------------------------------6

累加器-----------------------------------------------------7

波形存储器-------------------------------------------------9

DDS电路---------------------------------------------------9

分频电路--------------------------------------------------9

测频电路--------------------------------------------------11

译码电路--------------------------------------------------11

显示电路--------------------------------------------------14

调试仿真及下载---------------------------------------15

实验感想---------------------------------------------16

参考文献---------------------------------------------17

 

摘要

报告内容为设计一个具有清零、使能、频率控制、相位控制、输出多种波形(包括正余弦、三角波、锯齿波、方波)、经过D/A转换之后能在示波器上显示的直接数字频率合成器。

直接数字频率合成技术是一项非常实用的技术,它广泛的应用于数字通信系统。

报告分析了DDS的设计原理和整个电路的工作原理,介绍了ROM查找表设计和相位累加器设计,还分别说明了各子模块的设计原理和调试、仿真、编程下载的过程。

在试验中我们用到了QuartusII7。

0软件。

Abstract

ThereporttellsDirectdigitalsynthesizercancontrolusing、reset、changefrequencyandphase、outputvariouswaveform(includingsine(cosine),trianglewave,sawtooth,squarewaveform)andafterconversionafteralsodisplayedontheoscilloscope。

Directdigitalsynthesizertechnologyisausefulsubject,it’swidelyappliedindigitalcommunication。

Also,itanalyzesthetheoryanddesignaboutdirectdigitalsynthesize(DDS)andanalyzedtheprincipleofallworkandexplainedthedesigningprincipleofdifferentpartsseparatelyanddescribestheprincipleandfeaturesofDDS。

TherealizingmethodofROMfinding-tableandphasecounterandintroducedindetail。

Atthesametimeitintroducedthedebugging,simulating,compiling,programming。

withthehelpofQuartusII7。

0wecompletewell。

关键字

DDSROMQUARTUSII输出波形

Keywords

DirectdigitalsynthesizerROMQuartusII

outputvariouswaveform

实验要求说明

1.实验设计内容

设计一个频率及相位均可控制的具有正弦和余弦输出的直接数字频率合成器(DirectDigitalFrequencySynthesizer简称DDFS或DDS)。

二.设计原理

1、概念

直接数字频率合成器(DirectDigitalFrequencySynthesizer)是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术。

2、设计基本要求

(1)利用QuartusII软件和SmartSOPC实验箱实现DDS的设计;

(2)DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的RAM实现,RAM结构配置成212×10类型;

(3)具体参数要求:

频率控制字K取4位;基准频率fc=1MHz,由实验板上的系统时钟分频得到;

(4)系统具有使能功能;

(5)利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正、余弦两路波形;

(6)通过开关(实验箱上的Ki)输入DDS的频率和相位控制字,并能用示波器观察加以验证。

3、设计提高部分要求

(1)通过按键(实验箱上的Si)输入DDS的频率和相位控制字,以扩大频率控制和相位控制的范围;(注意:

按键后有消颤电路)

(2)在数码管上显示生成的波形频率;

(3)设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器;

(4)充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度;

(5)基于DDS的AM调制器的设计;

(6)自己添加其他功能。

4、基本框图

5、工作原理

DDS的基本结构主要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。

相位累加器由N位加法器N位寄存器构成。

每来一个CLOCK,加法器就将频率控制字fwrod与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。

这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。

由此,相位累加器在每一个时钟脉冲输入时,把频率控制字累加以此,相位累加器输出的数据作为波形存储器的相位取样地址,这样就可把存储在波形存储器内的波形抽样值进行找表查出,完成相位到幅值的转换。

由于相位累加器为N位,相当于把正弦信号在相位上的精度定为N位,所以分辨率为1/2N。

若系统时钟频率为fc,频率控制字fword为1,则输出频率为fOUT=fC/2N,这个频率相当于"基频"。

若fword为K,则输出频率为:

fout=K*fC/2N

当系统输入时钟频率fC不变时,输出信号的频率由频率控制字K所决定。

由上式可得:

K=2N*fout/fC

其中,K为频率字,注意K要取整,有时会有误差。

选取ROM的地址时,可以间隔选项,相位寄存器输出的位数D一般取10-16位,这种截取方法称为截断式用法,以减少ROM的容量。

D太大会导致ROM容量的成倍上升,而输出精度受D/A位数的限制未有很大改善。

DDS工作流程示意图:

6、整体电路图

 

各子模块设计原理

1.频率预置和调节电路

(1)设计原理:

K为相位增量,也叫频率控制字。

DDS的输出频率表达式为fout=K*fC/2N,当K=1时,DDS输出最低频率(也即频率分辨率)为fc/2N,而DDS的最高输出频率由Nyquist采样定理决定,即fc/2,也就是说K的最大值为2N-1。

因此,只要N足够大,DDS可以得到很细的频率间隔。

要改变DDS的输出频率,只要改变频率控制字K即可。

设计模块时,用74161设计模16模块,1HZ信号输入让其变化。

该模块有清零和保持端,由开关控制,以便计数到需要值时保持或清零。

输出作为频率控制字低四位,高八位置零,输入累加器进行累加。

(2)电路图如下:

(a)频率控制

由频率控制字控制频率的低4位,使频率在0Hz~16Hz间变化,从而达到控制频率的目的。

电路图如下:

(b)相位控制

由相位控制字控制相位的高4位,使相位较大幅度的变化,从而达到改变相位的目的。

电路图如下:

2.累加器

(1)设计原理:

相位累加器由12位加法器与12位寄存器级联构成。

每来一个时钟脉冲,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。

寄存器将加法器的上一个时钟作用后所产生的相位数据反馈至加法器的输入端,以使加法器在下一个时钟作用下继续与频率控制字进行相加。

这样,相位累加器在时钟作用下,进行相位累加。

当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。

(2)原理如下图:

(3)电路图如下:

其中加法器和寄存器器用VHDL语言编写,代码如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityadder_12is//加法器

port(clr,clk:

INstd_logic;

in1,in2:

INstd_logic_vector(11Downto0);

ci:

OUTstd_logic;

shuchu:

OUTstd_logic_vector(11Downto0)

);

endadder_12;

architecturebehaveofadder_12is

begin

process(clr,clk)

variabletemp_shuchu:

std_logic_vector(11Downto0);

variabletemp_ci:

std_logic;

begin

if(clr='0')then

ci<='0';

shuchu<=(others=>'0');

elsif(clk'eventandclk='1')then

temp_ci:

='0';

foriin0to11loop

temp_shuchu(i):

=in1(i)xorin2(i)xortemp_ci;

temp_ci:

=(in1(i)andin2(i))or((in1(i)xorin2(i))andtemp_ci);

endloop;

shuchu<=temp_shuchu;

ci<=temp_ci;

endif;

endprocess;

endbehave;

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitysuocunis//寄存器

port(D:

instd_logic_vector(11downto0);

clk:

instd_logic;

Q:

outstd_logic_vector(11downto0)

);

endsuocun;

architecturebehaveofsuocunis

begin

process(clk)is

begin

if(clk'eventandclk='1')then

Q<=D;

endif;

endprocess;

endbehave;

 

3.波形存储器

首先创建一个新的mif文件,将要储存的数据输入进去,点击保存。

再创建一个新的ROM,创建过程中选择不同的mif文件即可储存不同的波形。

生成的ROM如下:

四.DDS电路

利用LPM_MUX实现波形选择,从正余弦、三角波、锯齿波、方波选择波形输出。

总DDS电路图如下:

五.分频电路

(1)设计原理:

脉冲发生电路是为计时器提供计时脉冲的,因为设计的是计时器,所以需要产生1Hz的脉冲信号。

EDA实验系统的输入时钟为48MHz,那么要产生1Hz的脉冲信号,则要对输入时钟48MHz进行分频,依次进行48分频、两次1000分频即可得到1Hz的脉冲信号,一次2分频得到0.5Hz。

(2)电路图如下:

(3)程序代码

分频电路用Verilog语言编写,代码如下:

modulediv_clk48(clk_in,reset,clk_out);

inputclk_in,reset;

outputclk_out;

regclk_out;

reg[width(n)-1:

0]count;

parametern=24;//n为参数,可设置成不同分频

always@(posedgeclk_in)

if(~reset)

count<=0;

elseif(count==n-1)

count<=0;

else

count<=count+1;

always@(count)

if(~reset)

clk_out=0;

elseif(count==n-1)

clk_out=~clk_out;

else

clk_out=clk_out;

functionintegerwidth;

inputintegersize;

begin

for(width=0;size>0;width=width+1)

size=size>>1;

end

endfunction

endmodule

 

6、测频电路

(1)设计原理:

测频就是计算1秒钟内脉冲的个数。

我们利用计数器和锁存器实现这一功能。

由于累加器以频率控制字K为间隔,当累加器满量时就会产生一次溢出,完成一次周期性的动作,这个周期也就是DDS信号的一个频率周期,所以将累加器的最高位作为测频电路技术器的脉冲。

将1HZ的时钟信号二分频,得到0.5Hz。

将0.5Hz脉冲送入锁存器的时钟端,0.5Hz反相延时后的脉冲送入计数器的清零端。

这样就使计数器在2s的脉冲周期内,1s内清零,1s内计数。

由于锁存器的脉冲和计数器的脉冲是反相的,且有一定的延时,所以当锁存器有效脉冲来到时,计数器是清零状态,锁存器就锁存前1s内计数器的计数信号。

这样就完成了1s内的脉冲计数,再将锁存器的输出送入译码显示电路,就可以在数码管上显示波形频率了。

(2)原理如下图:

(3)电路图如下:

7、译码电路

(1)设计原理:

频率控制字和相位控制字都是四位的二进制码,要转换成8421BCD码才能在数码管上显示。

因此先通过译码电路实现此转换再输入显示电路。

(2)对应转化如下表:

 

频率控制字kf

十进制个位(kfg[3..0])

十进制十位(kfs[3..0])

0000(0)

0000(0)

0000

0001

(1)

0001

(1)

0000

0010

(2)

0010

(2)

0000

0011(3)

0011(3)

0000

0100(4)

0100(4)

0000

0101(5)

0101(5)

0000

0110(6)

0110(6)

0000

0111(7)

0111(7)

0000

1000(8)

1000(8)

0000

1001(9)

1001(9)

0000

1010(10)

0000(0)

0001

1011(11)

0001

(1)

0001

1100(12)

0010

(2)

0001

1101(13)

0011(3)

0001

1110(14)

0100(4)

0001

1111(15)

0101(5)

0001

(3)VHDL程序代码如下:

libraryieee;

useieee.std_logic_1164.all;

entityyimais

port(

pl_kz:

instd_logic_vector(3downto0);

xw_kz:

instd_logic_vector(3downto0);

plh:

outstd_logic_vector(3downto0);

pll:

outstd_logic_vector(3downto0);

xwh:

outstd_logic_vector(3downto0);

xwl:

outstd_logic_vector(3downto0)

);

endyima;

architecturebehaveofyimais

begin

withpl_kzselect

plh<="0000"when"0000",

"0000"when"0001",

"0000"when"0010",

"0000"when"0011",

"0000"when"0100",

"0000"when"0101",

"0000"when"0110",

"0000"when"0111",

"0000"when"1000",

"0000"when"1001",

"0001"when"1010",

"0001"when"1011",

"0001"when"1100",

"0001"when"1101",

"0001"when"1110",

"0001"whenothers;

withxw_kzselect

xwh<="0000"when"0000",

"0000"when"0001",

"0000"when"0010",

"0000"when"0011",

"0000"when"0100",

"0000"when"0101",

"0000"when"0110",

"0000"when"0111",

"0000"when"1000",

"0000"when"1001",

"0001"when"1010",

"0001"when"1011",

"0001"when"1100",

"0001"when"1101",

"0001"when"1110",

"0001"whenothers;

withpl_kzselect

pll<="0000"when"0000",

"0001"when"0001",

"0010"when"0010",

"0011"when"0011",

"0100"when"0100",

"0101"when"0101",

"0110"when"0110",

"0111"when"0111",

"1000"when"1000",

"1001"when"1001",

"0000"when"1010",

"0001"when"1011",

"0010"when"1100",

"0011"when"1101",

"0100"when"1110",

"0101"whenothers;

withxw_kzselect

xwl<="0000"when"0000",

"0001"when"0001",

"0010"when"0010",

"0011"when"0011",

"0100"when"0100",

"0101"when"0101",

"0110"when"0110",

"0111"when"0111",

"1000"when"1000",

"1001"when"1001",

"0000"when"1010",

"0001"when"1011",

"0010"when"1100",

"0011"when"1101",

"0100"when"1110",

"0101"whenothers;

endbehave;

八、显示电路

(1)设计原理:

本次实验中用到七位数码显示即七个数码显示管,为控制七个数码管循环点亮,首先设计一个模七计数器,后将其输出经过一个三--八译码器输出位地址,即译码电路7448将输入信号对应的输出信号控制数码管数字的显示,而模块74138译码器选择七个数码管中哪个接受信号。

每个数码显示管同步显示需要显示的数字,由于同一时间至点亮一个数码管,用较高的频率来数码管循环显示,利用人眼的视觉惰性,就实现了动态显示功能。

2)电路图如下:

 

调试仿真及下载

调试

先保存,将上述电路以字母输入方式输入并保存在工程文件夹中。

再将文件置顶,最后进行编译,在主菜单中选择processing项,在弹出的对话框中选择Startcomplication键,则编译开始。

在编译过程中,若有任何信息、错误和警告消息,都将显示在自动打开的Message-Compiler窗口中;若由于文件出错而没有通过,则需要返回原文件进行修改,修改后存盘,再编译直至文件通过。

仿真

新建一个“VectorWaveformfile”文件,并在下拉列表中选.vwf扩展名,生成波形文件。

右键单击,在弹出的菜单中选EnterNodesFromeSNF,在弹出的对话框中选择要观测的节点。

选Option\GridSize和File\EndTime

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1