多功能波形发生器的设计__毕业论文.doc

上传人:椰子壳 文档编号:3924229 上传时间:2019-10-10 格式:DOC 页数:64 大小:1.85MB
返回 下载 相关 举报
多功能波形发生器的设计__毕业论文.doc_第1页
第1页 / 共64页
多功能波形发生器的设计__毕业论文.doc_第2页
第2页 / 共64页
多功能波形发生器的设计__毕业论文.doc_第3页
第3页 / 共64页
多功能波形发生器的设计__毕业论文.doc_第4页
第4页 / 共64页
多功能波形发生器的设计__毕业论文.doc_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《多功能波形发生器的设计__毕业论文.doc》由会员分享,可在线阅读,更多相关《多功能波形发生器的设计__毕业论文.doc(64页珍藏版)》请在三一文库上搜索。

1、西西 安安大大 学学 毕毕 业业 设设 计(论计(论 文)文) 题 目: 多功能波形发生器的设计 学 院: 电子工程学院 系 部: 光电子技术系 专 业: 光电信息工程 班 级: 学生姓名: 导师姓名: 职称: 副教授 起止时间: 2013 年 3 月 4 日2013 年 6 月 14 日 毕业设计(论文)诚信声明书 本人声明:本人所提交的毕业论文 多功能波形发生器的 设计 是本人在指导教师指导下独立研究、写作的成果,论文中 所引用他人的文献、数据、图件、资料均已明确标注;对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示 感谢。 本人完全清楚本声明的法律后果,申请学位论文

2、和资料若有不 实之处,本人愿承担相应的法律责任。 论文作者签名: 时间: 年 月 日 指导教师签名: 时间: 年 月 日 西安邮电大学西安邮电大学 毕业设计毕业设计(论文论文)任务书任务书 任务与要求任务与要求 开始日期开始日期2013-03-04 完成日期完成日期2013-06-14 系主任系主任(签字签字)2013 年年3 月月17 日日 任务:任务: 1. 掌握可编程逻辑器件的工作原理;掌握可编程逻辑器件的工作原理; 2. 利用可编程逻利用可编程逻 辑器件完成多功能波形发生器的设计并且进行仿真验证;辑器件完成多功能波形发生器的设计并且进行仿真验证; 3. 完成毕业设计论文的撰写。完成毕业

3、设计论文的撰写。 要求:要求: 1. 熟悉可编程逻辑器件的熟悉可编程逻辑器件的 工作原理及工作原理及 VHDL 语言编程;语言编程; 2. 熟悉熟悉 QUARTUS II 软件的使软件的使 用;有一定的数字系统设计能力。用;有一定的数字系统设计能力。 工作进程工作进程 起止时间 工 作 内 容 2013.3.4 2013.3.17 了解多功能波形发生器的功能及工作 原理 2013.3.182013.3.31 熟悉可编程逻辑器件的工作原理, QUARTUS软件的使用以及 VHDL 语言编程的 相关知识 2013.4.12013.4.19 结合多功能波形发生器需要实现的功能, 利用可编程逻辑器件完

4、成多功能波形发生器 的设计; 2013.4.202013.5.19 根据所得结果进行分析,用 Verilog 语 言编程进行仿真,验证设计方案是否能实现 多功能波形发生器的功能以及实现的效果如 何; 2013.5.202013.6.14 整理材料,撰写论文。 主要参考书目(资料): EDA 技术及应用 ModelSim 电子系统分析及仿真等 主要仪器设备及材料: 计算机及相应资料 论文(设计)过程中教师的指导安排: 每周三下午三号实验楼 518 答疑 对计划的说明: 无 指导教师签字: 2013 年 3 月 6 日 西安大学 毕业设计(论文)开题报告 课题名称: 多功能波形发生器的设计 电子工

