南理工EDA2 DDS实现 基于quartusWord下载.docx

上传人:b****6 文档编号:17987074 上传时间:2022-12-12 格式:DOCX 页数:17 大小:501.19KB
下载 相关 举报
南理工EDA2 DDS实现 基于quartusWord下载.docx_第1页
第1页 / 共17页
南理工EDA2 DDS实现 基于quartusWord下载.docx_第2页
第2页 / 共17页
南理工EDA2 DDS实现 基于quartusWord下载.docx_第3页
第3页 / 共17页
南理工EDA2 DDS实现 基于quartusWord下载.docx_第4页
第4页 / 共17页
南理工EDA2 DDS实现 基于quartusWord下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

南理工EDA2 DDS实现 基于quartusWord下载.docx

《南理工EDA2 DDS实现 基于quartusWord下载.docx》由会员分享,可在线阅读,更多相关《南理工EDA2 DDS实现 基于quartusWord下载.docx(17页珍藏版)》请在冰豆网上搜索。

南理工EDA2 DDS实现 基于quartusWord下载.docx

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的频率和相位控制字,并能用示波器观察加以验证;

(2)设计提高部分要求

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

(注意:

按键后有消颤电路)

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

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

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

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

6、基于DDS的AM调制器的设计;

7、自己添加其他功能。

四、实验设计原理

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

工作原理是:

先将已经数字化的正弦波(或三角波、方波)信号的幅值数据存储在波形存储器ROM或RAM中,然后在标准时钟的作用下,通过控制电路按照一定的地址关系从ROM中读出来,送入D/A转换为模拟波形,再通过低通滤波器,将D/A输出波形上的阶梯和毛刺滤除,即可获得所需波形的模拟信号。

整体电路工作原理图如下图所示。

DDS工作流程示意图如下图所示。

(1)频率预置与调节电路

作用:

实现频率控制量的输入;

不变量K被称为相位增量,也叫频率控制字。

(2)累加器

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

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

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

由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位。

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

,若系统基准时钟频率为

,频率控制字K为1,则DDS输出最小频率为

=

/

DDS输出的最高频率由Nyquist采样定理决定,即

/2(K的最大值为2N-1);

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

=B×

(3)波形存储器

用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查表查出,完成相位到幅值的转换。

(4)D/A转换器

波形存储器的输出送到D/A转换器,由它将数字信号转换成模拟信号输出。

(5)低通滤波器

低通滤波器的主要作用是滤除生成的阶梯形正弦波中的高频成分,将其变成光滑的正弦波。

如上图所示。

核心结构图如下图所示

五、各子模块设计原理与实现

5.1分频电路

本实验所需要频率有1MHz(时钟基准频率)、1KHz(动态显示扫描频率)、1Hz(频率和相位控制字产生电路的时钟信号)和0.5Hz(测频电路测试时钟)。

由于实验箱所给频率为48MHz,于是对其进行48分频,48K分频,48M分频和96M分频分别得到1MHZ,1KHZ,1HZ和0.5HZ。

与上次EDA2实验相同,所以本人在具体电路的设计上大致使用原实验分频电路。

模8计数器电路(frequencydivide1)如下图所示

封装:

模1000计数器电路(frequencydivide2)如下图所示

模2计数器电路(frequencydivide3)如下图所示

分频总电路如下

分频电路总图

封装后

5.2频率预制与调节电路

根据实验基本要求及提高要求,本电路设计了两种调节控制字的方式。

第一种,用两片74160设计模100计数器,以实现通过实验箱上的按键扩大频率控制和相位控制的范围的目的。

用两片74184将8421BCD码转换为二进制计数。

具体电路图如下图所示

第二种,通过实验箱上的开关K1~K4实现小范围的频率预制与调节。

设计开关K5与4个与门、4个或门、1个非门以选择用两种调节方式中的一种预制频率。

频率预制与调节电路总图封装后如下图所示

至此实现了两种控制字调节模式,一种Km=16一种Km=100结构简单,通过拨动键盘调节K的大小,相比脉冲计数节约了显示板块。

5.3累加器

累加器由加法器和寄存器组成。

加法器由3片4位加法器7483级联实现,使得4位频率控制字和4位相位控制字和寄存器里的内容不断相加。

这里要注意的是频率控制字和寄存器的低四位相加,而相位控制字是和寄存器的高四位相加,因为如果相位控制字和低四位相加的话,改变相位控制字的时候就不能再示波器上看出相位的明显变化。

由于要求N=12,故选用3片寄存器74174组成12位寄存器。

电路图连接如下。

累加器

5.4波形产生

ROM的N=12位地址:

把0—4095的正弦角度离散成有

=4096个样值的序列。

ROM的D=10位数据位,则

=4096个样值的幅值量化为D=10位二进制数据。

生成ROM数据有两种方法,一是采取直接输入方式,二是采取语言编程得到所需数据。

由于本实验所需数据量较大,为了方便,我们采取利用Excel软件,生成*.xls应用程序,然后在DOS环境生成*.mif文件,ROM通过*.mif文件可以把mif文件中的数据读出来,再经过D/A转换器,低通滤波器,就可以在示波器显示平滑的波形。

正弦波*.mif文件如下图所示。

正弦波*.mif文件

正弦波波形ROM如下图

余弦波波形ROM如下图

5.5测频电路的设计

设计思路是,我们可以先根据公式f=fc·

K/2N,K最大是15,N=12,fc=1000000,可以算得f约为3662,是四位,故可用4片74160模10计数器来计数频率。

