dds课程设计报告正文.docx

上传人:b****4 文档编号:3733089 上传时间:2022-11-25 格式:DOCX 页数:19 大小:240.53KB
下载 相关 举报
dds课程设计报告正文.docx_第1页
第1页 / 共19页
dds课程设计报告正文.docx_第2页
第2页 / 共19页
dds课程设计报告正文.docx_第3页
第3页 / 共19页
dds课程设计报告正文.docx_第4页
第4页 / 共19页
dds课程设计报告正文.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

dds课程设计报告正文.docx

《dds课程设计报告正文.docx》由会员分享,可在线阅读,更多相关《dds课程设计报告正文.docx(19页珍藏版)》请在冰豆网上搜索。

dds课程设计报告正文.docx

dds课程设计报告正文

摘要

本篇报告主要介绍了用EDA设计完成直接数字频率合成器DDS的过程。

该直接数字频率合成器输出的频率及相位均可控制,且能输出正弦、余弦、三角波、锯齿波、方波五种波形,经过转换之后还能在示波器上显示,在控制电路的作用下能实现保持、清零功能,另外还能同时显示输出频率、相位控制字、频率控制字。

本设计利用QuartusII5.0软件进行DDS的设计,最后下载到SmartSOPC实验系统中进行硬件测试。

Abstract

ThisreportintroducestheEDAdesigniscompletedwithDirectDigitalSynthesisDDSprocess.Thedirectdigitalfrequencysynthesisoftheoutputfrequencyandphasecancontrol,andcanoutputsine,cosine,trianglewave,sawtooth,squarewaveformfive,afterconversionafteralsodisplayedontheoscilloscope,intheroleofthecontrolcircuitcanbeImplementationmaintainedclearedfunction,andalsoshowstheoutputfrequency,phasecontrolcharacters,frequencycontrolword.ThisdesignusesDDSQuartusII5.0softwaredesign,thefinaldownloadSmartSOPCexperimentalsystemhardwaretesting.

关键词

EDA设计、直接数字频率合成器DDS、QuartusII5.0软件、SmartSOPC实验系统

Keywords

EDAdesign,DirectDigitalSynthesizerDDS,QuartusII5.0software,SmartSOPCexperimentsystem

 

摘要关键词

第1篇多直接数字频率合成器DDS设计要求说明

1.1设计基本要求¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第3页

1.2设计提高部分要求¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第3页

第2篇对整体电路工作原理的方案论证¨¨¨¨¨¨¨第4页

第3篇各子模块设计原理说明

3.1频率预置与调节电路¨¨¨¨¨¨¨¨¨¨¨¨¨¨第5页

3.2相位累加器模块¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第5页

3.3波形存储器模块¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第7页

3.4相位调节器¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第9页

3.5波形输出模块¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第9页

3.6频率测定模块¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第10页

3.7显示模块模块¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第12页

3.8开关功能说明¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第14页

第4篇调试、仿真、编程下载过程¨¨¨¨¨¨¨¨¨¨第14页

第5篇实验总结

5.1对本设计的一些改进方案¨¨¨¨¨¨¨¨¨¨¨第15页

5.2实验感想¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨第15页

参考文献

第1篇直接数字频率合成器DDS设计要求说明

1.1设计基本要求

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

2)DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA

芯片中的ROM实现,ROM结构配置成4096×10类型;

3)具体参数要求:

频率控制字K取4位;基准频率fc=1MHz,由

实验板上的系统时钟分频得到;

4)系统具有清零和使能的功能;

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

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

1.2设计提高部分要求

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

按键后有消颤电路);

2)能够同时输出正余弦两路正交信号;

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

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

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

第2篇对整体电路工作原理的方案论证

DDS即DirectDigitalSynthesizer数字频率合成器,是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术,是一种新型的数字频率合成技术。

具有相对带宽大、频率转换时间短、分辨力高、相位连续性好等优点,很容易实现频率、相位和幅度的数控调制,广泛应用于通讯领域。