5、程学院 学院 光电子技术 系(部) 光电信息工程 专业 班 学生姓名: 学号: 指导教师: 报告日期: 2013 年 3 月 11 日 1本课题所涉及的问题及应用现状综述 波形发生器亦称函数发生器,作为实验用信号源,是现今各种电子 电路实验设计应用中必不可少的仪器设备之一。所谓多功能波形发生器 是能够产生大量的标准信号和用户自定义信号,并保证高精度、高稳定 性、可重复性和已操作性的电子仪器。因而它具有广阔的应用前景。 可编程逻辑器件英文全称为:programmable logic device 即 PLD。PLD 是作为一种通用集成电路产生的,它的逻辑功能按照用户对 器件编程来确定。对于可编程

6、逻辑器件,设计人员可利用价格低廉的软 件工具快速开发、仿真和测试其设计。 然后,可快速将设计编程到器 件中,并立即在实际运行的电路中对设计进行测试。 在设计阶段中客户 可根据需要修改电路,直到对设计工作感到满意为止。 这是因为 PLD 基于可重写的存储器技术要改变设计,只需要简单地对器件进行重 新编程。 传统波形发生器大多由振荡器、放大器、衰减器、指示器和调制器 组成。这种传统设计方法的特点是硬件和软件截然不同,设计中不可相 互替代,而且硬件连线复杂,可靠性较差。硬件描述语言 VHDL 和可编程 逻辑器件的广泛应用打破了硬件和软件的屏障。基于 Verilog 语言,以 EDA 技术作为开发手段

7、,采用现场可编程器件作为控制核心实现的波形发 生器,与传统的设计相比较,不仅简化了硬件控制,提高了系统的整体性 能和工作可靠性,也为进一步提高系统集成创造了条件。 本课题所涉及的问题包括了解多功能波形发生器的功能,熟悉可编 程逻辑器件的工作原理、QUARTUS软件的使用及 Verilog 语言编程, 利用可编程逻辑器件完成多功能波形发生器的设计并且进行仿真验证。 2本课题需要重点研究的关键问题、解决的思路及实现预期目标的可 行性分析 本课题需要重点研究的关键问题是利用可编程逻辑器件完成多功能 波形发生器的设计并进行仿真验证。 解决思路是在深入理解多功能波形发生器的功能和可编程逻辑器件 的工作原

8、理的基础上,用 Verilog 语言编程,利用可编程逻辑器件完成 多功能波形发生器的设计并且进行仿真,验证设计方案是否能实现多功 能波形发生器的功能以及实现的效果如何。 3完成本课题的工作方案 2013.3.42013.3.17 了解多功能波形发生器的功能及工作原理; 2013.3.182013.3.31 熟悉可编程逻辑器件的工作原理,QUARTUS软件的使用以及 VHDL 语言编程的相关知识; 2013.4.12013.4.19 结合多功能波形发生器需要实现的功能,利用可编程逻辑器件完成 多功能波形发生器的设计; 2013.4.202013.5.19 根据所得结果进行分析,用 Verilog

9、 语言编程进行仿真,验证设计方 案是否能实现多功能波形发生器的功能以及实现的效果如何; 2013.5.202013.6.14 整理材料,撰写论文。 4指导教师审阅意见 指导教师指导教师(签字): 2013 年 3 月 13 日 I 目录目录 摘要摘要.II ABSTRACT .III 引言引言1 1. EDA 与软件简介与软件简介 2 1.1 EDA 技术发展.2 1.2 FPGA 介绍.3 1.3 Modelsim 介绍.4 1.4 Verilog 与 VHDL 语言介绍 .5 1.5 测试激励文件介绍.5 1.6 软件使用入门.5 1.6.1 系统仿真软件 Modulsim 使用 .5 1

10、.6.2 Quartus II 软件使用 7 2 系统总体设计系统总体设计9 2.1 硬件总体框图.9 2.2 软件总体框图.9 2.3 软件与硬件设计总结10 3 系统各模块设计系统各模块设计11 3.1 时钟模块设计.11 3.2 增斜波设计.13 3.3 减斜波设计.15 3.4 方波设计.18 3.5 三角波设计.20 3.6 正弦波设计22 3.7 阶梯波设计.25 4 系统软硬件联合调试系统软硬件联合调试29 4.1 系统整体模块结构图29 4.2 系统仿真输出图.30 结论结论31 II 致致 谢谢33 参考文献参考文献34 附录附录35 译文译文45 摘要摘要 在函数发生器发展

