基于可编程逻辑器件的DDS设计毕业设计论文任务书

上传人:1777****777 文档编号:37250542 上传时间:2021-11-02 格式:DOC 页数:61 大小:1.77MB
收藏 版权申诉 举报 下载
基于可编程逻辑器件的DDS设计毕业设计论文任务书_第1页
第1页 / 共61页
基于可编程逻辑器件的DDS设计毕业设计论文任务书_第2页
第2页 / 共61页
基于可编程逻辑器件的DDS设计毕业设计论文任务书_第3页
第3页 / 共61页
资源描述:

《基于可编程逻辑器件的DDS设计毕业设计论文任务书》由会员分享,可在线阅读,更多相关《基于可编程逻辑器件的DDS设计毕业设计论文任务书(61页珍藏版)》请在装配图网上搜索。

1、1毕业设计(论文)任务书毕业设计(论文)任务书一、设计题目:1、题目名称 基于可编程逻辑器件的 DDS 设计2、题目来源 二、目的和意义正弦频率源是现代通讯电子系统,测试仪器仪表,电子抗干扰系统实现高性能指标的关键技术之一,很多电子设备的功能实现都直接依赖于所用频率源的性能,利用频率合成技术实现频率合成源的发展大致经历了三个阶段1:直接频率合成,锁相式频率合成,直接数字频率合成。直接数字频率合成(DDS- Digital Direct Frequency Synthesis)是一种新的频率合成方法, DDS 由于具有极高的频率分辨率,极快的频率切换速度,频率切换时相位连续,易于功能扩展和全数字

2、化便于集成等优点,因此被广泛用于雷达,通信,电子对抗和仪器仪表等领域。本设计的目的是利用 EDA 技术和 CPLD 芯片对采用 DDS 技术的正弦信号发生器的实现方法进行研究,掌握 DDS 的原理和特点,了解集成 DDS 芯片的应用,同时掌握采用EDA 技术中自顶向下的电子系统设计方法,对设计电路进行逻辑和时序仿真,完成整机印制电路板的设计和电源设计。通过设计使学生掌握查阅相关资料、综合所得资料来拓宽知识面;掌握解决工程实际问题的基本方法和步骤;培养学生独立思考和独立工作的能力;熟练掌握使用计算机进行电子系统设计的方法和步骤。三、设计要求本设计有两个方向的设计要求可选:利用可编程逻辑器件和 E

3、EPROM、DAC 实现DDS 的基本功能,其中采用 EEPROM 芯片 28C64 储存波形数据,使用 CPLD 实现的控制器和 DAC 芯片 DAC0832 完成波形周期、幅度、相位的控制,应保证输出幅度不小于5V(有效值) ;利用可编程逻辑器件设计 DDS 芯片 AD9834 的控制器,来实现直接数字频率合成。电路可以实现的波形有:正弦波,方波,三角波,正向锯齿波,反向锯齿波、脉冲波及各种调制波形。四、设计说明书应符合毕业论文撰写规范,包括的内容1. 摘要、目录、前言、正文、参考文献、附录等。2. 本次设计基本情况概述,各单元电路和整机的工作原理说明。23. 设计内容的硬件原理图、程序清

4、单、元件清单。4. 逻辑仿真和时序仿真结果。5. 工艺文件(印制电路板图、元器件工艺参数、机箱参数、配套开关电源) 。6. 结论五、设计应完成的图纸1. 系统原理框图2. 各仿真结果图3. 详细电路原理图和印制电路板图六、主要参考资料1. DDS 芯片原版资料2. 全国大学生电子设计竞赛获奖作品选编 北京理工大学出版社3. CPLD 系统设计技术入门与应用 黄正谨 电子工业出版社4. 公开发表的有关 DDS 技术及其实现方法的论文。七、进度要求1、实习阶段 第 8 周( 4 月 19 日)至第 10 周( 5 月 8 日)共 3 周2、设计阶段 第 1 周( 3 月 1 日)至第 7 周( 4

5、 月 17 日)共 7 周 第 11 周( 5 月 8 日)至第 18 周( 7 月 7 日)共 8 周3、答辩日期 第 18 周( 2010 年 7 月 3 日) 八、其它要求3基于可逻辑编程器件的基于可逻辑编程器件的 DDSDDS 设计设计摘摘 要要直接数字频率合成(DDS)技术采用全数字的合成方法,产生的信号具有频率高、频率切换速度快。频率切换时相位连续,输出相位噪声低和可以产生任意波形等诸多优点。本文在对现有 DDS 技术的大量文献调研的基础上,提示了符合 FPGA 结构的 DDS 设计方案并利用 MAX PLUSII 软件在 EMPROM 系列芯片上进行了实现,详细的介绍了本次设计的