2.1DDS基本结构图

 

频率预置与调节电路

 

图1.本设计DDS基本结构图

2.2工作原理说明

本设计DDS主要由频率预置电路、相位累加器、波形存储器、D/A转换器、低通滤波器组成。

可通过频率控制字kf和相位控制字kp输出频率和相位均可调的正弦波、余弦波、三角波、锯齿波、方波。

输出频率fo是对基准频率fc的分频,其关系如下:

fo=(kf/2N)fc

在本设计中,N取12位,基准频率fc取1MHz,kf从0000(0)到1111(15),所以输出频率从0到3840Hz。

第3篇各子模块原理说明

3.1频率预置与调节电路

本模块的主要功能是产生基准频率fc、频率控制字kf、相位控制字kp。

SmartSOPC实验箱提供的是48MHz的系统时钟,需要经过48分频得到基准频率fc,48分频用一个模48计数器即可实现。

具体电路如图2所示(参见原理图文件48counter74161.bdf)。

图2.模48计数器

如图所示,用两片二进制加法计数器74161实现模48计数器,在74161时钟输入端输入系统时钟48MHz,q5端输出的就是基准频频1MHz。

频率控制字kf设计的是从0000到1111的四位二进制数,但是为了与相位累加器相匹配,kf需要定义成12位的二进制数。

所以kf的高8为都要赋零,只需要控制低四位。

若直接用开关输入需要4个开关,而SmartSOPC实验箱提供的只有8个开关,为了节省开关,本设计利用一个模16计数器来产生频率控制字kf。

计数频率采用1Hz,1秒钟计一次数,通过开关来控制使kf达到需要频率控制字(参见原理图文件dds.bdf)。

同样,为了与加法器匹配,相位控制字也定义成了12位的二进制数,为了方便起见,kp也设计了从0000到1111十六个状态,但是若加在低四位,当kp也从0000到0001时,相位只变化了2π/212=π/2048,肉眼很难观测到,从0000到1111也之变化了π/2048×16=π/128,在示波器上很难看到。

所以本设计将4位相位控制字加在高四位,低八位赋零。

这样从0000到1111,相位变化了2π/212×27=π/16,在示波器上很容易看到的,从0000到1111相位变化了π。

3.2相位累加器模块

相位累加器的结构图如图3所示。

 

图3.相位累加器结构图

相位累加器在基准频率信号fc的控制下以频率控制字kf为步长进行累加运算,产生所需要的频率控制数据。

相位寄存器则在时钟的控制下把累加的结果作为波形存储器ROM的地址,实现对波形存储器ROM的寻址。

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

这个周期也就是DDS信号的一个频率周期。

本设计相位累加器采用文本输入法VHDL语言设计,具体如下(参见VHDL源文件SUM4096.vhd):

--SUM4096.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSUM4096IS

PORT(K:

INSTD_LOGIC_VECTOR(11DOWNTO0);

CLK:

INSTD_LOGIC;

EN:

INSTD_LOGIC;

RESET:

INSTD_LOGIC;

OUT1:

OUTSTD_LOGIC_VECTOR(11DOWNTO0));

ENDENTITYSUM4096;

ARCHITECTUREARTOFSUM4096IS

SIGNALTEMP:

STD_LOGIC_VECTOR(11DOWNTO0);

BEGIN

PROCESS(CLK,EN,RESET)IS

BEGIN

IFRESET='1'THEN//清零端为1时累加器清零

TEMP<="000000000000";

ELSE

IFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN//使能端EN为1时累加器正常工作

TEMP<=TEMP+K;//时钟CLK上升沿到来时以kf为步长递增

ENDIF;

ENDIF;

ENDIF;

OUT1<=TEMP;//将目前的累加结果保存并输出,下次上升沿时实现累加

ENDPROCESS;

ENDARCHITECTUREART;

以上程序不仅定义了累加器还添加了清零和使能功能。