11、过程中,出现了很多波形发生的方法,其中大部分是利 用 DDS 原理制作而成,比如说由晶体管、运放 IC 等通用器件制作而成,或者 利用单片集成芯片制做而成。但是随着 FPGA 的出现,波形发生的方法更加多 元化。将 DDS 原理成功的移植到 FPGA 中,就能产生多种波形,频率可调,相 位可选的波形发生装置,也可以自行设计方法产生波形,使得开发更加简单。 本文提出了一种基于可编程逻辑器件 FPGA 产生任意波形发生器的设计方 法。完成了在 FPGA 的控制下,产生递增斜波、递减斜波、方波、三角波、正 弦波及阶梯波行,利用 Modelsim 和 Quartus II 进行仿真,验证波形,并给出了

12、实 验结果。实验结果表明,此任意波形发生器能够按照要求输出相应波形,达到 了设计要求。 关键字:关键字:FPGA,斜波;方波;三角波;正弦波;阶梯波 III ABSTRACT With function generator in the rapid development process, there have been many ways to generate waveform,And most of them do it with DDS. For example, a transistor, op amp IC and other common devices made it , Or

13、 the use of monolithic integrated chip system to do. But with the emergence of FPGA, waveform generation method is more diversified. Produce a variety of waveforms, adjustable frequency, phase, selectable waveform generating device.FPGA can design their own methods of generating waveforms, making de

14、velopment easier. This paper proposes a method of arbitrary waveform generator ,which was based on programmable logic device FPGA design .Under the control of the FPGA,it gnenrated increasing oblique wave and decreasing oblique wave, square wave, triangle wave, sine sweep ladder wave line,and then v

15、erify the results by the softwave of Modelsim. The experimental results showed that the arbitrary waveform generator can output waveform accordingly in accordance with the requirements, and has reached the design requirements. Keyword: FPGA,oblique wave, square wave, triangle wave, sine wave and ste

16、p wave 1 引言 在电子、通信、实验教学等领域,高精度、高分辨率、幅度相位可控的信号发 生器有着广泛的应用。信号发生器又称为信号源或者振荡器,在生产实践和科 技领域中有着广泛的应用。 函数发生器是使用最广的通用信号源,提供正弦波、锯齿波、方波、脉冲 波等波形,有的还同时具有调制和扫描功能。 函数波形发生器在设计上分为模拟式和数字合成式。众所周知,数字合成 式函数信号源(DDS)无论就频率、幅度乃至信号的信噪比(S/N)均优于模拟 式,其锁相环(PLL)的设计让输出信号不仅是频率精准,而且相位抖动 (phaseJitter)及频率漂移均能达到相当稳定的状态,但数字式信号源中,数字 电路与模

17、拟电路之间的干扰始终难以有效克服,也造成在小信号的输出上不如 模拟式的函数信号发生器。 本文引入利用 FPGA 来产生阶梯波、三角波、递增斜波、递减斜波、正弦 波、方波。具有以下优势:开发信号发生器简单,容易实现,成本低廉,能够 根据用户需求进行定制等功能。 FPGA 是作为专用集成电路领域中的一种半定制电路而出现的,既解决了 定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。因为其是一 种半定制的电路结构,因而 FPGA 具有很多灵活性,能够根据本系统的需求灵 活改变内部电路,以达到系统的需要。另外一方面,硬件描述语言出现,使得 FPGA 开发随心应手,方便快捷。因为硬件描述语言具有