计数器的时钟端可以接累加器输出的最高位,因为累加器最高位的频率是正余弦波的频率,当最高位完成一次从高电平到低电平的转换时,就是一个周期,计数器用其作为时钟脉冲,计数得到的就是频率值。

用0.5HZ取反以后作为寄存器的时钟信号,寄存器只有在时钟信号的上升沿到来时对输入信号进行锁存。

原理图及电路图如下。

封装后:

5.6动态显示电路

动态显示电路采用动态扫描方式,使六个数码管轮流显示。

可以通过提高计数器的工作脉冲频率从而使数码管轮转的速度非常快(至少50HZ以上),由于人眼的视觉暂留效应,对人眼而言,六个数码管是同时显示的,由显示译码器译码后将数据送到相应的数码管上。

所以我们需要对应其动态显示特点来设计显示电路。

用到4片数据选择器74151,显示器7447,译码器74138,计数器74160。

设计思路是,先用74160设计一个模6计数器,设计模6是因为要显示的2位数的频率控制字2位数的相位控制字和四位数的波形频率,模8用于给驱动电路信号,作为选择信号给数据选择器74151,用于选择输出频率控制字相位控制字和波形的频率。

其时钟输入端接1KHz(其扫描频率不能低于100Hz)。

四个74151输出端将信号送至7447用来选择亮的数码管显示数字。

74138译码器选择七个数码管中哪个接受信号。

模6计数器如下图所示:

显示电路如下图所示

显示电路图

调相电路是在累加器后面在加上相位调节字,我选择高3位相位调节字,各自调节的幅度依次是0.5个周期,0.25个周期,0.125个周期;

最大精度是0.125个周期,最大范围是(1-0.125)个周期。

调相电路如下:

模块整合和总电路如下图所示

总电路图

六、调试,仿真与下载

调试与仿真:

实验采用QuartusⅡ软件进行调试与仿真,过程中应注意要在自己建立的project下进行否则无效。

编译时应注意要将所编译的电路置于顶部,否则编译的可能不是当前需要的电路,会因此产生误解。

下载:

在打开的QuartusII5.0窗口中,选择“Assignments-Pins”,在To栏中,输入各管脚名称,在Location下拉选择相应的管脚。

选择“Assignments-Setting”,在Device&

PinOptions中点击UnusedPins标签页,设置不用的管脚为三态。

全程编译。

点击工具栏上的

按钮,在HardwareSetup中点击AddHardware按钮,选定OK,将HardwareSetup改为ByteBlaster[LPT1]。

在Program/configure列下的复选框中打勾后,点击

按钮,将电路下载至EDA实验系统的PLD器件中。

下载结束后,实际操作,检查是否达到设计要求。

管脚分配图如下图所示

示波器上显示波形如下图。

七、实验中遇到的问题

(1)从实验开始到结束始终只掌握了直接用硬件设计的方法,VHDL语言的强大功能没有利用的上。

短时间内不能很好的掌握这种语言,于是放弃了尝试,也失去了一次学习新知识的机会。

(2)实现频率控制字扩展的方法显得比较笨拙,其实可以利用上次实验里面快速校分校时的那类电路。

用脉冲计数和计数保持来实现频率控制字K的扩展。

(3)没有实现一个ROM里面存放多种波形。

八、附加功能的理论设想

1、三角波的形成

可由3片二选一选择器74157实现。

选择触发信号sel接累加器输出的最高位,累加器的结果从0开始累加,即扫描从低地址开始,输出数字不断增大,当扫描地址上升到使最高位变为1时,接下来将累加器的输出端取反,输出数字开始不断减小。

这样,输出一正一反就得到三角波,且周期等于输出正弦波的周期。

电路如下图。

三角波形成电路

2、测相电路

相位测量采用乘法器来实现。

原理如下:

1)正弦波ROM存储器存储的是一个周期的正弦波,其地址被分为2N=4096份(N=12),即可以认为正弦波的相位由

变化。

把累加器的最高位作为标志位,最高位为0时,相位由

变化;

最高位为1时,相位由

2)相位控制字P加在了12位累加器结果的高8位,那么p每增加1,扫描存储器的地址增加16,相位变化

(度)。

3)设相位控制字的最高位为p[7],低7位为p[6..0]。

当p[7]为0时,相位

(度);

当p[7]为1时,把p[6..0]取反

,(用74157二选一数据选择器实现,用p[7]作为选择触发信号)相位

4)1.406的二进制表示为1.0111,利用乘法器时乘数只能为二进制整数,这里我们把1.0111移位为10111,然后把乘积结果的低四位舍去。

相位最大为

,则从低5位开始取到12位这8位二进制数足够表示测量结果,即为相位测量值的整数部分,然后将这低8位数转换为十进制输出到动态显示电路显示即可。

九、实验感想

DDS,是以前从来没有接触过的内容,这次做dds的实验让我对数字信号处理有了一些初步的认识。

同时也在实验的过程中体会到了学习新知识的乐趣。

实验过程中充满了未知,我主要靠自己的一步步探索,在发现解决问题的方法时总能体会到一种成就感。

但是时间是有限的有些时候不得不借助老师和同学的力量,当自己百思不得其解的问题得到老师或者同学的一点点拨的时候,也会有一种豁然开朗的感觉。

本人能力实在有限,短期内能够学会这么多内容,离不开老师的悉心教诲。

今后我一定牢记笨鸟先飞的教训,平时更加努力学习。

十、参考文献

《EDA设计实验指导书》南京理工大学电子技术中心

《数字逻辑电路与系统设计》蒋立平主编电子工业出版社

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

当前位置:首页 > 高中教育 > 理化生

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

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