相位寄存器是与相位累加器同步的寄存器,也是采用文本输入法VHDL语言设计,具体如下(参见VHDL源文件REG1.vhd):

--REG1.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYREG1IS

PORT(D:

INSTD_LOGIC_VECTOR(11DOWNTO0);

CLK:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC_VECTOR(11DOWNTO0));

ENDENTITYREG1;

ARCHITECTUREARTOFREG1IS

BEGIN

PROCESS(CLK)IS

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

Q<=D;//当时钟上升沿到来时输出相位累加器的结果

ENDIF;

ENDPROCESS;

ENDARCHITECTUREART;

相位寄存器的输出就是波形存储ROM的地址。

3.3波形存储器模块

用累加器的输出作为波形存储器的取样地址,进行波形的相位—幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。

以正弦波形存储器sine_rom为例,N(12)位的寻址ROM相当于把0—2π的正弦信号离散成具有2N个样值的序列,波形ROM有D(10)位数据位,所以设置2N个样值的sin值以D位二进制数值固化在ROM中,这里设置D=10,所以ROM中的数据范围应该从0到1023,但是正弦值只从-1到1,所以要对其进行量化,公式如下:

存储数据=round(sin(n×2π/4096))×512+512

其中,n为存储地址,范围是从0到4095。

按照地址的不同可以输出相应相位的正弦信号的幅值。

相位—幅度变换原理如图4所示。

 

图4.相位-幅度变换原理图

同理,余弦波ROM、锯齿波ROM、三角波ROM、方波ROM只需在ROM里存储相应波形的幅度量化序列即可。

1)正弦ROM的存储数据表参见dds.mif。

2)余弦ROM的存储数据表与正弦ROM类似(参见cos.mif):

存储数据=round(cos(n×2π/4096)×512)+512

3)

三角波ROM的数据表参见sanjiao.mif。

三角波的数据没有现成的生成三角波的数据,本设计根据图5做出相应的函数产生三角波的数据表。

 

图5.三角波

所以三角波函数如下:

当n∈(0,1023)时,存储数据=round(n/2)+512;

当n∈(1023,3071)时,存储数据=1024-round(n/2)+512;

当n∈(3071,4095)时,存储数据=round(n/2)-2048+512;

4)

锯齿波ROM的数据表参见juchibo.mif。

锯齿波的波形如图6所示。

 

图6.锯齿波

由图6可得出锯齿波的函数如下:

存储数据=round(n/4)

5)方波ROM的数据表参见fangbo.mif。

方波的波形如图7所示。

 

图7.方波

由图7可得出方波的函数如下:

 

最后,生成5个存有不同波形的存储器,分别是sine_rom、cos_rom、fangbo_rom、juchibo_rom、sanjiao_rom。

分别如图8所示。

图8.5个波形存储器

所有.mif文件的数据都来源于电子表格ROM地址数据。

3.4相位调节模块

相位控制模块是在ROM地址信号输入波形存储器ROM之前,将相位控制字叠加上去,使相位都增加相应的值。

这个功能用一个加法器就能实现。

该加法器采用文本输入法VHDL语言设计,具体如下(参见VHDL源文件xiangweijiafa.vhd):

--xiangweijiafa.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYxiangweijiafaIS

PORT(K1:

INSTD_LOGIC_VECTOR(11DOWNTO0);

K2:

INSTD_LOGIC_VECTOR(11DOWNTO0);

OUT2:

OUTSTD_LOGIC_VECTOR(11DOWNTO0));

ENDENTITYxiangweijiafa;

ARCHITECTUREARTOFxiangweijiafaIS

BEGIN

OUT2<=K1+K2;

ENDARCHITECTUREART;

加法器输出的信号再输入ROM的地址输入端,输出的波形在示波器上会发生平移,即相位输出发生了变化。

3.5波形输出模块