6、具体实现过程和方法,将现场可逻辑编程器件 FPGA 和 DDS 技术相结合,具体的体现了基于VHDL 语言的灵活设计和修改方式是对传统频率合成实现方法的一次重要改进。FPGA 器件作为系统控制的核心,其灵活的现场可更改性,可再配置能力,对系统的各种改进非常方便,在不更改硬件电路的基础上还可以进一步提高系统的性能。文章给出了仿真结果,经过验证本设计能够达到其预期性能指标。关键词:关键词:直接数字频率合成器(DDS) 、硬件描述语言(VHDL) 、现场可编程门阵列(FPGA)4Based on Programmable logic devices DDS designAbstractAbstrac

7、tThe DDS(Direct Digital Frequency Synthesis ) technique abopts full-digital synthesis methods. The generated signals have advantages of high frequency resolutions, fast frequency switching,continuous phase while frequency switching,low noise phase and being able to generate arbitrary waveforms.In th

8、is work, after reviewing a lot of literatures published on DDS technology,DDS scheme based on FPGA structure are proposed,and then implemented in A EMPROM series FPGA using MAXPLUS tool the paper introduced the concrete. Implementation process, this way associates DDS with field programmable gate ar

9、rav(FPGA) technology, the way based on VHDL is flexible in designing and modifying, which is a important innovation to the tradion synthesize way, FPGA.Device control core as system, its flexible scene can altering, can dispose ability again, very convenient to various kinds of improvement of the sy

10、stem ,can also improve systematic performance further on the basis of altering hardware circuit .at the end of paper, the author displays simulations result,after verification, the design meets the demand of original definition.Key words: DDS、FPGA、VHDL5目录前言前言 .9 9第第 1 1 章章 绪论绪论 .9 91.1 频率合成的发展历程.91.

11、2 DDS 的优点与缺点.91.3 发展前景.10第第 2 2 章章 现场可编程门阵列(现场可编程门阵列(FPGAFPGA) .10102.1 EDA 技术的介绍 .102.1.1 EDA 的简介.102.2 FPGA 的介绍 .102.2.1 FPGA 的概述.102.2.2 FPGA 的基本结构.102.2.3 FPGA 开发流程.112.3 MAX+PLUS II 应用简介 .112.3.1 概述 .112.3.2 Max+plus功能简介 .11第第 3 3 章章 总体设计总体设计 .11113.1 DDS 的基本原理 .113.2 实现 DDS 的方案 .123.2.1 采用高性能

12、DDS 单片电路的解决方案 .1263.2.2 采用低频正弦波 DDS 单片电路的解决方案 .123.2.3 自行设计的基于 FPGA 芯片的解决方案 .12第第 4 4 章章 用用 VHDLVHDL 实现实现 DDSDDS.13134.1 VHDL 语言简介 .134.2 频率控制 .134.2.1 频率控制原理 .134.2.2 频率采集原理 .144.3 数码显示数据处理 .184.3.1 数码位选信号 .184.3.2 译码 .194.4 正弦波信号 .214.4.1 相位累加器 .214.4.2 查表 .224.5 DDS 设计的总体 .24第第 5 5 章章 硬件实现与外围电路硬件

13、实现与外围电路 .265.1 数模转换 .265.1.1 DAC0832 引脚及其功能.265.1.2 DAC0832 的工作方式.265.1.3 DAC 与 FPGA 的连接.275.2 滤波电路 .285.2.1 滤波电路原理图 .2875.2.2 滤波器与 DAC 的连接 .295.3 按键电路 .295.4 显示电路 .305.4.1 数码管的工作原理 .305.4.2 数码管与 FPGA 的连接 .315.4.3 位选信号的译码(3-8 译码器).31结束语结束语 .32参考文献参考文献 .33附录附录 A A VHDLVHDL 程序汇总程序汇总 .35附录附录 B B 系统总电路图

14、系统总电路图.39附录附录 C C 元器件清单元器件清单.40附录附录 D D 英文原稿及翻译英文原稿及翻译.418前言前言直接数字频率合成技术(Direct Digital Frequency Synthesis),即 DDFS, 一般简称(DDS)是从相位直接合成所需波形的一种新的频率合成技术。近年来,DDS 技术和器件水平的不断发展,使得 DDS 合成技术也得到了飞速的发展.目前,该技术在相对带宽、频率转换时间、相位连续性、正交输出、高分辨力以及集成化等一系列性能指标已经超过了传统的频率合成技术所能达到的水平,从而完成了频率合成技术的又一次飞跃,同时也已成为目前应用最广泛的频率合成技术。

15、第第 1 1 章章 绪论绪论1.11.1 频率合成的发展历程频率合成的发展历程频率合成器是电子系统的心脏,是决定电子系统性能的关键设备。随着现代无线电通信事业的发展,移动通讯雷达武器和电子对抗等系统对频率合成器提出越来越高的要求。低相噪、高纯频谱和高速捷变的频率合成器一直是频率合成技术发展的主要目标。从频率合成技术的发展过程看频率合成的方法主要有三种:1)直接频率合成, 它是最早由 Finden 首先提出的的合成方法。它是使基准信号通过脉冲形成电路来产生丰富谐波脉冲,随后通过混频、分频、倍频和带通滤波器完成频率的变换和组合,以产生我们需要的大量离散频率从而实现频率合成。2)锁相频率合成,是应用