18、设计的行为特性、设 计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和 波形产生机制, 这样使得从顶层整体架构到底层具体模块的开发,以及后续的验证,时延等更 加方便快捷。 从 FPGA 开发多功能信号发生器的角度来说,因为有了自我定制电路以及 灵活高效的硬件描述语言,使得本系统开发简单,编程容易,可靠性高,代码 冗余量少。而且能够积极扩展,使得设计更加多元化,甚至能做成任意信号发 生器。 2 1. EDA 与软件简介 1.1 EDA 技术发展 在电子设计自动化(英语:Electronic design automation,缩写:EDA)出现 之前,设计人员必须手工完成集成电

19、路的设计、布线等工作,这是因为当时所 谓集成电路的复杂程度远不及现在。工业界开始使用几何学方法来制造用于电 路光绘(photoplotter)的胶带。到了 1970 年代中期,开发人应尝试将整个设计 过程自动化,而不仅仅满足于自动完成掩膜草图。第一个电路布线、布局工具 研发成功。设计自动化会议(Design Automation Conference)在这一时期被创 立,旨在促进电子设计自动化的发展。 从 1981 年开始,电子设计自动化逐渐开始商业化。1984 年的设计自动化 会议(Design Automation Conference)上还举办了第一个以电子设计自动化为 主题的销售展览。

20、Gateway 设计自动化在 1986 年推出了一种硬件描述语言 Verilog,这种语言在现在是最流行的高级抽象设计语言。1987 年,在美国国防 部的资助下,另一种硬件描述语言 VHDL 被创造出来。现代的电子设计自动化 设计工具可以识别、读取不同类型的硬件描述。根据这些语言规范产生的各种 仿真系统迅速被推出,使得设计人员可对设计的芯片进行直接仿真。后来,技 术的发展更侧重于逻辑综合。 目前的数字集成电路的设计都比较模块化(参见集成电路设计、设计收敛 (Design closure)和设计流(Design flow (EDA)) ) 。半导体器件制造工艺需要 标准化的设计描述,高抽象级的描

21、述将被编译为信息单元(cell)的形式。设计 人员在进行逻辑设计时尚无需考虑信息单元的具体硬件工艺。利用特定的集成 电路制造工艺来实现硬件电路,信息单元就会实施预定义的逻辑或其他电子功 能。半导体硬件厂商大多会为它们制造的元件提供“元件库”,并提供相应的标 准化仿真模型。相比数字的电子设计自动化工具,模拟系统的电子设计自动化 工具大多并非模块化的,这是因为模拟电路的功能更加复杂,而且不同部分的 相互影响较强,而且作用规律复杂,电子元件大多没有那么理想。Verilog AMS 就是一种用于模拟电子设计的硬件描述语言。此文,设计人员可以使用硬件验 证语言来完成项目的验证工作目前最新的发展趋势是将集

22、描述语言、验证语言 集成为一体,典型的例子有 SystemVerilog。 随着集成电路规模的扩大、半导体技术的发展,电子设计自动化的重要性 急剧增加。这些工具的使用者包括半导体器件制造中心的硬件技术人员,他们 的工作是操作半导体器件制造设备并管理整个工作车间。一些以设计为主要业 3 务的公司,也会使用电子设计自动化软件来评估制造部门是否能够适应新的设 计任务。电子设计自动化工具还被用来将设计的功能导入到类似现场可编程逻 辑门阵列的半定制可编程逻辑器件,或者生产全定制的专用集成电路。 EDA 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人 员按照“自顶向下”的设计方法,对整个系统

23、进行方案设计和功能划分,系统的 关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完 成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。这样的设 计方法被称为高层次的电子设计方法。下面介绍与 EDA 基本特征有关的几个概 念。 1) “自顶向下”的设计方法 10 年前,电子设计的基本思路还是选择标准集成电路“自底向上”(Bottom Up)的构造出一个新的系统,这样的设计方法就如同一砖一瓦建造金字塔,不仅 效率低、成本高而且容易出错。 高层次设计给我们提供了一种“自顶向下”(TopDown)的全新设计方法,这 种设计方法首先从系统设计入手,在顶层进行功能

