本科毕业设计
题 目
基于CPLD的DDS信号发生器设计
作 者: 专 业: 电气工程及其自动化 指导教师: 完成日期:
原 创 性 声 明
本人声明:所呈交的论文是本人在导师指导下进行的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
签 名: 日 期:
本论文使用授权说明
本人完全了解南通大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容。
(保密的论文在解密后应遵守此规定)
学生签名: 指导教师签名: 日期:
南通大学毕业设计(论文)立题卡
课题名称 课题来源 基于CPLD与DDS技术的信号发生器的设计 科研 社会生产实际 √ 出题人 其它 传统的信号发生器采用模拟电路技术,由分立元件构成振荡电路和整形电路,产生各种波形。采用这种技术的波形发生器电路结构复杂、体积庞大、稳定度和准确度较差,而且仅能产生正弦波、方波、三角波等几种简单波形,难以产生较为复杂的波课题表述形信号。随着微处理器性能的提高,出现了由微处理器、D/A以及相关硬件、软件构(简述课成的信号发生器。 题的背景、本文研究的内容主要是结合虚拟仪器技术,进行任意信号发生器的研制,所用的目的、意控制方式是目前比较先进的DDS技术。 义、主要内课题条件:集成电路、Cpld-dev开发平台、Quartus II软件。 容、完成课题的条件等) 理论研究 课题类型 理论研究与工程应用 工程应用 √ 对应的 所有模块程序 成果形 式为 毕业论文 自学能力较强,基础较好;熟悉VHDL或Verilog HDL 语言; 该课题对学生的要求 具有一定软硬件电路分析与设计能力; 一名学生 教研室意见 教研室主任签名:______________ ________年________月________日 同意立题( ) 学院意见 不同意立题( ) 教学院长签名:______________ ________年________月________日 注:1、此表一式三份,学院、教研室、学生档案各一份。
南 通 大 学
毕业设计(论文)任务书
题目 基于CPLD的DDS信号发生器设计
学 生 姓 名 学 院 电气工程学院 专 业 电气工程及其自动化 班 级 电096 学 号
起 讫 日 期 2013.3-2013.6 指导教师 职称 讲师
发任务书日期 2013年 2月 19日
课题的内容和要求(研究内容、研究目标和解决的关键问题) 传统的信号发生器采用模拟电路技术,由分立元件构成振荡电路和整形电路,产生各种波形。采用这种技术的波形发生器电路结构复杂、体积庞大、稳定度和准确度较差,而且仅能产生正弦波、方波、三角波等几种简单波形,难以产生较为复杂的波形信号。随着微处理器性能的提高,出现了由微处理器、D/A以及相关硬件、软件构成的信号发生器。 本文研究的内容主要是结合虚拟仪器技术,进行任意信号发生器的研制,所用的控制方式是目前比较先进的DDS技术。 课题的研究方法和技术路线 研究方法为理论研究与实际调研相结合。 技术路线为: 1、 熟悉课题及要求,检索有关资料; 2、 分析消化资料,撰写课题综述及开题报告; 3、掌握DDS控制技术和信号发生器工作原理,对整体硬件电路进行设计并对软件进行编程和仿真; 4、对信号发生器系统进行整体调试; 5、完成论文 计算机一台 学生具有一定的编程基础及理论知识
参考文献 1] 王庆生,卢栋才.频率合成技术综述[J].通信对抗,2005(2):3-10. [2] 王建明.基于DDS技术的多波形信号源设计[D].南京:南京理工大学出版社,2005.15-18. [3]朱正伟.EDA技术及应用[M].北京:清华大学出版社,2005. [4]李洪伟,袁斯华.基于QuartuSH的FPGA/CPLD设计[M].北京:电子工业出版社, 2006年4月 [5]潘松,黄继业编著.EDA技术与VHDL[M].北京:清华大学出版社,2006.20-30. [6]王道宪,贺名臣,刘伟.VHDL设计技术[M].北京:国防工业出版社,2003.145-152. [7] 乔钟纬,韩冬.基于CPLD和DDS实现的信号源[J].山西电子技术,2008(4):36-38. [8]宋万杰,罗平,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大学出版 社,2000.-98. [9] 乔庐峰,王志功.PEDRONIV A. CircuitDesign withVHDL[M].北京:电子工业出版社, 2005.9-48. [10] 石熊.基于直接数字频率技术的研究与应用[D].武汉:华中科技大学,2007. 10-88. [11] 黄振华.基于FPGA函数信号发生器的设计与实现[D].江苏:江苏大学,2009. [12] 黄蕾.基于单片机的DDS技术的应用与研究[D].湖南:湖南大学,2005. [13]周梦然.CPLD/FPGA的开发与应用[M].徐州:中国矿业大学出版社,2007. [14]雷能芳.DDS的Verilog设计及QuartusⅡ与Matlab联合仿真[J].现代电子,2009(12):163-1. 本课题必须完成的任务: 1、开题报告、英文翻译 2、掌握DDS控制技术和信号发生器工作原理,对整体硬件电路进行设计并对软件进行编程和仿真; 3、对信号发生器系统进行整体调试; 4、实验结果及评价 成果形式 基 础 条 件 提交本科毕业论文 进度计划 起讫日期 2.18-3.2 3.3-3.16 工作内容 查阅中外参考文献,翻译一份英文资料 消化吸收参考文献及资料,撰写毕业设计开题报告 备 注 3月14日上交
掌握DDS控制技术和信号发生器工作原理,3.17-4.13 对整体硬件电路进行设计并对软件进行编程和仿真 3.17-3.26 完成开题答辩 4.21 -4.27 4.14 -5.18 5.19 -5.29 毕业设计中期检查 4月27日前 完成中期检查 5月25日交 毕业论文草稿 6月1日前 毕业论文定稿 对信号发生器系统进行整体调试 撰写毕业论文 修改完善毕业论文,进行毕业设计成果演示和验收 准备和进行毕业论文答辩 5.26-6.1 6.2 -6.8 教研室审核意 见 教研室主任签名: ______年___月___日 学院意见 教学院长签名: ______年___月___日 注:此表为参考表格,学院可根据专业特点,对该表格进行适当的修改。
南通大学本科生毕业设计(论文)开题报告
学生姓名 课题名称 阅读文献 情 况 国内文献14篇 国外文献0篇 学 号 专业 电气工程及其自动化 基于CPLD与DDS技术的信号发生器的设计 开题日期 开题地点 2013-3-26 11-612 一 文献综述与调研报告:(阐述课题研究的现状及发展趋势,本课题研究的意义和价值、参考文献) 1、课题研究现状 随着当今社会信息化,电子化的快速发展,无线通信技术越来越受到世界的关注。特别是在军事现代化技术逐渐成熟的今天,军事通信与测量作为保证现代化作战的主要方式,如果军事无线通信设备或无线控制设备没有必要的抗干扰措施,在现代化战争的大规模对抗环境下,就会出现通信中断,控制失灵,从而陷入被动挨打的局面。为了保证正常可靠的通信或系统控制,需要加大研究、创新各种通信理论并实现各种新型的通信设备的应用。 2、发展趋势 频率合成技术作为现在广泛使用的一种频率输出技术,不管是普通电子设备的制造还是最尖端的科学仪器,大多的功能实现都是直接依赖于基于频率合成器以及相关产品,因此频率合成器常被人们誉为电子系统的“心脏”,而频率合成理论也因此在二十一世纪得到了飞跃的发展。 早期的频率合成技术是把一个或多个已知模拟频率源通过倍频、分频、混频等模拟电路的调理与运算实现需求频率的产生,然后选用窄带滤波器的进行滤波得到输出。由于这种技术是直接在物理电路上出发,通过对频率进行各种电路运算,所以被称为直接频率合成技术。 在二十世纪五十年代,由于反馈理论的发展和模拟锁相技术的出现,出现了频率的间接合成技术。这种技术以一个或几个参考频率源为基础,通过谐波发生器的混频、分频产生出多个频率,随后通过频率之间的重新组合利用锁相环把输出频率锁定在频率值上,由压控振荡器间接产生所需频率。这个技术被称为间接频率合成技术或锁相式频率合成技术,至今,通过这种原理设计出的各种频率合成设备依旧占有着大部分市场,是使用最广泛的一种频率合成技术。 随着电子技术数字化概念的出现与发展,在1971年美国学者J.Tierney,C.M.Rader和B.Gold三位科学家发表了关于数字化频率合成的一篇研究性文章,文中第一次提出了DDS(Direct digital frequency synthesis,直接数字频率合成)的概念,DDS从相位的概念出发进,采用信号数据存储技术,具有精确的相位、极高的频率分辨力和快速的频率转换时间,是频率合成技术发展的一个创新。但当时由于电子技术的落后以及信号处理水平不高等原因,DDS技术并没有受到很好的关注。但是随着电子工程领域的不断发展与应用,数字集成电路的不断发展,更高精度的晶振源的出现,DDS技术逐渐显示出了其作为数字频率合成技术的优势,并同锁相频率合成技术一同发展壮大。 由于DDS具有其它合成技术不具备的优点,再经过科学理论的不断扩充与完善和电子集成工艺技术的大力发展,DDS已经开始走向应用化,走向产品化。高科技的电子公司投入了大量的人力、物力,不断的推出DDS的跨时代产品。并且在将来还会一直致力于DDS技术的研究与发展,可以说在未来DDS技术将有着最广阔的空间,有着最广泛的使用。而DDS本身也由于设计原理的问题存在一些固有缺陷,但是基于锁相频率合成技术的优势正好可以弥补这种缺憾,而使用DDS技术和锁相环式频率合成技术相互融合,合并两种技术的优点,将成为整个频率源的核心发展趋势。 3、本课题研究的意义和价值 在通信设备的研制中,信号源或信号发生设备是整个通信系统的基础。因此对于信号的建
设就显得尤为重要,频率合成技术是产生信号源的最理想的方法,特别是数字化处理水平的提高,软件无线电思想的建立,让基于数字频率合成技术的信号源设备的产生成为了现实。在信号发生设备建立后,在信号传输过程中必然会受到多种形式的电子干扰,特别是在军用领域这种干扰更加突出,为了能够提高系统的抗干扰能力,在信号源使用各种手段加强信号安全性,提高抗干扰能力就成为了一种解决方案。 常用的信号源设备在信号建设方面使用两种技术来防止大多数人为干扰,一种是通过对频率的控制包括各种扩频、跳频通信系统来实现,另一种是通过对系统的信号源采用伪随机编码来保证输出的信号难以解密来实现。但是通过改变输出信号的调制模式来设计的信号发生器,增强信号抗干扰能力的设备还很少涉及。为此本文以此为出发点,设计了一种基于DDS(直接数字频率合成)技术的多模信号发生器,该信号发生器不同于以往的设备,是以控制变换信号调制模式为前提,在信号发生时采用不同时间使用不同调制模式信号输出,从而降低系统的信号人为干扰,提高系统的保密性与稳定性,同时可以将信号编码与信号发生复用,作为信号调制设备使用。多模信号发生器的设计为提高通信过程中信号抗干扰能力的研究提出了一种创新型解决方法。 参考文献: 1] 王庆生,卢栋才.频率合成技术综述[J].通信对抗,2005(2):3-10. [2] 王建明.基于DDS技术的多波形信号源设计[D].南京:南京理工大学出版社,2005.15-18. [3]朱正伟.EDA技术及应用[M].北京:清华大学出版社,2005. [4]李洪伟,袁斯华.基于QuartuSH的FPGA/CPLD设计[M].北京:电子工业出版社, 2006年4月 [5]潘松,黄继业编著.EDA技术与VHDL[M].北京:清华大学出版社,2006.20-30. [6]王道宪,贺名臣,刘伟.VHDL设计技术[M].北京:国防工业出版社,2003.145-152. [7] 乔钟纬,韩冬.基于CPLD和DDS实现的信号源[J].山西电子技术,2008(4):36-38. [8]宋万杰,罗平,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大学出版 社,2000.-98. [9] 乔庐峰,王志功.PEDRONIV A. CircuitDesign withVHDL[M].北京:电子工业出版社, 2005.9-48. [10] 石熊.基于直接数字频率技术的研究与应用[D].武汉:华中科技大学,2007. 10-88. [11] 黄振华.基于FPGA函数信号发生器的设计与实现[D].江苏:江苏大学,2009. [12] 黄蕾.基于单片机的DDS技术的应用与研究[D].湖南:湖南大学,2005. [13]周梦然.CPLD/FPGA的开发与应用[M].徐州:中国矿业大学出版社,2007. [14]雷能芳.DDS的Verilog设计及QuartusⅡ与Matlab联合仿真[J].现代电子技术,2009(12):163-1. 二 本课题的基本内容,预计解决的难题 1、本课题基本内容:本文的主要内容是研究并设计了一种基于CPLD控制的DDS多模信号发生器设备,该设备不同于以往的信号发生器,它可以以模块化的形式实现信号在多种调制模式的快速相互切换,生成的各种信号其持续时间长度可自由定义,并且可以设置发生的顺序,同时多模信号发生器具有存储并发射用户自定义信号的能力,即原则上可以产生任意波形信号。整个系统产生的信号具有高精度、转换时间迅速、频带输出宽等优点。对于不同的用户可以设置不同的信号产生方案,也是为广泛的无线探测与通信设备提供了良好的硬件支持与保障。 2、预计解决的难题: 1.编程能力的应用; 2.故障处理方法与设计; 三 课题的研究方法、技术路线 技术路线为: 1、 熟悉课题及要求,检索有关资料;
2、 分析消化资料,撰写课题综述及开题报告; 3、掌握DDS控制技术和信号发生器工作原理,对整体硬件电路进行设计并对软件进行编程和仿真; 4、对信号发生器系统进行整体调试; 5、完成论文 四 研究工作条件和基础 1、研究工作条件: 计算机一台 学生具有一定的编程基础及理论知识 五、进度计划 起讫日期 2.21-3.13 3.14-4.1 4.1-4.30 4.28-4.30 5.1-5.17 5.18-5.24
工作内容 查阅中文参考文献,翻译一份英文资料 消化吸收参考文献及资料,撰写毕业设计开题报告 消化吸收资料,设计硬件原理图和软件框图 毕业设计中期检查 制板、调试 撰写毕业论文(设计说明书)
5.25-6.2 6.3-6.7 论文阶段完成日期 指 导 教 师 评 语 修改完善毕业论文,进行毕业设计成果演示和验收 准备和进行毕业论文答辩 文献调研完成日期 撰写论文完成日期 3.9 6.2 论文实验完成日期 评议答辩完成日期 5.20 6.11 导师签名:_______ ______年___月___日 教研室主任签名: 年 月 日 通过开题( ) 开题不通过( ) 教学院长签名: 年 月 日 注:此表为参考表格,学院可根据专业特点,对该表格进行适当的修改。
教 研 室 意 见 学院 意见
南通大学毕业设计(论文)
摘 要
DDS(直接数字频率合成技术)是从相位的概念出发直接合成所需要波形的一种新理论,
近些年来,随着 VLSI(超大规模集成电路)、FPGA(现场可编程门阵列)、CPLD(复杂可编程器件)等技术的出现以及对 DDS 理论的进一步研究,DDS技术得到了飞速的发展。
本文使用 VHDL 语言,在 CPLD和 D/A 转换电路、滤波电路、幅度放大电路支持下,实现了正弦波、方波和三角波的产生以及相关要求。
本文首先阐述了该课题的相关背景和意义以及CPLD的相关介绍,然后对VHDL语言以及Quartus II 的相关介绍,并在此基础上介绍了DDS的原理以及整体设计方案:以CPLD为控制中心利用其自带资源,将输入的值进行处理得到频率控制字,再经由正弦 ROM 表等 DDS 模块产生正弦波、方波和三角波。
关键词:直接数字频率合成(DDS),CPLD,VHDL,D/A 转换
I
南通大学毕业设计(论文)
ABSTRACT
DDS (direct digital frequency synthesis techniques) is the concept of the phase needed to direct synthesis of a new theory of the waveform, in recent years,as VLSI (very large scale integrated circuit),FPGA (Field Programmable Gate Array), CPLD (complex programmable device) as well as the emergence of technologies such as DDS theory and further research,DDS technology has been rapid development.
This article uses the VHDL language, the CPLD and D / A conversion circuit, filter circuit, the amplitude amplification circuit support, to achieve a sine wave, square wave and triangular wave generation and related requirements.
This paper first describes the topic relevant background and significance,CPLD related presentations, and then VHDL language and quartusⅡrelated presentations,and on this basis,introduced the principle of DDS and the overall design: the CPLD control center uses its own with resources to handle keyboard input values to obtain the frequency control word, and then through quadrant maps, tables and other DDS sine ROM module generates a sine wave, square wave and triangular wave, waveform frequency by the keyboard input frequency.
Key words:DDS(Direct Digital Synthesizer), CPLD, VHDL, DAC
II
南通大学毕业设计(论文)
目录
摘 要 ..................................................................................................................................................................... I ABSTRACT .............................................................................................................................................................. II 第一章 引 言 ........................................................................................................................................................ 1
1.1 课题背景及意义 ......................................................................................................................................... 1 1.1.1课题研究背景 ........................................................................................................................................... 1 1.1.2课题研究意义 ........................................................................................................................................... 1 1.2 FPGA/CPLD简介 ....................................................................................................................................... 1
1.2.1CPLD的基本结构及PLD的发展方向[5] ........................................................................................ 1 1.CPLD的基本结构 ................................................................................................................................. 1 1.2.2本课题使用的CPLD ........................................................................................................................ 3 1.3课题研究内容及章节安排 .......................................................................................................................... 4 第二章DDS 技术的基本原理及特点分析 ............................................................................................................. 6
2.1 DDS工作原理 ............................................................................................................................................. 6 2.2 DDS基本结构 ............................................................................................................................................. 6
2.2.1相位累加器 ....................................................................................................................................... 6 2.2.2 ROM表设计 ..................................................................................................................................... 7 2.2.3 数模转换器 ...................................................................................................................................... 7 2.2.4 低通滤波器 ...................................................................................................................................... 7 2.3 DDS参数计算 ............................................................................................................................................. 8 2.4 DDS 技术特点 ............................................................................................................................................ 8 2.5本章小结 ...................................................................................................................................................... 9 第三章 DDS信号发生器系统设计方案 ............................................................................................................... 10
3.1系统总体结构 ............................................................................................................................................ 10 3.2外围电路 .................................................................................................................................................... 10
3.2.1 LCD 显示接口 ............................................................................................................................... 10 3.2.2数模转换电路 ................................................................................................................................. 11 3.3 DDS模块以及其它功能模块的设计 ....................................................................................................... 12
3.3.1相位累加器模块 ............................................................................................................................. 12 3.3.2 ROM表设计 ................................................................................................................................... 12
南通大学毕业设计(论文)
3.3.3分频模块设计 ................................................................................................................................. 14 3.3.4波形选择模块设计 ......................................................................................................................... 14 3.3.5方波信号设计 ................................................................................................................................. 15 3.3.8正弦波信号设计 ............................................................................................................................. 16 3.3.9幅值调节模块 ................................................................................................................................. 17 3.3.10 LCD驱动模块 .............................................................................................................................. 17 3.3.11系统顶层原理图 ........................................................................................................................... 18 3.4 本章小结 ................................................................................................................................................... 18 第四章系统软件仿真及总体调试 .......................................................................................................................... 19
4.1 Quartus II 开发流程 .................................................................................................................................. 19 4.2各模块仿真波形 ........................................................................................................................................ 22 4.3信号发生器总体调试 ................................................................................................................................ 25 4.4本章小结 .................................................................................................................................................... 26 第五章 总结和展望 ................................................................................................................................................ 27 参考文献 .................................................................................................................................................................. 28 致谢 .......................................................................................................................................................................... 29 附录 .......................................................................................................................................................................... 30
南通大学毕业设计(论文)
第一章 引 言
1.1 课题背景及意义 1.1.1课题研究背景
上个世纪七十年代,在美国学术界产生了一种以全数字的频率合成原理技术为本质的想法,这种想法是由相位的概念引出并在此基础上直接合成所需要合成输出的波形的一种新理论,这就是被业界称为的直接数字频率合成技术——DDS(Direct Digital Synthesizer)。但由于当时技术的局限,此技术应用很少。近 30 年来,随着 VLSI(VeryLarge Scale Integration),超大规模集成电路)、FPGA(Field Programmable Gate Array可编程门阵列)、CPLD(Complex Programmable Logic Device 复杂可编程器件)等技术的出现以及对 DDS 理论的深入理解,DDS 技术发展迅猛。
在最近的20年,为了满足现代通信、先进探测等技术对信号源的频率稳定度、频谱信号的纯度以及可以输出信号频率范围有着越来越高的要求。因此,直接数字频率合成(DDS)得到非常多的使用。
1.1.2课题研究意义
频率合成器的作用在现代电子系统中得到明显的体现,在许多地方都有应用。比如,在雷达探测发射机的调制器载频信号由他供应,除此之外也为接收机提供信号;在测试仪器中,它可单独作为标准信号源;不仅如此,在数字调制方面,它调制实现 FSK、QPSK、BPSK ;在扩频通信领域,它可实现 CDMA 工作方式,它还可以实现多种规律的跳频模式。在今天,电子技术应用越来越广泛,相应地各领域对频率控制器的要求也越来越具体,对频率转换速度、噪声程度、频率分辨的能力、器件的大小与能耗的多少等多种指标提出了相对苛刻的要求。直接频率合成(DDS)有输出波形灵活且相位连续、频率稳定度高、输出频率分辨率高、频率转换速度快、输出噪声低、集成度高、功耗低、体积小等特点,因此它受到越来越多的重视和运用。
1.2 FPGA/CPLD简介
1.2.1CPLD的基本结构及PLD的发展方向[5]
1.CPLD的基本结构
CPLD是Complex Programmable Logic Device的缩写,其中文全称是复杂可编程逻辑器件。
1
南通大学毕业设计(论文)
CPLD由可编程逻辑宏单元及相应互连矩阵构成。 (1)可编程逻辑单元
在I/O方面,CPLD与FPGA基本是相同的,其与FPGA的主要不同在于,比FPGA 相对简单,由此带来的负面效应是应用范围得到了,同时,频率也相对较低。
(2)基本逻辑单元
CPLD中,有一些单元的组成部分比较多,有与门阵列,或门阵列,以及相应的触发器。它们共同组成了基本逻辑单元,实际上它们即为宏单元。
在CPLD中,有个概念叫做乘积项,它本质上是一个阵列。这个阵列输出的多少则显示了该CPLD的容量。
(3)布线矩阵
与FPGA相比,CPLD对的布线比较简单,当有功能程序输入CPLD的时候,CPLD在内部实际上是完成一个打节点的动作,从而实现宏单元之间的联系。也正是由于CPLD的布线比较简单,所以当遇到一些特殊情况时,会难以布线。因为CPLD的布线是固定对的,所以从输入到输出的延时可以计算出来也是固定的,用TPD来表示延时,它是CPLD速度等级的象征,同时也标明了该CPLD可以达到的最高频率。
(4)其他辅助功能模块
有全局时钟、使能、复位、置位功能模块等。 2.PLD工艺的发展方向
当某个器件被创造出来后,如果在创新上遇到了瓶颈,若要再次提升该器件的性能,则要靠制造工艺的发展。例如英特尔处理器从几年前的40nm到如今的32nm制造工艺,使得芯片的性能大幅度提升,规模也越来越大,4核处理器也得到了普及。同理,PLD器件的发展也得益于制造工艺,得到了很大的突破。在VLSI工艺得到发展后,PLD器件实现了高密度的成长。
上世纪80年代,两家美国公司ALTERA和XILINX,把CPLD规模推向了超大规模级别,而这完全得益于EECMOS工艺的发展,首先实现了高集成度,再者,应用也变得更为灵活。
到了90年代,CPLD器件得到了质的飞跃,在原有功能的基础上,发展出了更具有优势的功能,例如可以实现电擦除的功能,边缘扫描功能还有在线编程的功能。在1998到2000年间HDPLD的产品集成度从1到3万门扩展到了200万门。在制作工艺上,90nm和300nm工艺得到了普及,其中90nm是指刻蚀间距,300nm是指硅晶圆的的直径。
CPLD器件的发展体现在工艺、密度、系统、高速度等几个方面。
2
南通大学毕业设计(论文)
(1)工艺,目前的CPLD有6层金属层、CMOS的制造工艺也向着0.09µm发展; (2)高密度,目前的有的CPLD门数已经超过了400万;
(3)系统,低电压的发展可以更好的节能,也更利于系统的稳定运行,目前的电压已经采用2.5V,3.5V和5V的兼容模式; (4)高速度,目前的速度已经达到200MHz。
总而言之,CPLD的发展越来越成熟,更多高集成度的器件被制造出来,同时速度、功能也不断被刷新。发展前景十分良好。 1.2.2本课题使用的CPLD
本课题使用的CPLD由东南大学与Alter联合实验室及培训中心联合研制。该CPLD简单易操作,功能多样,包含串口通信、液晶显示屏、蜂鸣器出声等,并且其中的资源也很丰富。本CPLD平台入门简单,即可进行专业开发,亦可用于平常的教学环节,避免了操作的门槛,可专注逻辑器件的使用,编程语言的再造,提高了学生的学习拓展能力。
该CPLD由开发板母板、下载电缆、连接线、配套光盘、并口延长线(选配)及串口连接线(选配)等组成。
该CPLD开发母板主要由主控芯片EPM1270T144C5、MAX232芯片、16*2字符液晶模块、LM317稳压芯片、LM386运算放大器、双七段数码管、蜂鸣器、扩展接口、JTAG下载口、串行接口、LED灯、8位拨动开关及按键等组成,其实物图如图5-1所示。该CPLD开发母板按功能共分为电源、串口(RS232接口)、USB接口、液晶显示、LED灯、七段数码管显示、下载口、主芯片、扩展口、蜂鸣器、拨动开关、按钮等十二个部分,各部分功能在板上的布局如图1-1,图1-2所示。
图1-1 CPLD开发板母板实物图
3
南通大学毕业设计(论文)
图1-2 CPLD开发板各部分功能在板上的布局
目前的软件很大部分采用EDA技术,EDA技术以计算机作为工具,再辅以硬件语言VHDL实现内部电路的设计。利用EDA技术,可以自动完成编译、布局、仿真等功能,由于CPLD器件内部门数达到上百万,因此可以满足各种电路的设计和功能实现。
采用CPLD工具对于开发者起到了很大的便利,首先其编程的方式较为简单,硬件语言类似C++等高级语言,入门简单。其次,现在的CPLD器件响应快,可靠性高。再者,由于设计标准化,使得设计成果有很高的移植性,从而使后继开发者更加方便。
但是CPLD也有缺陷,其内部线路的长短造成的延时会导致最终结果与设计方案预期造成误差。虽然测频的原理不断改进,技术日趋完善,但是EDA技术仍要不断发展来满足日益先进的测频技术。
利用本方法进行高精度测频,硬件部分需要用到CPLD器件,CPLD结构简单,制造成本低,稳定性好,性能优良,满足了测频的要求。软件部分则需要用到VHDL硬件描述语言和Quartus Ⅱ,为软硬结合创造了平台。
1.3课题研究内容及章节安排
本课题研究的主要内容是基于CPLD的DDS技术产生正弦波,方波和三角波,并且同时控制液晶 ,将DDS产生的数字信号通过数模转换芯片AD7339转换成模拟信号,再进行滤波,产生波形在示波器上进行显示。该系统主要由硬件和软件两部分构成其中软件是该课题的核心。该设计的硬件设计部分主要包括数模转化、电源、滤波。软件部分主要包括液晶驱
4
南通大学毕业设计(论文)
动模块,数据处理模块,相位累加模块,正弦ROM表模块,幅值变换模块以及数模转换等模块,利用这些模块生成正弦波,通过判断相位地址的高两位产生对应频率的方波信号,通过相位地址的低 8 位作为幅值,高 2位作为幅值变换依据产生三角波信号。
本文的章节安排:
第一章主要论述了课题研究的背景和意义,以及CPLD的简介。
第二章首先介绍了DDS的基本原理,在此基础上对DDS的基本结构进行了总体描述,接着对DDS的核心部分进行了细致分析,并给出实验参数计算的简介。在本章最后,比较详尽的叙述了DDS这项技术的优点
第三章首先展示了系统的整体设计电路。然后分层次的介绍了系统的外部电路和内部模块电路以及各个模块的工作情况,在VHDL语言编程的基础上展示了各个模块的设计方法以及封装后的模块图。
第四章对实验结果的展示,对部分模块的仿真波形做了简单的介绍,并对实验产生的正弦波、三角波以及方波进行测试,使得输出波形的频率在液晶上显示,而输出的波形在示波器上得到显示。
第五章主要对整篇文章进行总结以及对所需要的改进进行展望。
5
南通大学毕业设计(论文)
第二章DDS技术的基本原理及特点分析
2.1DDS工作原理
DDS就是直接数字频率合成技术,这是一项基于相位的概念并在此基础之上进行信号的结构与合成规则的研究的技术。假如以正弦波为例,尽管它的幅度变化是非线性的,但是它的相位却可以线性变化。DDS 恰好就是利用了该技术的这个特点来生成正弦信号[4]。
DDS系统的核心是相位累加器,它由一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲,相位寄存器的输出与相位控制字相加,其结果作为正(余)弦查找表的地址。正(余)弦查找表由ROM构成,内部存有一个完整周期正弦波的数字幅值信息,每个查找表的地址对应正弦波中的0-360。范围的一个相位点。查找表把输的地址信息映射成正(余)弦波幅度信号,同时输出到数模转换器(DAC)的输入端,DAC输出的模拟信号经过低通滤波器,可得到一个频谱纯净的正(余)弦波。
相位累加器在基准时钟的作用下,进行线性相位累加,当相位累加器加满时就会产生一次溢出,这样就完成了一个周期,这就是DDS信号的频率周期。
2.2DDS基本结构
DDS典型结构包括:相位累加器、波形存储器和数模转换器及低通滤波器,相位累加器的两含有频率控制字 K 和参考时钟 fc两个输入端。
相位累 加器 波形存储器
D/A转换器 低通滤波器 fo k fc
图3-1 DDS系统图
2.2.1相位累加器
相位累加器在DDS中所能起到的作用和一个简单的加法器相同,系统出现一个时钟脉冲时,加法器就会把频率控制字和累加相位数据相加,这些累加相位数据来自相位寄存器。然后再把得到的数据结果回送相位累加器的数据输入端,以使累加器在下个时钟到来的时候重复以上的操作,最终使系统在稳定的参考时钟下完成相位的累加。当相位累加器累加满量程时,就会产生一次溢出,完成一个周期性的动作,这个周期就是合成信号的一个周期,此溢
6
南通大学毕业设计(论文)
出频率等同于 DDS 的合成信号频率。相位累加器是是 DDS 最基本的组成部分,相位累加器的位数 N 与时钟频率 fclk共同决定DDS 输出频率的精度,相位累加器位数越高,相位的分辨率 Δψ=1/2N也就越高,输出波形的精度也就越高,但同时消耗的硬件资源也呈指数形式上升。假设初始相位θ,频率控制字为 K,即当出现一个时钟脉冲,相位累加器就加 K,经过 n 个时钟脉冲,相位 ψ满足:
ψ=n*k+θ (3.3.1)
由式(3.3.1)得知,相位 ψ 与 n 满足斜率为 K 的线性关系。
2.2.2 ROM表设计
波形存储器也叫做正弦查找表,DDS 查找表 ROM 中存储的数据是二进制表示的正弦波幅值,相位累加器经过计算输出的数据,可以用来作为波形存储器(ROM)的相位取样地址,这样就可把二进制编码的波形抽样值经查找表查出,最终可以成功的把这些相位值转化为幅度值。
本设计中的 ROM 表是基于CPLD的硬件资源设计的,通过 MATLAB 生成 MIF 文件植入到 FPGA 的 ROM 表中。假设 ROM 表共存储 2N个数据,每一个数据由 L 个比特, 则 ROM 表所占用的内存资源为 2N×L。相位累加器的位数为 N 位,如果把 2π 的相位分为2N等分,全部作为地址存入 ROM 表中,则随着相位累加器的位数 N 的增加,所需要的 CPLD硬件资源会呈 2 的幂次方形式增长,而一般 DDS 中的相位累加器位数 N 比较大,这将大大降低 FPGA 的资源利用率,提高成本,功耗大、查找速度慢等问题也随之产生。
2.2.3 数模转换器
D/A 转换器的作用是将得到的数字量形式的正弦波幅度信号,而这些信号储存在ROM表中,然后将这些信号转换为所要求的正弦信号而这些信号都是阶梯形状,这些正弦阶梯信号就是模拟量。本实验使用的 D/A 转换器的分辨率应与 DDS 输出的数字量位数量一致,D/A 转换器的位数越高,分辨率也就越高,与此同时合成的模拟信号的精度就会随之一起变高。并且,D/A 转换器的工作时所利用到时钟在原理上应该与 DDS 的相位累加器所使用的的工作时钟保持一致或者比其更快。这样保证了一个量化值输出能够及时的转换为相应的模拟信号。
2.2.4 低通滤波器
低通滤波器是用来把数模转换输出的阶梯波形变成相对平滑的波形,并且过滤掉D/A 转换输出的没有用的信号频谱,从而使得到的输出相对比较纯净模拟正弦波。通过对 D/A 转
7
南通大学毕业设计(论文)
换器的输出信号进行频谱分析,可以了解到频谱分量除了含有主频 fo,还应该包含在 nfc±fo,n=1,2,3...处相应的频率信号分量。
2.3 DDS参数计算
在时钟 fclk的作用下,频率控制字 K 在相位累加器的作用下进行累加并且这种累加方式是线性的,在相位累加器一直累加的过程中,如果其积满量时就会产生一次溢出,DDS 输出的信号频率就是由累加器的溢出频率来决定的 。信号频率满足以下关系式:
f =
fc*k2N (2.3.2)
变量 K 被称为相位增量,也就是频率控制字,当 K=1 时,DDS 输出最低频率即频率 分辨率为:
fmin =
fc2N (2.3.3)
由此可见,DDS 信号的频率分辨率是由 N 决定的,频率控制字 K 决定了 DDS 信号 的输出频率。DDS 的最大输出频率由 Nyquist 采样定理决定,即 fc/2,也就是说 K 的最大 值为 2N-1[10]。DDS 最高合成频率理论上为
fmax=fc/2 (2.3.4)
2.4 DDS 技术特点
1.频率分辨率高
DDS技术中内部的ROM表所能储存的容量以及系统的时钟信号决定了该项技术的分辨率,若设K=1,可得分辨率ƒmin=ƒc/2N,如今特定的DDS芯片已经可以达到48位,这种芯片的分辨率可以达到令人惊讶的μHZ的级别。 2.信号输出频率范围宽
只要该系统使用的频率来源非常高的话,那么系统的信号输出频率的范围就会相当的宽。 3.高速的跳变频率
因为DDS工作在开环系统中,并且不带有反馈控制,所以频率的生成时间与切换时间迅速,同时与系统的频率分辨率和频率纯度相互分离,无任何影响。如果滤波器拥有非常宽的滤波带宽,那么DDS频率相互转换时间可以达到ns级别。 4.连续的相位变化
经过对DDS原理的研究,可以知道波形ROM内的信息是经过非常大的采样频率采样的
8
南通大学毕业设计(论文)
值然后这些值以相位的形式储存在ROM表中,因为采样周期非常高,所以系统输出的波形近似可以认为是连续的相位变化。 5.任意的波形或序列输出
只要改变读取ROM中的数据与对应地址信息,就可以使系统实现任意波形的输出以及输出信号的幅度、频率和相位亦可以实时改变。
2.5本章小结
本章节首先介绍了DDS的基本原理,在此基础上对DDS的基本结构进行了总体描述,接着对DDS的核心部分进行了细致分析,并给出实验参数计算的简介。在本章最后,比较详尽的叙述了DDS这项技术的优点。通过本章的学习可以较为系统的了解DDS技术,并在此之上进行实验的进一步研究。
9
南通大学毕业设计(论文)
第三章 DDS信号发生器系统设计方案
3.1系统总体结构
本文研究的系统外围电路主要包括数模转换,滤波环节,以及液晶显示,该部分主要实现频率控制字的输入,数模的转换以及波形调试以及输出。系统的软件部分包括DDS模块,而DDS模块的核心模块是相位累加模块以及ROM模块,在DDS模块之外包括正弦波模块,三角波模块,方波模块以及波形选择模块,该部分主要实现波形的生成以及输出波形的选择功能。 拨动 开关C 分频模块 CPLD 方波 正弦波地址生成模块 幅值调节模块 DAC控制模块 LCD显示模块 系统 时钟 拨动开关 A、B
锯齿波 波形选择 三角波 ROM模块 图3-1 DDS信号发生器系统框架图
3.2外围电路
本设计的外围电路主要包括液晶显示部分,除此之外还有数模转换电路。液晶显示部分主要对输出波形的频率进行显示。数模转换电路主要是将采样的数字信号转化为模拟信号通过示波器进行显示。
3.2.1 LCD 显示接口
液晶显示器(LCD,又称液晶屏)具有以下的优点:低工作电压、能耗小、使用寿命长、
集成容易、便携以及显示信息量大、无辐射、无闪烁等优点因此在许多领域得到应用,本设计中的液晶采用的是点阵式LCD,由外部引脚可知此LCD有数据线D0--D7,三条控制线RS、R/W、E,可以方便地与微处理器、微控制器或者CPLD相连本实验的LCD与CPLD相连,接口电路如图3-2所示。
10
南通大学毕业设计(论文)
图3-2 LCD内部结构图
3.2.2数模转换电路
数模转换电路主要是用来把二进制数字量转化为输出的模拟量。数字量通过D/A转换器转化成波形进行输出。在本实验中,信号由CPLD送出,由接插件送入AD7339,通过选取数据输入端口和控制字符,选中不同的通道,最后在输出端送出模拟信号。母版用来提供数字信号和时钟信号。其中与数模转换有关的端口功能介绍:DA0-DA7为A通道并行数字信号输入端口,DB0-DB7为B通道并行数字信号输入端口,DACCLK为并行DAC输入时钟端口,DACPCD数字信号输入端口。
图3-3 硬件结构图
11
南通大学毕业设计(论文)
3.3 DDS模块以及其它功能模块的设计
本节主要介绍了 DDS 信号发生器基于 VHDL 语言的模块设计,该部分模块主要包括整个DDS模块,而DDS模块又包含相位累加模块,寄存器模块,ROM表模块。除此之外,系统还包含分频模块以及波形选择模块等主要模块,在这些模块的联合作用下,最终产生期望的波形,达到实验效果。
整个DDS模块使用的一个时钟,在这个时钟的作用下,从而达到使各个模块的运算速度保持同步的效果。相位累加器controlword是一个10位加法器,它具有累加功能。它把已经设置好的的10位频率控制字K作为步长来进行加以计算。当相位累加器计数和满时,相位累加器的计数清零,并进行重新计数。相位累加器REG1就是普通的是10位计数器,它首先寄存输入端输入的数据;当检测到下一个时钟时,对寄存数据进行输出。正弦查找表ROM是DDS最核心的部分,于此同时,这部分也是最关键和最复杂的;实验时第一步需要采样正弦函数,然后在ROM模块的对应单元中放入采样结果;每一个地址就是采样结果一个数值,输出为10位。,REGOUT中先寄ROM的输出数据,如果检测下一个时钟信号,再将REGOUT中的数据输出,这样可以加强输出数据的稳定性。在同步时钟clk的控制下整个系统能够协调的工作。
3.3.1相位累加器模块
相位累加器从本质上说就是一个加法器以及一个寄存器组成,输入的步长为K,初始相位为0000000000;当每个时钟上升沿到来时,加法器以实验中开始设定的步长一直累加到1111111111为止,具体程序见附录。相位累加器是DDS最基本的组成部分,用于实现相位的累加并存储其累加结果。相位累加器的模块框图如图3-4所示:
图3-4 加法器与寄存器的模块框图
3.3.2 ROM表设计
DDS的最重要的部分是ROM表,其必须遵循的设计原理为:如果一个寄存器有N条地址线,则这个储存器空间为2N。储存其中的数据和波形如图3-5所示。假设在2N个储存空间
12
南通大学毕业设计(论文)
内存放了一个周期的正弦波形数据,则每个储存单元内的数据就表示正弦值的大小,这种储存器称为波形数据储存器 。下图就表明了储存单元与正弦波形的对应关系。如果重复的从0--2N-1个单元中读出波形储存其中的数据,在波形储存器的输出端就会得到周期的正弦序列。如果将周期的正弦序列输入到数模转换器DAC中,就会在DAC的输出端得到连续的正弦电压或者电流。对于不用的信号产生只要是改变ROM的数据。
波形储存器(ROM)
10000000 11000011 11111111 地 址 波形存储存空间 可寻址译码 空间 器 0000000 0000011 储存单元内的数据大小
图3-5 储存器中数据和波形的关系
DDS查询表ROM所存储的数据是每一个相位所对应的二进制数字正弦幅值,在每一个时钟周期内,相位累加器输出序列的高n位对其进行寻址,最后输出为该相位对应的二进制正弦幅值序列。ROM中需要放入正弦值查找文件sin.mif。这个文件是通过MATLAB程序生成的。ROM查找表模块如图3-6所示。
图3-6 ROM查找表模块的框图
13
南通大学毕业设计(论文)
3.3.3分频模块设计
分频模块用于在输入基准频率的作用下,分频产生不同频率的波形信号输出。分频模块的程序设计流程图如图3-7所示。图中f为一个8位逻辑向量,在系统时钟的作用下进行加法计数,用以满足DAC工作时序要求的不同的频率输出信号,speed为频率选择信号,对应于设计要求中波动开关C。
开始
f 晶振频率转化为系统中各模块所需要的频率,从而达到系统工作的要求。分频模块如图3-8所示。 图3-8 分频器封装模块 3.3.4波形选择模块设计 波形选择模块的设计可以通过数据选择器实现,通过外部的控制按钮keya,keyb选择不同的波形信号输出,模块如图3-9所示。波形选择模块的输出接至幅值调节模块,根据外部 14 南通大学毕业设计(论文) 控制信号进行幅值调节后送DAC输出。 图3-9 波形选择模块 3.3.5方波信号设计 方波信号设计的流程图如图3-10所示,其数据的输出只有两种取值:0和255.其中da为位逻辑向量,用以控制产生方波信号的占空比。若复位信号reset无效,为低电平时,在波形时钟fclk的作用下,若da<127(改变此判断值,可改变输出波形的占空比),则输出波形d_out=0,方波信号为低电平,否则输出数据d_out=255,为高电平。方波模块如图3-11所示其中:clk为方波时钟输入端,接受时钟信号;sel为幅值调节输入端;dout1为方波输出端 da<=0 reset=1 是 否 da<127 是 d_out1<=0 d_out1<=255 开始 否 da<=da+1 图3-10 方波信号设计流程图 图3-11 方波模块 15 南通大学毕业设计(论文) 3.3.7 锯齿波信号设计 锯齿波信号的程序流程如图3-12所示,若复位信号reset无效为低电平时,在波形产生时钟fclk的作用下输出信号一次从0变为255,再恢复0,不断循环。锯齿波模块如图3-13所示其中:clk为方波时钟输入端,接受时钟信号;sel为幅值调节输入端;dout2为方波输出端。 da<=0 da<255 reset=1 da<=da+1 开始 da<=da+1 d_out2<=da 图3-12 锯齿波信号设计流程图 da<=0 图3-13 锯齿波模块 3.3.8正弦波信号设计 正弦波的产生可以使用查表法的方式获得,将一个周期的正弦波采样数据存放于ROM中,按照一定的频率将数据取出,并送DAC转换既得到正弦波。改变取值的频率可以实现波形频率的调节。 由于本设计采用的DAC为8位DAC。所以向其提供的ROM也应为位宽的数据,最小值为0,最大值为255.若ROM的地址线选用6位宽,则可储存个正弦波的采样数据,采样数据越多,波形回复越好。这个数据可以由如下C程序产生。将生成的数据存入ROM 16 南通大学毕业设计(论文) 的初始化数据文件(mif文件)中即可。 正弦波模块如图3-14所示,其中:clk为正弦波时钟输入端,接受时钟信号;sel为幅值调节输入端;dout为正弦波输出端 。 图3-14 正弦波模块 3.3.9幅值调节模块 幅值调节模块的输入信号cnt_en来自于波形选择模块d_out,根据幅值调节信号updown的输入,将cnt_en值进行改变即可。程序流程图如下所示。当updown为1时,信号幅值不改变;当updown为0时,信号幅值减半输出:q=0,q(6..0)=q(7..1)。其模块图如图3-15。 图3-15 幅值调节模块 3.3.10 LCD驱动模块 大多数LCD驱动程序都是用单片机编写的,而本文使用VHDL来实现它,事实证明一样有效,而且更稳定。如图3-16所示,LCD驱动主要用于控制六条指令,包括功能设置、清屏、显示开关控制、输入方式设置、DDRAM地址设置、写数据六个状态。其封装图如下所示。 图3-16 LCD模块 17 南通大学毕业设计(论文) 3.3.11 系统顶层原理图 信号发生器的顶层设计原理图如图3-17所示。图中各个模块分别是:分频模块、方波产生模块正弦波产生模块,三角波产生模块、锯齿波产生模块、ROM模块、波形选择模块、幅值调节模块等。 图3-17 DDS信号发生器顶层原理图 3.4 本章小结 本章是整篇文章较为重要的部分,首先展示了系统的整体设计电路。然后分层次的介绍了系统的外部电路和内部模块电路以及各个模块的工作情况,在VHDL语言编程的基础上展示了各个模块的设计方法以及封装后的模块图,从而为下章的波形仿真以及整体调试打下良好的基础。 18 南通大学毕业设计(论文) 第四章系统软件仿真及总体调试 4.1 Quartus II 开发流程 1.启动Quartus II。QuartusII界面由“工程导向窗口”、“状态窗口”、“用户区”“信息窗口”四个部分构成。如图4-1所示。 图4-1 QuartusII基本界面 2.建立新项目。 在File下拉菜单中选择New Project Wizard...选项启动项目向导。 Step1:如图4-2所示,创建新工程并指定路径,创建工程名和顶层文件名。在这里工程名和顶层文件名是一致的。工程名取:yaoshou,则顶层文件名也取:yaoshou。需要强调,顶层文件有且仅有一个,而一个新的工程中,文件是可以有多个的。 图4-2 QuartusII项目名称、路径、顶层文件设定窗口 Step2:点击Next>按钮,因为没有已有VHDL文件,所以没有需要操作的地方,直接跳过。 19 南通大学毕业设计(论文) Step3:点击Next>按钮,进入页面三,选择器件。器件的选择是与实际操作的硬件相对应的。依据本课题的实验开发样板,在熟悉的情况下,可以快速选择所需的器件。或者,可以采用图2.5右边的器件筛选功能。例如,按照要求,假如需要使用MAX II系列型号为EPM1270T144C5的器件,封装为TQFP,管脚数144,速度等级为5,则可以快速通过筛选功能选择到该器件。如图4-3所示。 图4-3 QuartusII中器件选择窗口 Step4:后面两步是对EDA工具的设定和工程综述,不需进行任何操作。点击Finish完成工程创建工程综述界面如图4-4所示。 图4-4 QuartusII项目设定完成综述窗口 3.新建一个VHDL文件。直接点击新建空白编辑文件,并保存之,Quartus II中包含了完整的文本编辑程序功能(Text Editor),在空白页面来编写源程序。新建VHDL文件有三种方式,一是通过快捷按钮,二是通过快捷键Ctrl+N,三是从File下拉菜单中选择New...都可以, 20 南通大学毕业设计(论文) 弹出对话框,选择Device Design Files页面的VHDL File,点击OK按钮。 4.VHDL程序输入。在用户区VHDL文件窗口中输入源程序,保存的文件名与实体名保持一致。 5.语法检查和编译。 对刚编写好的源程序进行语法检查和编译,若语法规范、编译成功,则证明程序可用,编写正确。若语法检查错误导致编译错误,则找到错误地方并修改之,直至无误为止。 6.仿真。 Quartus II内置波形仿真程序(Waveform Editor)。可以将编写正确的程序用波形图展现出来,得到模拟结果,有利于设计者的观察和分析,从而得出最终的设计结果。Quartus II中有功能仿真和时序仿真,前者,可以检查编程的正确与否,看能不能达到合乎的逻辑功能,而后者还包含器件的延时分析,查看若在实际电路中,能不能真正达到设计功能的目的。具体的操作流程为,只需在Tools下拉菜单中选择Simulater Tool,在其Simulater mode中进行选择即可,如图4-5所示。 图4-5 QuartusII项目仿真设定窗口 现以时序仿真为例,介绍仿真的具体操作过程: Step1、新建一个波形文件:该过程与新建VHDL文件类似,只是在弹出页式对话框后选择Other Files页面的Vector Waveform File。 Step2、在所需生成波形文件中加入所需观察波形的管脚名。具体做法是:在Name中单击右键,选择Insert Node or bus...选项,出现Insert Node or bus对话框,此时可在该对话框的Name栏直接键入所需仿真的管脚名,也可点击Node Finder...按钮,将所有需仿 21 南通大学毕业设计(论文) 真的管脚一起导入。Node Finder对话框如图4-6所示。 图4-6 QuartusII建立待仿真文件时的管脚及内部信号选择窗口 在弹出的表框中选择恰当的选项,点击List按钮,将需要仿真波形对应的管脚号全部移到右边的空白处。点击OK进入波形仿真界面。 Step3、给输入管脚指定仿真波形,编辑波形。然后保存仿真文件。 7.*.pof 文件的生成。由于实验用的MAXII器件用JTAG方式进行下载使用,所以需将适合下载到芯片中的源文件转化为以“*.pof”后缀名结尾的文件格式。 4.2各模块仿真波形 1.加法器模块仿真波形 在quartusⅡ中输入附录中的加法器模块的代码。其中A、B是加法器两个输入端,每来一个时钟信号该加法器实现两个输入端数值的相加,然后将结果储存在寄存器中。其仿真图如图4-7所示。 图4-7 加法器模块仿真图 2.寄存器模块仿真波形 在quartusⅡ中输入附录中的寄存器器模块的代码。其中clk以及D是输入端,只要检测到一个clk的上升沿时,就可以将D端的数值寄存,通过Qout输出然后输入到加法器的输入端与加法器共同完成相位累加的功能。其仿真波形如图4-8所示。 22 南通大学毕业设计(论文) 图4-8 寄存器仿真波形 3.分频模块仿真波形 在quartusⅡ中输入附录中的分频模块的代码。其中k0为系统的频率,areset为复位信号,该分频模块可以实现2分频,3分频以及4分频,其波形如图4-9所示。 图 4-9 分频仿真波形 4.方波模块仿真 在quartusⅡ中输入附录中方波产生代码,方波的仿真波形如图4-10所示。数据线data的数据在两个取值:0和255、0和127上切换,满足方波信号的输出幅值变化的要求。 图4-10 方波仿真波形 5.正弦波模块仿真 在quartusⅡ中输入附录中的正弦波代码,再通过编译和时序仿真,可以得到如图4-11的波形。由4-11图可知,每出现一个clk信号,dout4就会输出一个正弦信号,sel实现正弦波的幅值调节。可以看出,数据线data上输出数据的变化与ROM中存储的初始化数据一致。 图4-11 正弦波仿真波形 23 南通大学毕业设计(论文) 6.三角波模块仿真 在quartusⅡ中输入附录中的三角波代码,再通过编译和时序仿真,可以得到如图4-12的波形。由图可知,每出现一个clk信号,dout3就会输出一个正弦信号,sel实现正弦波的幅值调节。由下图可知数据线data上的数据在由小到大至127后又进行由大到小变化。 图4-12 三角波波形 7.锯齿波模块仿真 在quartusⅡ中输入附录中的锯齿波代码,再通过编译和时序仿真,可以得到如图4-13的波形。由下图可知,clk是时钟信号,dout2是锯齿波信号的输出信号,sel是幅值调节信号。由下图可知数据线data上的数据在由0到大至255后进行循环。 图4-13 锯齿波波形 8.DDS系统仿真图 对这个直接数字频率合成器系统进行仿真,得到仿真波形图如图4-14所示: 图4-14 DDS系统仿真图 24 南通大学毕业设计(论文) 4.3信号发生器总体调试 基于CPLD的DDS信号发生器系统输出波形的频率在CPLD母板的液晶上进行显示,把CPLD的输出端和探头线相连接,然后将探头线连接到示波器上,把实验产生的波形在示波器上进行显示。显示的频率如下所示。 1. 当波形选择模块输入端keya和keyb输入为“00”信号时,波形选择模块选择输出方 波,该方波的频率在液晶屏上显示如图4-15所示。 图4-15方波频率液晶显示 2.当波形选择模块输入端keya和keyb输入为“01”信号时,波形选择模块选择输出三角波,该三角波的频率在液晶屏上显示如图4-16所示。 图4-16三角波频率液晶显示 3.当波形选择模块输入端keya和keyb输入是“10”信号时,波形选择模块选择输出正弦波,该正弦波的频率在液晶屏上显示如图4-17所示。 图4-17 正弦波频率液晶显示 25 南通大学毕业设计(论文) 4.当波形选择模块输入端keya和keyb输入是“11”信号时,波形选择模块选择输出锯齿波,该锯齿波的频率在液晶屏上显示如图4-18所示。 图4-18 锯齿波频率液晶显示 4.4本章小结 本章首先对quartusⅡ的开发流程进行了简单的介绍,然后就是对本次实验结果的展示,对部分模块的仿真波形做了简单的介绍,并对实验产生的正弦波、三角波以及方波进行测试,使得输出波形的频率在液晶上显示,而输出的波形在示波器上得到显示。 26 南通大学毕业设计(论文) 第五章 总结和展望 频率合成器是现代电子系统的重要组成部分,在通信、雷达、电子对抗、导航、广播 电视、遥测遥控、仪器仪表等许多领域中被广泛应用。本论文针对基于 DDS 数字频合成技术的函数信号发生器的设计和实现,从理论和实际两个方面对数字频率合成技术进行了阐述。 本实验的主要内容以及总结: (1)本文介绍本课题的时代背景以及本文的研究意义。还简单介绍了CPLD的结构和使用方法,在此之外还介绍了VDHL语言的使用。 (2)对DDS的原理进行了介绍,在此基础上展示了DDS设计整体结构图以及外围电路介绍。 (3)完成了核心部分就是软件设计部分的编程,并且进行了调试完成了波形的输出。 (4)本文完成了信号发生器的频率测试要求,但波形无法正常在示波器上显示,我一定会在接下来的学习中继续努力,争取完善本次试验结果。 (5)本文基本上完成了实验要求,但在细节上还存在不足,系统存在一定的误差。我一定会在今后的学习中不断完善争取更上一层楼。 27 南通大学毕业设计(论文) 参考文献 [1] 王庆生,卢栋才.频率合成技术综述[J].通信对抗,2005(2):3-10. [2] 刘哲.基于 CPLD 与 DDS 技术的多模信号发生器的研究与设计[D].太原:中北大学 2010. [3] 许慧波,张厥胜.直接数字式频率合成 DDS 综述[J].电子科技杂志.2002, No.4 PPl-7 [4] 张茂春,刘恺. 基于 DDS 技术的调频连续信号发生器设计[J].制导与引信.Vol31 No.2 PP14-16 [5] 李辉. 基于FPGA 的数字系统设计[M].西安:西安电子科技大学出版社,2008,36-73 [6] 高泽溪,高成.直接数字频率合成器(DDS)及其性能分析[J].北京航空航天大学学报.Vol24 No.5 PP 615-618 [7] 王建明.基于 DDS 技术的多波形信号源设计[D].南京:南京理工大学 2005. [8] 席砺莼,董丽梅,田梦周,闫宏伟.基于VHDL 语言的出租车计费系统设计[J].现代电子技术,2003,(03):79-81 [9] 张丕状,李兆光.基于VHDL的CPLD/FPGA开发与应用[M].北京:国防工业出版社,2009,109-145 [10] 王道宪.CPLD/FPGA 可编程逻辑控制器件应用与开发[M].北京:国防工业出版社,2004,20-98 [11] 黄振华.基于FPGA函数信号发生器的设计与实现[D].江苏:江苏大学,2009. [12] 黄蕾.基于单片机的DDS技术的应用与研究[D].湖南:湖南大学,2005. [13] 周梦然.CPLD/FPGA的开发与应用[M].徐州:中国矿业大学出版社,2007. [14] 雷能芳.DDS的Verilog设计及QuartusⅡ与Matlab联合仿真[J].现代电子,2009(12):163-1. [15] 潘松,黄继业编著.EDA技术与VHDL[M].北京:清华大学出版社,2006.20-30. [16] 王道宪,贺名臣,刘伟.VHDL设计技术[M].北京:国防工业出版社,2003.145-152. [17] 乔钟纬,韩冬.基于CPLD和DDS实现的信号源[J].山西电子技术,2008(4):36-38. [18] 宋万杰,罗平,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大学出版社, 2000.-98. [19] 乔庐峰,王志功.PEDRONIV A. CircuitDesign withVHDL[M].北京:电子工业出版社, 2005.9-48. [20] 袁斯华.基于QuartuSH的FPGA/CPLD设计[M].北京:电子工业出版社,2006年4月 28 南通大学毕业设计(论文) 致谢 时间过得很快,四年的大学生活就快结束了,在我的毕业设计论文即将完成之际,谨向所有指导,教育,帮助过我的领导,老师和同学致以最诚挚的感谢。 本论文的研究工作是周俊老师的悉心指导下完成的。周老师为人热情,治学严谨,在完成这个研究课题的过程中给了我很多的帮助和指导,我想说,没有周老师的无微不至的帮助我是不可能完成我的毕业设计的,我所取得的每一点成绩都是和周老师的悉心指导分不开的。在此,我向周老师表示衷心的感谢。 同时,我也感谢我的母校南通大学给了我十分美好的学习生活环境,感谢电气工程学院的老师和领导给我的无微不至的帮助和关怀,当然,我也非常感谢我的家人,他们在物质和精神上给了我极大的关怀和支持。 最后,再一次的感谢在毕业设计期间给予我帮助的每一个人,谢谢! 29 南通大学毕业设计(论文) 附录 附录:各模块的VHDL程序 分频模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGEND.ALL; Entity clkdiv is Port(mclk:in std_logic; Freq:in std_logic_vector(15 downto 0); Clkout:out std_logic); End clkdiv; Agchitecture cdiv ofclkdiv is Signal outtemp:std_logic_vector(16 downto 0); Begin Process(mclk) Constant count:std_logic_vectror(15 downto 0):=(others=>’1’); Variable clktemp:std_logic; Variable freqtemp:std_logic_vector(15downto 0); Variable freqcount:std_logic_vector(15downto 0); Begin Freqtemp:=count-freq; If(mclk’EVENT AND mclk=’1’) then If(freqcount=’0’&freqtemp(15 downto 0)) then Clktemp:=not clktemp; Freqcount:=freqcount+1; Elsif(freqcount=freqtemp) then Clktemp:=not clktemp; Freqcount:=(others=>’0’); 30 南通大学毕业设计(论文) Else Freqcount:=frecount+1; End if; End if; Clkout<=clktemp; End process; End div; 方波产生模块 library ieee; use ieee.std_logic_11.all; entity square is port ( datain: in std_logic_vector(1 downto 0); dataout: out std_logic_vector(7 downto 0)); end square; architecture behav of square is Begin process(datain) begin case datain is when\"00\"=>dataout<=\"11111111\"; when\"01\"=>dataout<=\"11111111\"; when\"10\"=>dataout<=\"00000000\"; when\"11\"=>dataout<=\"00000000\"; end case; end process; 31 南通大学毕业设计(论文) end behav; 三角波产生模块 library ieee; use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all; entity triangle is port (clk:in std_logic; datain: in std_logic_vector(7 downto 0); sel:in std_logic_vector(1 downto 0); dataout:out std_logic_vector(7 downto 0)); end triangle; architecture behav of triangle is signal q:std_logic_vector(8 downto 0); begin process(clk,sel,datain) begin if clk'event and clk='1' then case sel is when \"00\"=> q<='0'&datain; when \"01\"=> q<='1'&datain; when \"10\"=> q<=1023-('0'&datain); when \"11\"=> q<=1023-('1'&datain); end case; 32 南通大学毕业设计(论文) end if; dataout<=q(8 downto 1); end process; end behav; 正弦波产生模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGEND.ALL; Entity sinadd is Port( fclk, reset:in std_logic; Address:out std_logic_vector(5 downto 0) ); end; Architecture behave of sinadd is Begin Process(fclk,reset) Variable cnt: std_logic_vector(5 downto 0):=”00000”; Begin If reset=’1’ then Cnt:=”00000”; Else If fclk=’1’and fclk‘event then Cnt:=cnt+1; End if; End if; Adress<=cnt; End process; 33 南通大学毕业设计(论文) End behave; 锯齿波产生模块 library ieee; use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all; entity juchi is port (clk:in std_logic; datain: in std_logic_vector(7 downto 0); sel:in std_logic_vector(1 downto 0); dataout:out std_logic_vector(7 downto 0)); end juchi; architecture behav of juchi is signal q:std_logic_vector(8 downto 0); begin process(clk,sel,datain) begin if clk'event and clk='1' then case sel is when \"00\"=> q<='0'&datain; when \"01\"=> q<='1'&datain; when \"10\"=> q<=1023-('0'&datain); when \"11\"=> q<=1023-('1'&datain); end case; 34 南通大学毕业设计(论文) end if; dataout<=q(8 downto 1); end process; end behav; 波形选择模块 library ieee; use ieee.std_logic_11.all; use ieee.std_logic_arith.all; entity slect3 is port (sel:in std_logic_vector(1 downto 0); triangle:in std_logic_vector(7 downto 0); square: in std_logic_vector(7 downto 0); sin:in std_logic_vector(7 downto 0); waveout: out std_logic_vector(7 downto 0)); end choosewave; architecture behav of choosewave is begin process(sin,square,triangle,sel) begin case sel is when \"01\" => waveout<=triangle; when \"10\" => waveout<=square; when others => waveout<=sin; 35 南通大学毕业设计(论文) end case; end process; end behav; 幅值调节模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGEND.ALL; Entity value is Port( Cen_en:in std_logic_vector(7 downto 0); clk,big_low: in std_logic; q:out std_logic_vector(7 downto 0) ); End; Architecture behave of value is Bnegin Process(updown,cen_en,clk) Begin If clk’event and fclk=’1’then If updown=’1’ then q<=Cen_en Else q<=’0’&Cen_en(7 downto 1); End if; End if; End process; End behave; 3 6 南通大学毕业设计(论文) 相位累加器模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY controlword is PORT( clk :IN STD_LOGIC; Pulse_Enb :IN STD_LOGIC; Freqword_word :IN STD_LOGIC_VECTOR(11 DOWNTO 0); Phase_word :IN STD_LOGIC_VECTOR(11 DOWNTO 0); Control_word :OUT STD_LOGIC_VECTOR(11 DOWNTO 0) ); END ENTITY controlword; ARCHITECTURE rtl OF controlword IS SIGNAL Control_word_s: STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN line:PROCESS(clk,Pulse_Enb) BEGIN IF(clk'EVENT AND clk='1')THEN IF Pulse_Enb='1' THEN Control_word_s<=Control_word_s+Freqword_word; Control_word <=Control_word_s+Phase_word; ELSE Control_word <=(others=>'0'); Control_word_s<=(others=>'0'); END IF; END IF; END PROCESS line; END ARCHITECTURE rtl ; 37 南通大学毕业设计(论文) 寄存器模块 PROCESS(clk,resetn) BEGIN IF(resentn=’1’) THEN q<=”0000000000000000” ELSIF(clk’EVENT AND clk=’1’) THEN Q<=d; END IF; END PROCESS; 波形存储器 LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGEND.ALL; Entity rom is Port(address:in std_logic vector(8 downto0); Sel:in std_logic_vector(1 downto 0); Dataa;out std_logic_vector(7 downto 0)); End rom; Architecture romsin of rom is Signal addresstemp:std_logic_vector(8 downto 0); Begin Process(address,sel) Begin Addresstemp<=address; If(sel=”00”) then If(address<180) then Data<=(others=>’1’); Else Data<=(others=>’0’); End if; Elsif(sel=”01”) then If(address<180) then Data<=address(7 downto 0); Else Addresstemp<=addresstemp-180; Data<=addresstemp(7 downto 0); End if; Else data<=’0’&address(7downto 1); End if; End process; 38 南通大学毕业设计(论文) End romsin; / 用MATLAB生成sin.mif文件的程序如下: width=10; %宽度是10,指数据位数 depth=1024; %深度是1024,指地址位数 index=linspace(0,pi*0.5,depth); sin_a=sin(index); %归一化 sin_d=fix(sin_a*(2^width-1)); %量化 plot(sin_d); axis([0,depth-1,0,2^width-1]); %开始写mif文件 addr=0:depth-1; str_width=strcat('WIDTH=',num2str(width)); str_depth=strcat('DEPTH=',num2str(depth)); fid=fopen('f:\\sin.mif','w'); %打开或新建mif,存放位置和文件名任意 fprintf(fid,str_width);%如果只写文件名,则在当前目录下建立此文件 fprintf(fid,';\\n'); fprintf(fid,str_depth); fprintf(fid,';\\n\\n'); fprintf(fid,'ADDRESS_RADIX=HEX;\\n');%下面的数据输入选择16进制,可根据情况改写 fprintf(fid,'DATA_RADIX=HEX;\\n\\n'); fprintf(fid,'CONTENT BEGIN\\n'); fprintf(fid,'\%X:%X;\\n',[addr;sin_d]); %开始写数据了 fprintf(fid,'END;\\n'); fclose(fid); 生成ROM参数的VHDL文件如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; LIBRARY ALTERA_MF; USE ALTERA_MF.ALL; ENTITY lpm_rom0 IS 39 南通大学毕业设计(论文) PORT ( address :IN STD_LOGIC_VECTOR(9 DOWNTO 0); Clock :IN STD_LOGIC; q :OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END lpm_rom0; ARCHITECTURE SYN OF lpm_rom0 IS SIGNAL sub_wire0 :STD_LOGIC_VECTOR(9 DOWNTO 0); COMPONENT altsyncram GENERIC( clock_enable_input_a :STRING; clock_enable_output_a :STRING; init_file :STRING; intended_device_family :STRING; lpm_hint :STRING; lpm_type :STRING; numwords_a :NATURAL; operation_mode :STRING; outdata_aclr_a :STRING; outdata_reg_a :STRING; widthad_a :NATURAL; width_a :NATURAL; width_byteena_a :NATURAL ); PORT( clock0 :IN STD_LOGIC; address_a :IN STD_LOGIC_VECTOR(9 DOWNTO 0); q_a:OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); 40 南通大学毕业设计(论文) END COMPONENT; BEGIN q<=sub_wire0(9 DOWNTO 0); altsyncram_component:altsyncram GENERIC MAP( clock_enable_input_a=>\"BYPASS\", clock_enable_output_a=>\"BYPASS\", init_file=>\"sin.mif\", intended _device_family=>\"Cyclone II\", lpm_hint=>\"ENABLE_RUNTIME_MOD=NO\", lpm_type=>\"altsyncram\", numwords_a=>1024, operation_mode=>\"ROM\", outdata_aclr_a=>\"NONE\", outdata_reg_a=>\"CLOCK0\", widthad_a=>10, width_a=>10, width_byteena_a=>1 ) PORT MAP( clock0=>clock, address_a=>address, q_a=>sub_wire0 ); END SYN; 41
因篇幅问题不能全部显示,请点此查看更多更全内容