16、模拟或数字锁相环路的间接频率合成。它被称为第二代频率合成技术。早期的合成器使用模拟锁相环,后来又出现了全数字锁相环和数模混合的锁相环。数字鉴相器、分频器加模拟环路滤波压控振荡器的混合锁相环是目前最为普遍的 PLL组成方式。与直接频率合成不同的是,锁相频率合成的系统分析重点放在 PLL 的跟踪、噪声、捕捉性能和稳定性的研究上,不放在组合频率的抑制上。3)直接数字频率合成(DDS) 。随着数字技术的发展,人们重新想到了直接合成法,出现了直接数字频率合成器 DDS,导致了第二次频率合成技术的飞跃,它是用数字计算机和数模变换器来产生信号该技术出现于七十年代,从而揭开了频率合成技术发展的新篇章,标志着频

17、率合成技术迈进了第三代。1.21.2 DDSDDS 的优点与缺点的优点与缺点DDS 是一种全数字化的频率合成方法。DDS 频率合成器主要由频率寄存器、相位累加器、波形 ROM、D/A 转换器和低通滤波器组成。在系统时钟一定的情况下,输出频率决定于频率寄存器的中的频率字。而相位累加器的字长决定了分辨率。基于这样的结构 DDS 频率合成器具有以下优点:1)频率分辨率高,输出频点多,可达个频点(假设 DDS 相位累加器的字长是 N) ;2)频率切换速度快,可达 us 量级;3)频率切换时相位连续;4)可以输出宽带正交信号;5)输出相位噪声低,对参考频率源的相位噪声有改善作用;6)可以产生任意波形;7

18、)全数字化实现,便于集成,体积小,重量轻。虽然 DDS 有很多优点但也有其固有的缺点:1)杂散抑制差这是 DDS 的一个主要特点。由于 DDS 一般采用了相位截断技术,它的直接后果是给 DDS 的输出信号引入了杂散。92)工作频带受限。根据 DDS 的结构和工作原理,DDS 的工作频率与器件速度和基准频率有直接的关系,但随着目前微电子技术水平的不断提高,DDS 工作频率也有很大提高。3)相位噪声与其它频率合成器相比,DDS 的全数字结构使得相位噪声不能获得很高的指标,DDS 的相位噪声主要由于参考时钟信号的性质参考时钟的频率与输出频率之间的关系,以及器件本身的噪声基底决定。1.31.3 发展前

19、景发展前景近几年超数字电路的发展以及对 DDS 的深入研究,DDS 的最高工作频率以及噪声性能已接近并达到锁相频率合成器相当的水平。随着这种频率合成技术的发展,现已广泛应于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表等领域。直接数字频率合成器的优点是在微处理器的控制下能够准确而快捷地调节输出信号的频率、相位和幅度。此外,DDS 具有频率和相位分辨率高、频率切换速度快、易于智能控制等突出特点。近几年来 AD 和 Qualcomm 等几家公司根据这些改进技术推出了一系列性能优良的 DDS专用集成电路。其工作频率可达 IGHZI 频率分辨率可到 MHZ,排除 DAC 的限制,杂散指标已达