24、方框图的划分和结构设计。 在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描 述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对 应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调 试过程是在高层次上完成的,这一方面有利于早期发现结构设计上的错误,避 免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次 成功率。 2) ASIC 设计 现代电子产品的复杂度日益加深,一个电子系统可能由数万个中小规模集 成电路构成,这就带来了体积大、功耗大、可靠性差的问题,解决这一问题的 有效方法就是采用 ASIC(Application Sp

25、ecific Integrated Circuits)芯片进行设计。 ASIC 按照设计方法的不同可分为:全定制 ASIC,半定制 ASIC,可编程 ASIC(也称为可编程逻辑器件)。 设计全定制 ASIC 芯片时,设计师要定义芯片上所有晶体管的几何图形和 工艺规则,最后将设计结果交由 IC 厂家掩膜制造完成。优点是:芯片可以获得 最优的性能,即面积利用率高、速度快、功耗低。缺点是:开发周期长,费用 高,只适合大批量产品开发。 半定制 ASIC 芯片的版图设计方法有所不同,分为门阵列设计法和标准单 元设计法,这两种方法都是约束性的设计方法,其主要目的就是简化设计,以 牺牲芯片性能为代价来缩短开

26、发时间。 4 可编程逻辑芯片与上述掩膜 ASIC 的不同之处在于:设计人员完成版图设 计后,在实验室内就可以烧制出自己的芯片,无须 IC 厂家的参与,大大缩短了 开发周期。 可编程逻辑器件自七十年代以来,经历了 PAL、GAL、CPLD、FPGA 几个 发展阶段,其中 CPLD/FPGA 属高密度可编程逻辑器件,目前集成度已高达 200 万门/片,它将掩膜 ASIC 集成度高的优点和可编程逻辑器件设计生产方便 的特点结合在一起,特别适合于样品研制或小批量产品开发,使产品能以最快 的速度上市,而当市场扩大时,它可以很容易的转由掩膜 ASIC 实现,因此开 发风险也大为降低。 上述 ASIC 芯片

27、,尤其是 CPLD/FPGA 器件,已成为现代高层次电子设计 方法的实现载体。 1.2 FPGA 介绍 FPGA(FieldProgrammable Gate Array) ,即现场可编程门阵列,它是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用 集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不 足,又克服了原有可编程器件门电路数有限的缺点。 以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的 综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主 流。这些可编辑元件可以被用来实现一些