由波形存储器ROM输出的是量化的数字信号,这种信号在示波器上显示出来是离散的,所以还要经过D/A转换器,在经过低通滤波器输出才能在示波器上显示出连续的波形。

事实上经过D/A转换后不需要低通滤波器就已经可以满足我们的要求了。

DDS基本工作流程图如图9所示。

 

图9.DDS基本工作流程图

本次实验箱提供了两片D/A转换芯片,本设计中,第一片D/A转换芯片始终输出正弦波,余弦波、三角波、锯齿波、方波通过控制电路在第二篇D/A转换芯片选择输出。

选择电路的原路很简单,四种波形由四路数据,每路数据都有10位,所以用两个开关作为地址端来控制5片双四选一数据选择器74153就可实现波形的四选一。

具体电路如图10所示(参见原理图文件4xuan1.bdf):

图10.四种波形的选择输出

图10中,c[9..0]是余弦信号,f[9..0]是方波信号,s[9..0]是三角波信号,j[9..0]是锯齿波信号。

a1a0是地址端,对应的波形输出如表1所示。

表1输出波形选择

a1a0

输出信号y[9..0]

对应波形

00

c[9..0]

余弦波

01

f[9..0]

方波

10

s[9..0]

三角波

11

j[9..0]

锯齿波

 

3.6频率测定模块

本设计的测频电路是通过测定相位累加器输出的ROM地址信号在1秒钟内溢出的次数来测定输出频率的。

原理图如图11所示。

 

电路波形示意图如图12所示。

 

图12.测频电路波形示意图

单位时钟进过二分频之后得到周期为2秒的时钟信号,利用这个时钟信号,使计数器在1秒钟的时间内对待测信号进行计数,在下一秒的时间内对计数结果进行锁存并输出。

这里利用了反相器的演示效应,否则锁存器的输出永远都会是0000,而且在编译成功后进行仿真时会发现,功能仿真是输不出结果的,这就是因为软件进行的功能仿真是理想仿真,忽略了门电路的实际延时效应,所以即使计数器输出正确,锁存器的也还是没有结果输出的,只有将总电路下载到试验箱才能检测测频器是否正确。

测频器的电路图如图13所示(参见原理图文件cepinyi.bdf)。

图13.测频器电路图

图中,signal就是待测信号,接入的是相位累加器输出的最高位out1(11)。

jishuqi4096是用4片十进制加法计数器组成的同步计数器,最大可计到十进制的9999,输出个十百千四路4位的8421BCD码,对于本设计来说输出频率最大是3840Hz,而设计计数器是模10000的,所以完全够用了。

寄存器是由4片74173组成的。

仿真波形如图14所示(参见波形文件cepinyi.bdf)。

图14.测频器仿真波形图

其中,g、s、b、q是寄存器的输出,gg、ss、bb、qq是计数器的输出,可见计数器的输出是没问题的,但是寄存器始终没有输出,这就是上面说到的功能仿真的缺陷。

3.7显示模块

该模块实现了频率控制字kf、相位控制字kp、输出频率fo的显示。

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

输出频率本身就是8421BCD码,不需要转换。

频率控制字和相位控制字都是只有从0000到1111十六个状态,也就是从十进制的0到15,各需要2各数码管,加上频率的四位数正好需要8各数码管。

首先看频率控制字和相位控制字的转换电路。

频率控制字和相位控制字的数据类型相同,所以可以用同样的转换电路。

以下以频率控制字的转换为例。

本设计是依据下表来进行码制转换的。

表2.二进制与8421BCD码

频率控制字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

从上表可以一看出,当kf从0000到1001时,也就是从0到9是1位数时,转换后的8421BCD只有个位计数,十位保持0000,并且此时个位kfg[3..0]=kf;

当kf从1010到1111,也就是从10到15上升为两位数时,转换后的8421BCD码十位一直保持是0001,个位是从0000到0101,也就是从0到5,所以此时个位kfg[3..0]=kf-1010,也就是当kf上升为两位数以后减去10就是转换后的个位。