20、到-70dbc 以下。其应用领域也不在限于频率合成,已有专门用于产生 LFM 信号的。第第 2 2 章章 现场可编程门阵列(现场可编程门阵列(FPGAFPGA)2.12.1 EDAEDA 技术的介绍技术的介绍2.1.12.1.1 EDAEDA 的简介的简介EDA 技术是在电子 CAD 技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用 EDA 工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出 IC 版图或 PC

21、B版图的整个过程的计算机上自动处理完成。 本文所指的 EDA 技术,主要针对电子电路设计、PCB 设计和 IC 设计。 EDA 设计可分为系统级、电路级和物理实现级.2.22.2 FPGAFPGA 的介绍的介绍2.2.12.2.1 FPGAFPGA 的概述的概述FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。2.2.22.2.2 FPGAF

22、PGA 的基本结构的基本结构FPGA 由 6 部分组成,分别为可编程 I/O 单元、基本可编程逻辑单元、嵌入式块 RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。每个单元如下:1)可编程输入/输出单元(I/O 单元)2)基本可编程逻辑单元 3)嵌入式块 RAM4)富的布线10资源 5)底层嵌入功能单元 6)内嵌专用硬核2.2.32.2.3 FPGAFPGA 开发流程开发流程FPGA 的设计流程就是利用 EDA 开发软件和编程工具对 FPGA 芯片进行开发的过程。FPGA 的开发流程一般如图所示,包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片

23、编程与调试等主要步骤。FPGA 开发的一般流程1)电路设计 2)设计输入 3)功能仿真 4)综合优化 5)综合后仿真 6)实现与布局布线7)实现与布局布线 8)板级仿真与验证 9)芯片编程与调试2.32.3 MAX+PlusMAX+Plus IIII 应用简介应用简介2.3.12.3.1 概述概述Max+plus是 Altera 公司提供的 FPGA/CPLD 开发集成环境,Altera 是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的 EDA软件。在 Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了

24、一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。Max+plus开发系统的特点 :1)开放的界面 2)与结构无关 3)完全集成化 4) 丰富的设计库 5) 模块化工具 6) 硬件描述语言(HDL)7) Opencore 特征2.3.22.3.2 Max+plusMax+plus功能简介功能简介1)原理图输入(Graphic Editor)2)硬件描述语言输入(Text Editor)3)波形编辑器(aveform Editor)4)管脚(底层)编辑窗口(Floorplan Editor)5)自动错误定位 6)逻辑综合与适配 7) 设计规则检查 8) 多器件划分(Pa

25、rtitioner)9) 编程文件的产生 10) 仿真 11) 分析时间(Analyze Timing)12) 器件编程。第第 3 3 章章 总体设计总体设计3.13.1 DDSDDS 的基本原理的基本原理11DDS 的基本原理是利用采样定理,通过查表法产生波形。DDS 的结构有很多种,其基本的电路原理可用来表示。相位累加器由 N 位加法器与 N 位累加寄存器级联构成。每来一个时钟脉冲 f,加法器将频率控制字 k 与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉

26、冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是 DDS 输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到 D/A 转换器,D/A 转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。DDS 在相对带

27、宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。3.23.2 实现实现 DDSDDS 的方案的方案3.2.13.2.1 采用高性能采用高性能 DDSDDS 单片电路的解决方案单片电路的解决方案随着微电子技术的飞速发展,目前市场上性能优良的 DDS 产品不断推出,主要有Qualcomm、AD、 Sciteg 和 Stanford 等公司单片电路(monolithic)。Qualcomm 公司推出了DDS 系列 Q2220、Q2230,其中 Q2368 的时钟频率为 130MHz,分辨率为 0

28、.03Hz,杂散控制为-76dBc,变频时间为 0.1s;美国 AD 公司也相继推出了他们的 DDS 系列:AD9850、AD9851、可以实现线性调频的 AD9852、两路正交输出的 AD9854,AD 公司的DDS 系列产品以其较高的性能价格比,目前取得了极为广泛的应用。3.2.23.2.2 采用低频正弦波采用低频正弦波 DDSDDS 单片电路的解决方案单片电路的解决方案Micro Linear 公司的电源管理事业部推出低频正弦波 DDS 单片电路 ML2035 以其价格低廉、使用简单得到广泛应用。ML2035 特性:1)输出频率为直流到 25kHz,在时钟输入为12.352MHz 时频率

29、分辨率可达到 1.5Hz(-0.75+0.75Hz),输出正弦波信号的峰-峰值为Vcc;2)高度集成化,无需或仅需极少的外接元件支持,自带 312MHz 晶体振荡电路;3)兼容的 3 线 SPI 串行输入口,带双缓冲,能方便地配合单片机使用;(4)增益误差和总谐波失真很低。3.2.33.2.3 自行设计的基于自行设计的基于 FPGAFPGA 芯片的解决方案芯片的解决方案DDS 技术的实现依赖于高速、高性能的数字器件。可编程逻辑器件以其速度高、规模大、可编程,以及有强大 EDA 软件支持等特性,十分适合实现 DDS 技术。Altera 是著名的 PLD 生产厂商,多年来一直占据着行业领先的地位。