28、基本的逻辑门电路(比如 AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程 式。在大多数的 FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器 (Flipflop)或者其他更加完整的记忆块。 目前市场上开发 FPGA 的主要有两大供应商,一个就是 ALTERA 公司,另 一个就是 Xilinx 公司。 Altera 的主流 FPGA 分为两大类,一种侧重低成本应用,容量中等,性能 可以满足一般的逻辑设计要求,如 Cyclone,CycloneII;还有一种侧重于高性能 应用,容量大,性能能满足各类高端应用,如 Startix,StratixII 等,用户可以根

29、据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器 件。 MAX+PLUSII:普遍认为 MaxplusII 曾经是最优秀的 PLD 开发平台之一, 适合开发早期的中小规模 PLD/FPGA 由 QuartusII 替代,不再推荐使用。 QuartusII:Altera 新一代 FPGA/PLD 开发软件,适合新器件和大规模 FPGA 的开发,已经取代 MaxplusII。 SOPC Builder: 配合 QuartusII,可以完成集成 CPU 的 FPGA 芯片的开发工 5 作 DSP Builder: QuartusII 与 Matlab 的接口,利用 IP 核在 M

30、atlab 中快速完成 数字信号处理的仿真和最终 FPGA 实现。 Xilinx 的主流 FPGA 分为两大类,一种侧重低成本应用,容量中等,性能 可以满足一般的逻辑设计要求,如 Spartan 系列;还有一种侧重于高性能应用, 容量大,性能能满足各类高端应用,如 Virtex 系列,用户可以根据自己实际应 用要求进行选择。 在性能可以满足的情况下,优先选择低成本器件。 ISE:Xilinx 公司集成开发的工具 Foundation: Xilinx 公司早期的开发工具, 逐步被 ISE 取代 嵌入式开发套件(EDK): 用于开发集成 PowerPC 硬核和 MicroBlaze 软 核 CPU

31、 的工具 System Generator for DSP :配合 Matlab,在 FPGA 中完成数字信号处理的 工具 1.3 Modelsim 介绍 Mentor 公司的 ModelSim 是业界最优秀的 HDL 语言仿真软件,它能提供友 好的仿真环境,是业界唯一的单内核支持 VHDL 和 Verilog 混合仿真的仿真器。 它采用直接优化的编译技术、Tcl/Tk 技术、和单一内核仿真技术,编译仿真速 度快,编译的代码与平台无关,便于保护 IP 核,个性化的图形界面和用户接口, 为用户加快调错提供强有力的手段,是 FPGA/ASIC 设计的首选仿真软件。 ModelSim 分几种不同的版

32、本:SE、PE、LE 和 OEM,其中 SE 是最高级的 版本,而集成在 Actel、Atmel、Altera、Xilinx 以及 Lattice 等 FPGA 厂商设计 工具中的均是其 OEM 版本。SE 版和 OEM 版在功能和性能方面有较大差别, 比如对于大家都关心的仿真速度问题,以 Xilinx 公司提供的 OEM 版本 ModelSim XE 为例,对于代码少于 40000 行的设计,ModelSim SE 比 ModelSim XE 要快 10 倍;对于代码超过 40000 行的设计,ModelSim SE 要比 ModelSim XE 快近 40 倍。ModelSim SE 支持

33、 PC、UNIX 和 LINUX 混合平台; 提供全面完善以及高性能的验证功能;全面支持业界广泛的标准;Mentor Graphics 公司提供业界最好的技术支持与服务。 1.4 Verilog 与 VHDL 语言介绍 Verilog HDL 语言是一种硬件描述语言,用于从算法级、门级到开关级的 多种抽象设计层次的数字系统建模。其具有下述描述能力:设计的行为特性、 设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延 和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL 语言 6 提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计, 包括

34、模拟的具体控制和运行。 VHDL 语言是一种用于电路设计的高级语言。VHDL 主要用于描述数字系 统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电 路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分) ,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面 后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。 1.5 测试激励文件介绍 测试激励也叫 testbench,它是一种验证的手段。

35、首先,任何设计都是会有 输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进 行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟 平台”的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验。 用通俗的话来表示:测试激励就是启动模块的钥匙,它能够模拟模块的输 入变量,使其能够按照工程师的要求进行工作。 1.6 软件使用入门 1.6.1 系统仿真软件 Modulsim 使用 Modulsim 是目前市场上最流行的 FPGA 仿真软件,以其卓越的性能和操作 简单性著称。下面以 Modelsim 10.0 来做个使用向导。 1) 软件安装好之后,打开软件

36、modulsim,点击 FILE-new-project,将出现 如图 1-4 所示画面,起名为 test。 图 1-4 新建工程 7 2) 在如图 1-5 所示界面添加 verilog 文件与测试文件,然后进行编译,将出 现图 1-6 所示画面 图 1-5 添加文件 图 1-6 编译结果 3) 双击测试文件,tb_sysgen 将出现图 1-7 所示现象,然后在测试文件 tb_sysgen 上右击选中 start simulation ,会出现如图 1-8 所示现象。 8 图 1-7 点击仿真 图 1-8 添加波形 4) 运行仿真,将开始进行波形仿真,如图 1-9 所示: 9 图 1-9 波

37、形仿真图 1.6.2 Quartus II 软件使用 Quartus II 软件是目前市场上最流行的 FPGA 开发综合软件,它的开发者是 altera 公司。其容易操作,具有良好的可视化,开发简单,易于被初学这接受。 以下介绍 Quartus II 12.0 的简单使用。 1) 打开 Quartus II 软件,点击 File 选项,然后选择 new,选择 new Quartus II project,选择好器件以及存放路径,就建立好工程文件了,如图 2- 10。 10 图 1-10 新建工程 2) 点击 File,选择 new,新建 verilog HDL,比如文件名字叫 test。编程完