所以设计电路如图15(参见原理图文件kf-to-8421.bdf)。

图15.频率控制字码制转换电路

如图15所示,图中k[3..0]是频率控制字,首先通过一片4线16线译码器74154判断kf是一位数还是两位数。

当kf是一位数时,译码器只有q0—q9中的一个为0其余均为1;当kf是两位数时,译码器只有q10—q15中的一个为0其余均为1。

所以,将q[9..0]全部与非得到信号c,将q[15..10]全部与非得到信号d,c和d不可能同时为1或者同时为0,当c=1时,可以判断kf是一位数,当d=1时,可以判断kf是两位数。

根据表2,当kf是一位数即c=1时,kfg=kf,kfs=0;当kf是两位数即d=1时,kfg=kf-10,kfs=1。

对于转换后的十位,只需要输出最后一位即可,因为kfs只有0000和0001两个状态,所以前三位全部置零,最后一位直接用d信号表示即可。

对于个位,当kf是两位数时,kfg=kf-10,减10即减1010,也即加上0101再加1,所以kfg=kf-1010=kf+0110,本设计采用一片4位加法器7483实现,如图15中的jia模块,具体电路图参见原理图文件jia.bdf。

加法器输出s[3..0]信号。

所以现在再通过一个二选一电路就可以得到kfg[3..0]。

原理如下:

kfg[3..0]=c&kf[3..0]+d&s[3..0]

本设计采用简单的门电路实现2选1的功能,如图15中的to8421模块,具体电路参见原理图文件to8421.bdf。

用4个to8421模块就可以实现kfg[3..0]信号的选择输出。

这样频率控制字就从四位二进制数转换成为8421BCD码,可以在数码管上显示,相位控制字的转换原理同上。

下面就可以将这八路数据通过数码管显示了。

本设计的显示电路同样是动态显示,具体电路图参见原理图文件xianshi.bdf。

本设计现将八路数据都进行显示译码电路,在通过数据选择器轮流选择七段码,数据选择器的地址端由一个模8计数器的输出x2x1x0控制,同时x2x1x0经过一个三线八线译码器产生8个数码管的片选信号,数据选择器十一1KHz的时钟信号计数的。

3.8开关功能说明

开关

功能

key1(en端)

使能开关:

k1=1正常工作,k1=0保持

key2(reset端)

清零开关:

k2=1清零,k2=0正常工作

key3(kf端)

频率控制字计数开关:

k3=1频率控制字以1Hz的频率递增,k3=0保持当前的频率控制字

key4(kp端)

相位控制字计数开关:

k3=1相位控制字以1Hz的频率递增,k3=0保持当前的相位控制字

key5(a0端)

选择输出波形

key6(a1端)

第4篇调试、仿真、编程下载过程

实验过程中没做完一个模块添加一项功能之后都要进行编译仿真,在确定各子模块的功能都正确之后组合整体电路(参见原理图文件dds.bdf),并对其进行综合编译,编译成功之后就可以准备下载到SmartSOPC实验箱了。

在下载之前要注意将未使用的管脚设置为三态输入。

之后就可以给各输入端输出端分配管脚,其中输入端48MHz分配到实验箱的系统时钟48MHz的脉冲,输入端en、reset、kf、kp、a0、a1分别分配到实验箱的手动开关KEY1到KEY6,输出端abcdefg分配到显示管七段码,输出端s[7..0]分配到数码管的片选端DIG7到DIG0。

之后下载到SmartSOPC实验箱后对各项功能进行验证和调试。

 

第5篇实验总结

5.1对本设计的一些改进方案

1.本设计的译码显示部分先将8路32位数据进行显示译码后再用数据选择器选择输出,这样32位数据进过显示译码变成8路56位,还需要7个8选1数据选择器。

总共用了15个芯片。

但事实上可以不用这么多芯片,先用4片

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

当前位置:首页 > 高中教育 > 其它课程

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

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