30、Altera 的 PLD 具有高性能、高集成12度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的 IP 核、宏功能库等,因此 Altera 的产品获得了广泛的应用。Max+plusII 是 Altera 提供的一个完整的 EDA 开发软件,可完成从设计输入、编译、逻辑综合、器件适配、设计仿真、定时分析、器件编程的所有过程。QuartusII 是 Altera 近几年来推出的新一代可编程逻辑器件设计环境,其功能更为强大。第第 4 4 章章 用用 VHDLVHDL 实现实现 DDSDDS4.14.1 VHDLVHDL 语言简介语言简介VHDL 主要用于描述数字系统的结构、行为、功能和接

31、口,非常适用于可编程逻辑芯片的应用设计。与其它的 HDL 相比,VHDL 具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的 EDA 工具和 VHDL 综合器而言,将基于抽象的行为描述风格的 VHDL 程序综合成为具体的 FPGA 和 CPLD 等目标器件的网表文件己不成问题。4.24.2 频率控制频率控制频率控制用于对基准频率的改变,以控制 DDS 发生信号的频率。为了更直观的看到当前频率,本文采用直接采集频率输出到数码管显示。4.2.14.2.1 频率控制原理频率控制原

32、理当基准频率输入时,分频器实现了频率的变化,以下程序实现了基准频率的 1-16 分频。频率的变化由外围的四个按键开关控制,当按键值为 0000-1111(按键按下为 1),可实现基准频率的 1-16 分频。具体实现程序如下 :LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi isPORT (iclk : INSTD_LOGIC; key:IN STD_LOGIC_VECTOR(3 DOWNTO 0); oclk : OUT STD_LOGIC);END fenpin

33、qi;ARCHITECTURE one OF fenpinqi ISsignal clk_i :std_logic;SIGNAL count :STD_LOGIC_VECTOR(3 DOWNTO 0) ;BEGINPROCESS (iclk) BEGIN IF iclkEVENT AND iclk=1 THEN IF count =key THEN count =0000; clk_i= not clk_i; ELSE count = count +1; END IF; END IF;END PROCESS; oclk= clk_i;END one;13生成的模块如图 4-1:图 4-1注:I

34、CLK;输入基准频率,OCLK:输出频率,KEY:按键控制分频,为四位二进制数。仿真的时序图如图 4.2:图 4-2说明:当按键显示为 0001 时,输出频率是基准频率的二分之一,实现二分频。当为 0010时,频率为基准的三分之一,实现三分频。以此按键就能实现分频了,直至十六分频为止。4.2.24.2.2 频率采集原理频率采集原理为了采集即时频率,本文专门产生一个秒信号,用来计录脉冲个数。脉冲计数用八位十进制计数器,计数器在 START 置一时,秒信号的计数脉冲数清零同时计数器清零,当STARE 置零时秒信号与计数器同时开始工作。当一秒时间到时(STOP 为 1 )计数器把数据送出去以供显示。

35、具体实现程序如下,频率采集程序:14library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity selec is port(num1,num2,num3,num4,num5,num6,num7,num8:out std_logic_vector(3 downto 0);stop:in std_logic;start: in std_logic;reset: in std_logic;clk:in std_logic);end selec;architecture dacc of selec is

36、signal q1,q2,q3,q4,q5,q6,q7,q8: std_logic_vector(3 downto 0);signal tem1,tem2,tem3,tem4,tem5,tem6,tem7,tem8: std_logic_vector(3 downto 0);beginprocess(clk,start,reset) begin if start=1or reset = 1 then q1=0000;q2=0000;q3=0000;q4=0000;q5=0000;q6=0000;q7=0000; elsif clkevent and clk=1 then if q1=1001

37、then q1=0000; if q2=1001 then q2=0000; if q3=1001 then q3=0000; if q4=1001 then q4=0000; if q5=1001 then q5=0000; if q6=1001 then q6=0000; if q7=1001 then q7=0000; if q8=1001 then q8=0000; else q8=q8+1; end if; else q7=q7+1; end if; else q6=q6+1; end if; else q5=q5+1; end if; else q4=q4+1; end if; e

38、lse q3=q3+1; end if; else q2=q2+1; end if; else q1=q1+1; end if; end if;end process;process(stop)beginif stop=1thentem1=q1;tem2=q2;tem3=q3;tem4=q4;tem5=q5;tem6=q6;tem7=q7;tem8=q8;end if;end process;num1=tem1;num2=tem2;num3=tem3;num4=tem4;num5=tem5;num6=tem6;num7=tem7;num8=tem8;end dacc;15程序说明:当 rese

39、t 或 start 为 1 时,计数器 q1-q8 清零,然后开始计数,当秒信号计数结束标志位 stop 为 1 时停止计数,此时把当前的计数值保存到寄存器中,以备显示用。秒信号产生程序:use ieee.std_lo library ieee;gic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity second is port(clk : in std_logic;start : in std_logic;reset :in std_logic;stop : out std_logic)