38、 毕之后,可以编译下,看看有没有语法错误,如果没有语法错误,则进 入测试文件建立模块。 3) 点击菜单栏中 processing,选择 start,选择 start testbench template write。 此时会自动生成 testbench 模板到项目文件夹 simulation 里面,后缀为.vt ,这时候就可以通过 modulesim 进行仿真了。 2 系统总体设计 本系统是基于 FPGA 开发的多功能波形发生器,利用硬件描述语言 Verilog 进行编程,Quartus II 上进行编译,并仿真验证结构,接着利用 Modelsim 进行再次仿真验证,以达到本系统的要求,产生增

39、斜波、减斜波、方 波、三角波、正弦波、阶梯波形。但是确定该方案之前还是有很多方案: 方案一: 用分立元件组成的函数发生器:通常是单函数发生器且频率不高, 其工作不很稳定,不易调试 方案二:可以由晶体管、运放 IC 等通用器件制作,更多的则是用专门的函 数信号发生器 IC 产生。早期的函数信号发生器 IC,如 L8038、BA205、XR2207/2209 等,它们的功能较少,精度不高,频率上限只有 300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能 独立调节,二者互相影响。 方案三:利用单片集成芯片的函数发生器:能产生多种波形,达到较高的 11 频率,且易于调试。鉴于此

40、,美国美信公司开发了新一代函数信号发生器 ICMAX038,它克服了(2)中芯片的缺点,可以达到更高的技术指标,是上述 芯片望尘莫及的。MAX038 频率高、精度好,因此它被称为高频精密函数信号 发生器 IC。在锁相环、压控振荡器、频率合成器、脉宽调制器等电路的设计上, MAX038 都是优选的器件。 方案四: 利用专用直接数字合成 DDS 芯片的函数发生器:能产生任意波 形并达到很高的频率。但成本较高 相比以上四种方案,利用 FPGA 进行开发具有自己的优势性: 1) 可以根据自己的需求进行定制特定的电路; 2) 综合仿真容易实现,拥有 Quartus II、Modelsim 和 ISE 等

41、软件编程; 3) 可编程性强,Verilog 语言编程语法比较类似与熟悉的 C 语言,学习简 单易用 2.1 硬件总体框图 硬件设计主要包含三个模块,即时钟产生模块、FPGA 信号产生模块、D/A 数 模转换模块。总体框图如图 3-1 所示 图 3-1 时钟模块是用来给 FPGA 提供基准时钟,其稳定性决定了信号产生器的稳定; FPGA 信号产生模块是各种波形信号产生如:正弦波,方波,斜波,锯齿波, 三角波,波形频率设定;D/A 数模转化模块是将 FPGA 输出的数据整合成模拟 的波形。 图 3-2 12 2.2 软件总体框图 软件系统设计主要包含三个模块,即基于 altera 公司的 Qua

42、rtus II 分频模块, 波形产生模块,仿真软件 Modelsim 波形仿真模块。总体设计如图 3-2 所示。 时钟分频模块是指将基准时钟进行分频,以达到变换频率的功能。波形产 生模块用来产生各种波形,如增斜波,减斜波,正弦波,阶梯波形,方波。数 字输出模块,将各种波形用数字进行输出。 2.3 软件与硬件设计总结 综上所述软硬件结构,利用时钟模块产生基准时钟传输到 FPGA 上, FPGA 利用锁相环对时钟倍频产生更高的时钟频率,然后根据用户需要,对时 钟进行分频,产生不同频率的波形。通过 Verilog 语言进行编程来产生各种波形, 输出到 DA 数模转换模块,产生模拟波形信号。 3 系统

43、各模块设计 3.1 时钟模块设计 时钟模块的功能是分配系统时钟,使得 FPGA 输出不同的频率的波形。根 据这个功能,利用 Verilog 编写了分频时钟模块。利用 ALTERA 公司开发的 Quartus II 软件进行综合,布线之后,得到如图 3-1 模块原理图: 13 图 3-1 分频时钟模块 时钟模块 Verilog 代码如下: module clk_div( sysclk, reset, div , clk_out ); input sysclk,reset; input 7:0 div; output clk_out; reg clk_out; /reg clk_out_tmp=0

44、; reg 7:0 count; reg 7:0 div_2; always (posedge sysclk or negedge reset) begin if(!reset) begin clk_out = 0; count = 0; div_2 = div1; end else begin if(count=div_2)begin clk_out = clk_out; count = 0; end else count = count + 1; end end endmodule 从图 3-1 和时钟模块代码中可以得到以下信息: 模块的输入变量是:外部基准时钟 sysclk,模块复位输入

45、 reset,分 14 频系数输入 div,波形时钟输出 clk_out; 复位输入 reset 低电平时,时钟模块复位,系统不运作; 分频系数 div 决定波形时钟,其分频计算公式是: ,比如说 div 值为 1,则输出时钟是系 1div 系统时钟频率 输出时钟频率 统时钟的二分之一; 根据以上程序,编写了下列测试程序: module tb_clkdiv; / Inputs reg sysclk; reg reset; reg 7:0 div; / Outputs wire clk_out; / Instantiate the Unit Under Test (UUT) clk_div uu

46、t ( .sysclk(sysclk), .reset(reset), .div(div), .clk_out(clk_out) ); always #10 sysclk = sysclk; initial begin / Initialize Inputs sysclk = 0; reset = 0; div = 0; / Wait 100 ns for global reset to finish #100; reset = 1; div = 1; #200; div = 2; end endmodule 15 从上述激励中看出,div=1,也就是 2 分频,系统的运行周期是 20ns。利

47、用 Modelsim 软件对时钟模块进行仿真,结果如图 3-2 所示: 图 3-2 两分频时钟波形 从图中可以看出在 div=1,rest=1 的情况下,输出时钟 clk_out 是输入时钟 clk_in 的一半,这很好地证明了分频时钟的正确性。 再用 Quartus II 软件进行综合仿真,结果如图 3-3 所示。 图 3-3 两分频时钟波形 从图 3-3 所示的时钟波形来看输出时钟 clk_out 时钟频率是输入时钟的一半, 但是存在小量的延时,比如说以 1us 为周期的情况下,延时大约是 0.25us,但 是由于我们采用分频后的时钟作为产生波形的基准时钟,所以这点延时不影响 整个结果。

48、综上所述,该时钟分频模块能够将输入时钟频率按照自己系统需求分配出 不同频率。 3.2 增斜波设计 增斜波是指波形按照一定的步幅递增,达到最高点后又回到值为零的状态, 这样循环进行。按照这种思想设计出来软件流程图如图 3-4 所示。 16 图 3-4 增斜波软件流程图 根据图 3-4 所示软件流程图设计出增斜波模块的模块框图,如图 3-5 所示。 图 3-5 增斜波模块框图 从图 3-5 中来分析该模块的输入输出模块以及引脚定义: 模块的输入变量是:外部基准时钟 sysclk_in,模块复位输入 reset_in,分频系数输入 div。输出时钟波形时钟输出 Qout_add; 复位输入 reset 低电平时,时钟模块复位,系统不运作; 分频系数 div 决定波形时钟,其分频计算公式是: ,比如说 div 值为 1,则输出时钟是系 1div 系统时钟频率 输出时钟频率 统时钟的二分之一; Qout_add 是增斜波模块的波形输出。 根据软件流程图以及模块框图中输入输出引脚定义,使用 Verilog 语言设计了以 下代码: module add( 开始 rest, sysclk, div输入 输出递增 波形 结束 分频 初始化变量rest=1 NO YES 17 SysClk ,/系统时钟 rest,/复位开关,低电平复位 div,/分频 Qout_add /递增斜

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1