40、;end second;architecture dacc of second issignal q: integer range 0 to 100;signal tem: std_logic;beginprocess(clk,reset,start)beginif (reset=1)or(reset=0and start=1) thenq=0;elsif clkevent and clk=1then if q=100 thentem=1;elseq=q+1;tem=0;end if;end if;end process;stop=tem;end architecture;程序说明:reset

41、 为复位信号,start 为另一次秒信号的开始标志。当 reset 为 1 或者当start 为 1 时计数信号清零。开始秒信号的计数,当计数个数到达预定的 100 时使 stop(秒结束标志位)信号置 1。再重新开始计数。程序生成模块下图所示 4-3:生成的频率采集模块: 生成的秒信号模块: 图 4-3频率采集模块时序仿真图如图 4-4:16图 4-4 A说明:由图可知,当 stop 置 1 时,num1 至 num8 就会把脉冲个数送进寄存器,而当 stop为 0 时,内部计数,此时寄存器内保存的是上一个秒内的计数值。秒信号时序仿真图如图 4-5:图 4-4B分析:上图显示的是 reset

42、(复位信号)为 1 时,q(计数信号)清零,即重新开始计数。直到reset 或 start 为 1 停止计数。17图 4-4C说明:stop 信号为秒计数结束信号,置 1 时,表示计时到,当计数信号计数到预定个数(根据基准频率而定),此仿真图为了检测程序的正确,以 1100011 为例进行仿真,stop 信号值 1,此时应该使记当前频率时钟脉冲个数的计数器停止计数。并采集当前计数值。图 4-4D说明:当 start 信号为 1 时,开始下一秒的计数,并重新开始采集频率个数。4.34.3 数码显示数据处理数码显示数据处理数码显示的数据为采集的频率值。采集的是十进制数,所以需要把它们转换成段显信号

43、。由于设计中采用了闪烁点亮二极管的方式,所以还需要对位选进行处理。4.3.14.3.1 数码位选信号数码位选信号数码位选信号是用对当前工作数码管与当前显示数据进行选择,由于本文采用八位数码管,所以需要产生三位二进制数。具体实现程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity regist is port(num1,num2,num3,num4,num5,num6,num7,num8:in std_logic_vector(3 downto 0);start: out std_

44、logic;stop: in std_logic;numb:out std_logic_vector(3 downto 0); sec:in std_logic_vector(2 downto 0);end;architecture dacc of regist issignal temp: std_logic_vector(3 downto 0);signal tem: std_logic;beginprocess(sec,stop) 18beginif stop = 1thentemtemptemptemptemptemptemptemptempnull;end case;else tem

45、p=0000;tem=0;end if;end process;numb=temp;starttemtemtemtemtemtemtemtemtemtemnull; end case;end process;dp=tem;end architecture;生成模块如图 4-7 所示:图 4-7注:译码的作用是把四位二进制数译成与数码管相适应的段显码。时序仿真图如图 4-8:20图 4-8说明:当输入四进制 0111 时,输进数码管里为 00000111,段显就是 74.44.4 正弦波信号正弦波信号我们本次设计所产生的信号以正弦波信号为例,我们正弦波的产生根据信号相位的增加查表产生。4.4.1

46、4.4.1 相位累加器相位累加器相位累加器实现对待产生波形的信号相位累加,根据相位查表产生所需要的相位、幅度。相位累加程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity xiaweiadd is port(clk:in std_logic; q:out integer range 63 downto 0);end;architecture dacc of xiaweiadd issignal qq: integer range

47、 63 downto 0;beginprocess(clk)beginif (clkevent and clk=1) thenqq=qq+1; end if; end process;qdd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4dd4null; end case;

48、 end process;end architecture;程序说明 :本设计采样点为 64 个,根据不同的采样相位点,输出不同的幅度值。生成模块图说明:q 值随着脉冲的到来实现 0-63 之间的循环变化,dd4(所产生信号的幅度)根据 q 的变化而变化,产生所需要的波形。图 4-8仿真图 4-8 说明:如图所示,不同的相位输入,输出不同的幅度值。说明:q 值随着脉冲的到来实现 0-63 之间的循环变化,dd4(所产生信号的幅度)根据 q 的变化而变化,产生所需要的波形。4.54.5 DDSDDS 设计的总体设计的总体本设计有五个按键输入,其中四个用于分频器的控制信号输入,一个用于复位信号输入

49、。一个三位的二进制位选信号输出,一个七位的段显信号输出,一个七位的正选信号输出。具体电路如下:2324第第 5 5 章章 硬件实现与外围电路硬件实现与外围电路5.15.1 数模转换数模转换5.1.15.1.1 DAC0832DAC0832 引脚及其功能引脚及其功能图 5-1D0D7:数字信号输入端。ILE:输入寄存器允许,高电平有效。CS:片选信号,低电平有效。WR1:写信号 1,低电平有效。XFER:传送控制信号,低电平有效。WR2:写信号 2,低电平有效。IOUT1、IOUT2:DAC 电流输出端。Rfb:是集成在片内的外接运放的反馈电阻。Vref:基准电压(-1010V)。Vcc:是源电

50、压(+5+15V)。AGND:模拟地 NGND:数字地,可与AGND 接在一起使用。DAC0832 输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。 5.1.25.1.2 DAC0832DAC0832 的工作方式的工作方式DAC0832 是采用 CMOS 工艺制成的单片直流输出型 8 位数/模转换器。如图 5-2 它由倒 T 型 R-2R 电阻网络、模拟开关、运算放大器和参考电压 VREF 四大部分组成。运算放大器输出的模拟量 V0 为: 25图 5-2由上式可见,输出的模拟量 与输入的数字量( ) 成正比,这就实现了从数字量到模拟量的转换。一个 8 位 D/A

51、 转换器有 8 个输入端(其中每个输入端是 8 位二进制数的一位),有一个模拟输出端。输入可有 28=256 个不同的二进制组态,输出为 256 个电压之一,即输出电压不是整个电压范围内任意值,而只能是 256 个可能值。 5.1.35.1.3 DACDAC 与与 FPGAFPGA 的连接的连接1) DAC0832 接口电路原理图(如图 5-3),2)FPGA 与 DAC0832 接口电路设计(1)IO36、39、38、41、45、42、43 和 40 向 DAC0832 的数据输入口(DI0DI7)输送数据。(2)DAC0832 数据锁存允许控制信号 ILE,高电平有效。(3)CS(片选信号

52、)、WR1(写信号 1)、XFER(传送控制信号)和,WR2(写信号2),低电平有效。(4)Iout1、Iout2、Rfb 与运算放大器 LM324 完成电流/电压的转换(DAC0832 属电流输出型) 。26图 5-35.25.2 滤波电路滤波电路5.2.15.2.1 滤波电路原理图滤波电路原理图图中 R1=R2=10k,C=100PF,由公式:可算得低通滤波器的截止频率为 160KHZ。电路图如图 5-4 所示:图 5-45.2.25.2.2 滤波器与滤波器与 DACDAC 的连接的连接如图 5-5 所示,滤波电路与 DAC0832 模块的输出端连接,经 LM358 成为电压输出,再接上

53、LM339 放大信号,然后通过有源滤波器的滤波,最后就可以得到所需要的信号。图 5-55.35.3 按键电路按键电路27在设计中共有五个按钮按键,分别是 S1、S2、S3、S4 和 S5,S1-S4 用于频率的控制,按下为高电平,弹起为低电平。即 S1、S2、S3、keS4 的输入信号为 0000-1111,当输入为0000-1111 时,可实现 1-16 分频。如图 5-6 可知,S1 与 IO37 连接,S2 与 IO34 连接,S3与 IO35 连接,S4 与 IO32 连接。S5 用于复位信号的输入,按下为高电平,弹起为低电平。当按下时秒信号计数器与八位十进制计数器同时清零复位,以保证

54、两者的同步。有图 5-6 知,S5 与 IO33 连接。电路图如下:图 5-65.45.4 显示电路显示电路5.4.15.4.1 数码管的工作原理数码管的工作原理28图 5-7从图 5-7 中可以看出,7 段荧光数码管有公共的地,即 7 个发光二极管的负极全部连接在了一起,只要给想点亮的二极管高电平就可以使其发光。这样做的好处是可以免去布线、相互间的干扰等很多麻烦。这种连接方式的数码管叫做共阴极数码管。7 段数码管是由 7 个独立的二极管采用共阴的方法连接而成。通常将这 7 个独立的二极管做成 a、b、c、d、e、f、g 这 7 个笔划。5.4.25.4.2 数码管与数码管与 FPGAFPGA

55、 的连接的连接图 5-8如图 5-8 所示:FPGA 的段显信号经 74LS04 非门与数码管段显信号端连接,位选信号经3-8 译码器通过三极管的放大与数码管的位选信号连接。位选信号输入后,经 3-8 译码器译码给八位数码管只有一位是高电平,即只有一个数码管可以点亮。同时,段显信号又正好与位选信号同步。5.4.35.4.3 位选信号的译码(位选信号的译码(3-83-8 译码器)译码器)74LS138 管脚图: 74LS138 为 38 译码器,共有 54/74138 和 54/74LS138 两种线路结构型式,其工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B

56、))为低电平时,可将29地址端(A、B、C)的二进制编码在一个对应的输出端以低平电译出。三八译码器的逻辑功能图当位选信号输入时就可以对八位二极管进行选择,在 3-8 译码器后面加一个非门就可以与共阴极,高电平驱动的数码管配合使用了。与数码管的连接如图 5-7 所示。30结束语结束语经过了两个多月的学习和工作,我终于完成了基于可逻辑编程器件的 DDS 设计的论文。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对 DDS 一无所知,对 FPGA,MAX-PLUS等相关技术

57、很不了解的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段资料,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不

58、叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。31参考文献参考文献1 张厥盛,曹丽娜. 锁相与频率合成技术M. 成都:电子科技大学出版社,2000. 2 王金明. 数字系统设计与 VerilogHDLM. 北京:电子工业出版社,2002.3 杨小牛,搂才义,徐建良. 软件无线电原理与应用M.京:电子工业出版社,2001.4 潘松,黄继业,王国栋. 现代 DSP 技术M. 西安:西安电科技大学出版社,2003.5 美Uwe Meyer - Baese 著.刘凌,胡永生,译. 数字信号处理的 FPGA 实现M.北京:清华大学出版社,2003.6 余孟尝. 数字电子技术基础简明教程M.北

59、京:高等教育出版社,2005.7 黄正谨,徐坚等. CPLD 系统设计技术入门与应用M.西安:电子工业出版社,2001.8 潘松,王国栋. 实用教程M.西安:电子科技大学出版社,2001.9 Inagaki T,Okamoto Y, “Finding the unknown emis2 sivity value of an object”, NDT & E InternationalD,1996. 10 Xilinx,The Programmable Logic Data BookM.200032附录附录 A A VHDLVHDL 程序汇总程序汇总1 四位二进制显示数据转换为八位段显信号:li

60、brary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity chang is port(a: in std_logic_vector(0 to 3);-xianshishuzi dp:out std_logic_vector(7 downto 0);end;architecture dacc of chang issignal tem: std_logic_vector(7 downto 0);beginprocess(a)begin cas

61、e a iswhen 0000 =temtemtemtemtemtemtemtemtemtemnull; end case;end process;dp=key THEN count =0000; clk_i= not clk_i; ELSE count = count +1; END IF; END IF;END PROCESS; oclk= clk_i;END one;3 显示数据选择:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity regist is port(33num1,n

62、um2,num3,num4,num5,num6,num7,num8:in std_logic_vector(3 downto 0);start: out std_logic;stop: in std_logic;numb:out std_logic_vector(3 downto 0); sec:in std_logic_vector(2 downto 0);end;architecture dacc of regist issignal temp: std_logic_vector(3 downto 0);signal tem: std_logic;beginprocess(sec,stop

63、) beginif stop = 1thentemtemptemptemptemptemptemptemptempnull;end case;else temp=0000;tem=0;end if;end process;numb=temp;start=tem;end dacc;4 秒信号的产生:use ieee.std_lo library ieee;gic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity second is port(clk : in std_logic;start :

64、 in std_logic;reset :in std_logic;stop : out std_logic);end second;architecture dacc of second issignal q: integer range 0 to 100;signal tem: std_logic;beginprocess(clk,reset,start)beginif (reset=1)or(reset=0and start=1) thenq=0;elsif clkevent and clk=1then if q=100 thentem=1;elseq=q+1;tem=0;end if;

65、end if;end process;stop=tem;end architecture;5、频率的采集程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity selec is port(num1,num2,num3,num4,num5,num6,num7,num8:out std_logic_vector(3 downto 0);34stop:in std_logic;start: in std_logic;reset: in std_logic;clk:in std_logic);

66、end selec;architecture dacc of selec issignal q1,q2,q3,q4,q5,q6,q7,q8: std_logic_vector(3 downto 0);signal tem1,tem2,tem3,tem4,tem5,tem6,tem7,tem8: std_logic_vector(3 downto 0);beginprocess(clk,start,reset) begin if start=1or reset = 1 then q1=0000;q2=0000;q3=0000;q4=0000;q5=0000;q6=0000;q7=0000; elsif clkevent and clk=1 then if q1=1001 then q1=0000; if q2=1001 then q2=0000; if q3=1001 then q3=0000; if q4=1001 then q4=0000; if q5=1001 then q5=0000; if q6=1001 then q6=0000; if q7=1001 then q7=000

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!