信号发生器的FPGA实现(毕业设计)_第1页
信号发生器的FPGA实现(毕业设计)_第2页
信号发生器的FPGA实现(毕业设计)_第3页
信号发生器的FPGA实现(毕业设计)_第4页
信号发生器的FPGA实现(毕业设计)_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要IABSTRACTII第1章绪论11.1信号发生器的研究意义与内容11.2信号发生器的发展现状和前景展望11.3信号发生器的总体设计思路3第2章设计简介42.1 FPGA简介42.2 VHDL硬件描述语言介绍62.3 QuartusII软件介绍82.4 RLT级仿真9第3章系统硬件电路设计103.1 信号发生器的系统组成103.2 设计原理113.3 输入部分123.3 D/A数模转换部分14第4章系统的软件设计164.1 系统软件流程图164.2 系统各模块164.2.1 三角波产生模块164.2.2 递减斜坡产生模块194.2.3递增斜坡产生模块214.2.4 方波产生模块234.

2、2.5 阶梯波产生模块254.2.6 正弦波产生模块274.2.7 自定义波形产生模块324.2.8 波形选择器产生模块354.2.9 频率调节器产生模块374.2.10 主控制器产生模块394.3 引脚锁定43第5章信号发生器的仿真455.1递增斜坡的仿真结果及分析455.2 递减斜坡的仿真结果及分析455.3 三角波的仿真结果及分析465.4 正弦波的仿真结果及分析475.5 方波的仿真结果及分析475.6 阶梯波的仿真结果及分析485.6 自定义波形的仿真结果及分析48结束语49参考文献50致谢51信号发生器的FPGA实现毕业设计信号发生器的FPGA实现摘要:信号发生器在各种实验和测试中

3、是必不可少的器件,同时在生产和科技领域中有着广泛的运用,例如在通信、控制、雷达、教学、军事等领域。本次设计的内容是信号发生器的FPGA实现,要求用EAD技术设计一个信号发生器,此信号发生器的实现是利用EDA的硬件描述语言VHDL产生各个模块,然后在Altera公司提供的FPGA/CPLD开发集成环境的Quartus II软件上实现波形的编译、仿真、下载到Cyclone芯片上。信号发生器由波形产生模块、频率调节模块和波形选择模块组成,波形产生模块可以产生三角波、正弦波、方波、阶梯波、递增斜坡、递减斜坡、自定义波形等,通过波形选择模块和频率调节模块可以选择自己所需要的波形和调节一定的频率。关键字:

4、信号发生器;FPGA;EDA;VHDL;QuartusFPGA implementation of signal generatorAbstract:The signal generator is a essential device in various experiments and tests, at the same time, it widely used in the production and technology field, such as communications, controlling, radar, teaching, military and other fi

5、elds. The content of this design is the signal generators implementation of FPGA, it required to design a signal generator with EAD technology, which used EDAs hardware description language VHDL to produce each modules, and then achieved the compilation, simulation and downloads of the waveform to t

6、he Cyclone chip by using Quartus II software on the integrated development environment of FPGA / CPLD which provided bycompany Altera. The signal generator contains the waveform generator module, frequency adjustment module and waveform selection module. The waveform generator module can produce tri

7、angular wave, sine wave, square wave, staircase, ascending slope, descending ramp, custom waveforms, etc., and the waveform selection module and the frequency adjustment module can select the waveform in their needs and adjust the certain frequency.Keywords: Signal Generator; FPGA; EDA; VHDL; Quartu

8、s68第1章 绪论1.1 信号发生器的研究意义与内容信号发生器在系统检测和调试、自动测量和控制、教学实验和测试中是必不可少的一种基本的电子设备,它广泛的应用于通信工程、自动测控、雷达、电子设备以及现代化仪器仪表等多个领域,它可以产生正弦波、递增斜坡、递减斜坡、三角波、锯齿波、方波等多种波形。信号发生器为电子测量工作提供了符合要求的精确的输入电信号和示波器等,几乎涉及电参量测量的都要用到信号发生器。同时信号发生器是一种能够提供各种频率、波形以及输出电平的电信号,经常用来作为测试的信号源或者激励源的设备。综上所述,不论是在生产实践还是在科研与教育上,信号发生器都是电子工程师和电气工程师等信号仿真试

9、验的最佳工具。随着我国经济和科技的迅速发展和进步,对相应的测量仪器也有了更高的要求,信号发生器已经不断成为测量仪器中必不可少的一类,所以对信号发生器的研究具有重大意义。信号发生器的研究内容是利用EDA技术实现信号的产生,EDA技术作为现代电子设计技术的核心,它依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑化简、逻辑分割、逻辑综合、结构综合,以及逻辑优化和仿真测试等项功能,直至实现既定性能的电子线路系统功能。EDA技术使得设计者的工作几乎仅限于利用软件的方式,即利用硬件描述语言HDL和EDA软件来完成对系统硬件功能的实现。ED

10、A技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计技术、ASIC测试和封装技术、FPGA和CPLD编程下载技术、自动测试技术等,在计算机辅助工程方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念。FPGA和CPLD是可编程逻辑件它们的特点是直接面向用户、具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,成本低,上市时间短,技术维护简单,工作可靠性好等。1.2 信号发生器的发展现状和前景展望信号发生器是一种最悠久的测量仪器,早在20年代电子设备刚出现时它就产生了。随着通讯和

11、雷达技术的发展40年代出现了主要用于测试各种接收机的标准信号发生器,使信号发生器从定性分析的测试仪器发展成定量分析的测量仪器。同时还出现了可用来测量脉冲电路或用作脉冲调制器的脉冲信号发生器。由于早期的信号发生器机械结构比较复杂,功率比较大,电路比较简单,因此发展速度比较慢。直到1964年才出现第一台全晶体管的信号发生。从六十年代开始,信号发生器有了快速的发展,逐渐出现了函数信号发生器,在这个时期的信号发生器以采用模拟电子技术为主,它是由模拟集成电路或者分立元件构成,它的电路结构尤其的复杂,并且它只能够产生三角波、正弦波、矩形波和锯齿波等几种简单基本的波形;因为模拟电路结构的漂移比较大,使得它的

12、输出波形的弧度稳定性较差,而且它的电路存在着尺寸大、功耗大和价格贵等缺点,如果要产生复杂的信号波形,那么它的电路结构尤其的复杂。七十年代出现微处理器以后,利用微处理器、D/A和A/D转换器、硬件和软件组成的信号发生器具有强大的功能和能够产生复杂的波形。这个时期的信号发生器主要以软件为主,它的实质是采用微处理器对DAC的程序进行控制,就可以得到简单的波形。然而软件控制波形有一个最大的缺点就是它的输出波形频率低,这是由于CPU的工作速度决定输出波形的频率,如果想要提高波形的频率可以通过改进软件的程序来减少它的执行周期,或者提CPU的工作时钟周期。但是这些方法都是有限的不能完全解决,根本的办法还是要

13、对硬件电路进行改进。随着计算机和信号处理技术的不断发展,数字化技术在电子测量仪器中的应用也得到了极大的促进,使得原有的模拟信号处理慢慢的被数字信号处理替代,从而不断扩充了信号仪器的处理能力,提高了信号测量的精度和准确度以及变换速度,克服了模拟信号处理的缺点,数字信号发生器也随之逐渐发展起来。现在信号发生器的应用是非常宽阔的,种类也很多。信号发生器可以分为通用和专用的两大类发生器,专用的信号发生器主要是为了测量某些特殊值而研发的,例如电视信号和脉冲编码信号发生器等。如果按其产生的频率方法来分类可以分为谐振法和合成法两类。一般的传统信号发生器就是采用谐振法来产生的,即利用具有频率选择性的回路产生正

14、弦振荡的发生器来获得所需要的频率。如今电子测量技术对于信号发生器的频率精确度和稳定度的要求越来越苛刻,要求在较宽的频率范围之内可以获得较高频率稳定度和精确度的输出信号。对于作为一种精密测量的信号发生器,它的频率准确度一般要达到。所以传统的信号发生器已经不能满足现代电子测量的要求。然而,合成的信号发生器具有频率稳定度高,它的频率准确度可以达到或者更高的水平。它可以输出多种波形,具有广泛和精确的输出电平调整,同时具有较宽的频率范围和更小的输出频率间隔,所以应用前景十分的广阔。1.3 信号发生器的总体设计思路信号发生器的实现方法有很多种,包括利用数字电路小规模多器件组合、单片机、以及基于FPGA的实

15、现方法。本设计采用FPGA芯片实现,与用其他方法相比,FPGA不仅可以输出用户所需要的任意波形,而且还可以通过改变信号发生器和计算机的通信接口来拓展信号端口的地址空间,可以增加数据的位数和提高频率分辨率的精度,以及可以增加信号发生器的输出波形种类等的特性。而且它具有高速的传输速率和可靠性高的现场可编程,同时它能够降低成本和系统工作稳定可靠等优点。信号发生器是由信号产生模块、信号控制模块和D/A转换器模块组成,整个系统是以FPGA为核心,加上必要的外围电路来组成。FPGA主要是用来进行初值和时钟分频等,外围电路主要有波形的选择和频率的控制以及数据转换电路,完成波形的显示信息以及控制波形数据的输出

16、等功能。通过不同的选择波形输出后,经过数码转换,将一个数字信号的波形转换为一个模拟信号的波形。本次设计利用的软件是Quartus II 9.1来进行编程和时序仿真,以及产生RTL和各模块的结构框图。第2章设计简介2.1 FPGA简介目前电子产品已渗透到几乎所有的消费领域,针对不同的市场产品需求,器件的专用性越来越强,而产品的升级换代速率快使专用器件的使用周期不断缩短。半导体产业界为降低器件制造成本,希望采用标准化技术生产通用器件,因而推出了超大规模通用可编程逻辑器件(Programmable Logic Device,PLD),以便改变市场需求的专用化和器件功能标准化的突出矛盾。PLD的内部资

17、源结构主要分为阵列型和单元型,互连线方式分为集总型和分布型,编程信息存储主要依赖EEMOS或RAM,每个存储单元载入编程配置数据中的一位。根据可编程逻辑器件的逻辑资源结构、编程工艺和互连方式的不同,可编程器件一般可分为复杂的可编程器件(Complex Programmable Logic Device,CPLD)和现场可编程门陈列(Field Programmaable Gate Array,FPGA)。CPLD的基本结构一般基于含可编程与或阵列和触发器的宏逻辑块(Logic Array Block,LAB)。每个宏逻辑块具有数十个的输入端口和十几个输出端口,逻辑块与逻辑块之间的互连方式一般采

18、用集总连线方式,通过集中在一个全局布线区PIA的可编程互连线结构组成更大规模的PLD。集总型互连方式的连线资源采用长度确定的金属线串联各逻辑单元。由于各逻辑块间的信号传递路径固定,与布局无关,系统的信号延迟时间可预测。CPLD具有强大的时序控制能力,它很适合用来实现控制密集型的数字电路系统。CPLD的I/O端口可以连接到任何端口控制的逻辑块。CPLD的逻辑资源密度较相同芯片面积的FPGA低,配置采用在系统可编程技术,从电可擦除只读存储器保存编程数据,芯片的配置数据将不会断电失效。FPGA是20世纪80年代中期出现的可编程逻辑器件。FPGA和CPLD两者都是可编程逻辑器件,它们都是在PAL、GA

19、L等逻辑器件的基础之上迅速发展起来的,与以前的PAL、GAL等可编辑逻辑器件相比,FPGA和CPLD不仅规模更大而且可以替代几十甚至几千块通用的IC芯片。这类FPGA和CPLD实际上就是一个字系统部件,受到广大的电子工程编辑者的关注和欢迎。经过几十年的不断发展,各个公司相继开发了多种PLD。比较典型的就是Xilinx公司的FPGA和Altera公司的CPLD器件系列,他们的起步比较早,占领了较大的PLD市场。FPGA以基于查找表结构的可编程逻辑元构成庞大的阵列,每个逻辑元的规模不大,输入端不足十个,输出仅1-2个。可编程的连线分布在逻辑元之间的布线区。分布型连线方式的连线资源是分段的,利用长度

20、不同的金属线沿传输路径连接逻辑元。片内互连方式灵活,可人为干预,但信号路径与系统布局有关,布线延时是累加的,不可以预测。FPGA的集成度更高,资源更丰富,适于实现运算能力较强的数据密集型数字系统。FPGA内部配置的阵列一般是采用在电路可重构技术上编辑数据,然后由静态存储器进行保存。当FPGA器件突然失电的时候,静态存储器中的配置数据也会随之消失。FPGA是具有掩模可编辑门阵列的通用可编程结构,它是由逻辑功能块排成阵列并且由可编程的互连资源连接到这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑块(Confi

21、gurable Logic Block,CLB)、输入/输出模块(I/O Block,IOB)和互连资源(Interconnect Resource,IR)。(1)可编程逻辑块CLDCLB是FPGA的主要组成部分,是实现逻辑功能的基本单元,主要由逻辑函数发生器、触发器、数据选择器和变换电路等组成。CLB通常规则地排列成一个阵列,散布于整个芯片之中。(2)输入/输出模块IOB输入/输出模块IOB主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,可配置为输入、输出或双向I/O功能。(3)可编程互连资源IR可编程互连资源IR包括各种长度的连线和一些可编程连接开关

22、,它们将各CLB、各IOB以及CLB与IOB连接起来,构成特定功能的电路。基于EDA软件的CPLD/FPGA设计流程如图2-1。原理图/HDL文本编辑综合FPGA/CPLD配置FPGA/CPLD编程下载时序与功能门级仿真FPGA/CPLD器件和电路系统图2-1应用于FPGA/CPLD的EDA设计流程2.2VHDL硬件描述语言介绍在EDA技术中最重要的组成部分是硬件描述语言HDL,目前常用的HDL主要是VHDL、Verilog HDL、System Verilog和System C。其中VHDL、Verilog HDL语言在现在EDA设计中时最常使用的,也得到了大部分的主流EDA工具的支持。而S

23、ystem Verilog和System C这两种硬件描述语言现在还处于待完善的过程中,主要是为了加强了系统验证方面的功能。VHDL已经是电子设计主流硬件的描述语言之一。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,与1983年由美国国防部(DOD)发起创建,由IEEE(The Institute of Electrical and Electronics Engineers)进一步发展并在1987年作为“IEEE标准1076”发布。VHDL是用于描述数字系统的结构、行为、功能和

24、接口的主要硬件描述语言,它除了具有许多硬件特征的语句之外,VHDL的语言描述方法和语言的格式以及语法和一般的计算机高级语言相似。在描述硬件的结构和行为中,VHDL具有如下几个特点:(1)VHDL语言不仅支持自顶向下的设计方法,它同时还能够支持同步和异步电路、FPGA以及其他随机电路的设计。(2)VHDL可以在很多种EDA工具环境中进行运行,它具有很好的通用性和兼容性。(3)VHDL语言是可以多层次的描述系统硬件功能,可以从系统的数模到门级电路,其高层次的行为描述可以和低层次的结构描述、寄存器传输级描述进行混合使用。(4)VHDL具有电路仿真和验证功能,可以保证程序设计的正确性和有效性,用户不必

25、要编写如何测试相量的程序便可以进行源代码级的调试和仿真,并且编程者可以非常方便地对各种方案进行比较,可以确定它的可行性和优劣性,不必要做任何实际的电路实验和操作。(5)VHDL语言主要是以行为描述为主,它能够从一个比较抽象的角度来描述一个电子实体的各项功能。并且它的语言使用的是结构化语言,因此也能够从一个比较具体的角度来描述电子实体的结构。在VHDL程序设计中有一些经常用到的术语,在进行VHDL的程序编写时,在每个程序的描述中都会用到有一些基础的VHDL程序构造块。如:(1)实体(Entity)。实体是硬件描述语言VHDL设计中最基本的组成部分之一,VHDL表达的所有设计都与实体有关系,是程序

26、设计中最基本的不可缺少的构造块。(2)结构体(Architecture)。所有能够被仿真的实体都必须具有结构体描述语句,结构体语句是用于描述实体的结构或行为的语句。(3)配置(Configuration),一个配置语句是用来绑定一个元器件到实体的结构体的语句,一个配置可以看成是设计的一个元件表。(4)程序包(Package)。在VHDL中,常量、变量、信号等数据对象和数据类型与子程序语句可以在实体说明或结构体说明部分加以说明,且实体说明部分它所定义的常量和数据类型与子程序在对应的结构体中是可见的。(5)属性(Attribute)。属性是描述VHDL实体和结构体、类型以及信号的一些特征,比如数据

27、和预定义数据等。(6)进程(Process)。进程在VHDL中是最具特色的语句,并且是VHDL中执行语句的基本单元。(7)类属(Generic)。一个类属在VHDL中是用于将信息传递给一个实体的参数。例如。具有上升和下降延迟的门级模型。(8)信号驱动器(Driver)。这是一个信号的驱动源。如果一个信号由两个驱动源,那么当两个源都有效时,则信号具有两个驱动器。(9)总线(Bus)。总线通常指的是用于硬件设计中的特定通信方式或一组信号。在VHDL中,一条总线就是一种特定的信号,通常总线可以关闭其驱动器。一个完整的VHDL程序或者说设计实体,是指能够为VHDL综合器所接受,并且能够作为一个单独的设

28、计单元,即以元件的形式存在于VHDL的程序中。VHDL的设计实体基本结构如图2-2。库、程序包实体(ENTITY)配置(CONFIGURATION)结构体(ARCHITECTURE)进程或其他并行结构图2-2 VHDL设计实体结构图2.3QuartusII软件介绍Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。Altera为Quartus II设计软件提供完整的多平台设计环

29、境,它可以轻易满足特定设计的需要。它是单芯片可编程系统设计的综合性环境。Quartus II软件拥有FPGA和CPLD设计的所有阶段的结局方案。Quartus II具有以下主要模块:(1)设计输入。Quartus II软件中的工程由所有设计文件和涉及有关的设置组成。用户可以使用Quartus II Block Editor、Text Editor、MegaWizard Plug-In Manage和EDA设计输入工具建立包括Altera宏功能模块、参数化模块库(LPM)函数和知识产权(IP)函数在内的设计。(2)综合。可以使用Complier的Quartus II Analysis &

30、 Synthesis模块分析设计文件和建立工程数据库。Analysis & Synthesis使用Quartus II Integrated Synthesis综合VHDL设计文件(.vhd)或Verilog设计文件(.v)。用户喜欢的话,可以使用其他EDA综合工具综合VHDL或Verilog HDL设计文件,然后再生成可以与Quartus II软件配合使用的EDIF网表文件(.edf)或(.vqm)。(3)仿真。可以使用Quartus II仿真器在工程中仿真任何设计。视所需的信息类型而定,可以进行功能仿真以测试设计的逻辑运算,也可以进行时序仿真以在目标器件中测试设计的逻辑运算和最差时

31、序。Quartus II软件可以仿真整个设计,或仿真设计的任何部分。可以在工程中将任何设计实体指定为仿真焦点。在仿真时,仿真器仿真焦点实体及其所有附属设计实体。(4)布局布线。Quartus II Timing Analyzer允许用户分析设计中所有逻辑的性能,并协助引导Fitter满足设计中的时序分析要求。如图2-3上排所示的是Quartus II编译设计主控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编、时序参数提取以及编程下载几个步骤。图2-3下排的流程框图,是与上面的Quartus II设计流程相对照的标准的E

32、DA开发流程。图形或HDL编辑分析与综合适配器编辑文件汇编编程器设计输入适配器件仿真下载综合或编译时序分析器图2-3 Quartus II设计流程图2.4 RLT级仿真编写VHDL代码编译检查VHDL运行RTL仿真结果正确否 RLT级仿真是用来验证RLT级的硬件描述语言VHDL的描述是否正确。设计者已经描述了设计对象的行为模型。现在的设计者只要使用表达式设计环境的激励信号来驱动设计,并且进行检验确认结果是否符合自己的所建的行为模型。一个标准的仿真器可以用来读取RTL VHDL描述,而且可以验证设计的正确性。VHDL仿真器读取VHDL语言描述,并且将它们编译成为内部格式,然后使用测试量来执行所编

33、译的格式。设计不仅可以查看输出的仿真结果,而且可以确定设计描述工作是否正确。一般的RTL级仿真步骤如图2-4所示。否 否 是图2-4 RTL级仿真过程第3章系统硬件电路设计3.1信号发生器的系统组成本信号发生器的系统由输入部分、FPGA部分、波形转换部分组成。如图3-1所示。时钟复位波形选择频率选择递增斜坡递减斜坡三角波方波正弦波阶梯波自定义系统控制器波形输出波形的 D/A 转换FPGA部分图3-1信号发生器的系统组成3.2设计原理本设计是利用FPGA实现信号发生器,采用的是自顶向下的设计方法,自顶向下的设计方法现在已经是EDA技术的主要的设计方法,是FPGA的主要设计开发手段。自顶向下的设计

34、流程如图3-2所示。(1)设计说明书(2)建立VHDL行为模型(3)HDL行为仿真(4)HDL-RTL级建模(5)前端功能仿真(6)逻辑综合(7)测试向量生成(8)功能仿真(9)结构综合(10)门级时序仿真(11)硬件测试设计完成图3-2 自顶向下的设计流程信号发生器的FPGA实现是利用硬件描述语言VHDL实现波形的选择、频率的控制和波形的产生。波形的产生是通过VHDL语言进行编程产生一组波形数据,然后把程序下载到FPGA上经过D/A转换输出波形。我们利用Quartus II 9.1软件来建立工作库文件和编辑设计文件、创建工程、全程编译、时序仿真,最后完成整个设计。3.3输入部分输入部分主要包

35、括:基准时钟、信号复位、波形选择、频率控制(1) 基准时钟:时钟的频率选为100MHz。(2) 信号复位:设置为低电平有效。(3) 波形选择:通过按键可以自由选择7种波形。(4) 频率控制:通过按键可以选择1KHz-10KHZ、步进1KHz的任意频率。波形的选择是利用波形控制模块的内部选择端口与外部的按键连接,通过按键的控制产生递增斜坡、递减斜坡、三角波、正弦波、方波、阶梯波和自定义波形,因为只有7种波形,所以设置7个不同的数值来选择波形。例如:按键如果输入的是“001”则输出递增斜坡、输入“010”则输出递减斜坡、输入“011”则输出三角波、输入“100”则输出正弦波、输入“101”则输出方

36、波、输入“110”则输出阶梯波、输入“111”则输出自定义波形。频率的控制也是通过调频模块的内部选择端口与外部的按键相连,通过按键的选择可以产生1KHz-10KHz、步进1KHz的任意频率。因为频率范围为1KHz-10KHZ、步进为1KHz,所以把频率分为10份,每一份用一个按键控制。频率选择的计算,因为频率范围为1KHz-10KHz、步进为1KHz、每个波形的一个周期有256个点,每一个点都是当基准时钟有一个上升沿产生,所以通过分频可以控制信号的频率。当输出频率要求1KHz时,它的周期时间T1=1000s。基准时钟的频率为100MHz,所以它的周期为T2=10ns。因为一个波形由256个数据

37、组成,而每个数据都是在基准时钟有一个上升沿产生,所以当不采用分频时波形的一个周期为T3=2560ns=2.56s。因此调频系数为K=T1/T3=390.625 。所以设置的PK=“110000111”。通过频率调节模块里面的CASE语句,当频率调节按键SELCON1=“0001”时,把“110000111”的值赋给PK,然后输出的波形就是1KHz了。输出频率要求2KHz时: T1=500sT3=2560ns=2.56sK=T1/T3=195.3所以: PK=“0011000011”SELCON1=“0010”输出频率要求3KHz时: T1=330sT3=2560ns=2.56s K=T1/T3

38、=128.9所以: PK=“0010000001”SELCON1=“0011”输出频率要求4KHz时: T1=250sT3=2560ns=2.56s K=T1/T3=97.65所以: PK =“0001100010”SELCON1=“0100”输出频率要求5KHz时: T1=200s T3=2560ns=2.56sK=T1/T3=78.125所以: PK =“0001100010”SELCON1=“0101”输出频率要求6KHz时: T1=167s T3=2560ns=2.56sK=T1/T3=65.2所以: PK =“0001000001”SELCON1=“0110”输出频率要求7KHz时:

39、 T1=143s T3=2560ns=2.56sK=T1/T3=55.85所以: PK =“0000111000”SELCON1=“0111”输出频率要求8KHz时: T1=125s T3=2560ns=2.56sK=T1/T3=48.8所以: PK=“0000110001”SELCON1=“1000”输出频率要求9KHz时: T1=111s T3=2560ns=2.56sK=T1/T3=43.3所以: PK =“0000101011”SELCON1=“1001”输出频率要求10KHz时:T1=100s T3=2560ns=2.56sK=T1/T3=39.06所以:PK =“000010011

40、1”SELCON1=“1010”3.3 D/A数模转换部分数字信号到模拟信号的转换称为模数转换,简称D/A转换。能够现实D/A转换的电路称为D/A转换器或者DAC。为D/A转换器的结构如图3-3所示,它是由数码锁存器、电阻网络、电子开关以及求和电路组成。数码锁存器电子开关电阻网络求和电路 D0 D1 模拟输出 Dn-1Vref图3-3数模转换电路数模的转换过程是需要时间的,数码锁存器的作用是把要保存的数字输入暂时保存起来,方便进行数模转换。电子开关具有两个档位置,一档是接基准电压Vref,另一个档接地。电子开关受到数码锁存器的控制,当数码锁存器中的数字控制字为1时,开关接基准电压Vref,当为

41、0的时候接地。电阻网络是由不同的阻值电阻构成,电阻的一端跟随开关的位置分别接与基准电压Vref或地。求和电路是把电阻网络中的各个电阻上的电流相加起来,然后经过一个输出反馈电阻就可以形成输出电压了。8位的数模转换器DAC0832为典型的D/A芯片。DAC0832的引脚图如图3-4所示,它是由8位的DAC寄存器和8位的输入寄存器、D/A转换器组成。图3-4 DAC0832的引脚图CS片选信号。芯片的寻址输入信号,当CS=0时,芯片处于工作状态,当CS=1是,芯片处于禁止状态而不能工作。ILE允许锁存信号。WR1写信号1。是输入寄存器的写选通信号。 WR2写信号2。XFER通道控制信号。数据传送控制

42、信号的输入线,低电平有效Iout1模拟电流输出1。Iout2模拟电路输出2。 Rfb反馈电阻引出端。 Vref参考电压输入。范围:+10V -10V。Vcc芯片电压。范围+5-+15V,最佳15V。AGND模拟地。DGND数字地。DAC0832可以采用双缓冲器和单缓冲器的两种方式进行工作。采用双缓冲器进行工作时,输入数据寄存器是用于数据采集的,DAC寄存器是用于D/A转换的数据锁存。在这种方式下工作,数模转换的速度较快,但是它的控制电路复杂。采用单缓冲器的工作方式时,由输入数据寄存器来完成数据的采集和数据的锁存,而DAC寄存器仅仅作为一个数据通道。在这种方式下工作,数模转换的速度没有双缓冲器方

43、式那么快,但是它的控制电路简单,所以它是最常用的工作方式。第4章系统的软件设计4.1系统软件流程图信号发生器的FPGA实现是以FPGA为核心来控制波形的输出和频率的调节,通过外部按键可以自由的选择所需要的波形和频率,设计的具体流程如图4-1所示。初始化按键输入,选择所需要的波形和频率由FPGA生成波形数据由Quartus II软件进行仿真输出波形图4-1 系统流程图4.2 系统各模块4.2.1 三角波产生模块(1)三角波的VHDL的描述利用VHDL语言编程产生一个三角波波形数据,同时通过调节PK可以调节三角波形的频率,波形的前128值从1开始依次递增到128,后128个点从127依次递减到0,

44、这样就形成一个以256个数值为一个周期的三角波。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -算符重载函数ENTITY SJB IS-三角波实体PORT( CLK : IN STD_LOGIC;-基准时钟 REST : IN STD_LOGIC;-信号复位 PK : IN STD_LOGIC_VECTOR(9 DOWNTO 0);-频率调节 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-信号输出END ENTITY SJB;ARCHITECTURE HAVE O

45、F SJB IS-三角波结构体SIGNAL B:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(CLK,REST) VARIABLE TEM: STD_LOGIC_VECTOR(7 DOWNTO 0); VARIABLE A: STD_LOGIC;-变量A BEGIN IF REST='0' THEN Q<="00000000"-低电平复位 ELSIF CLK'EVENT AND CLK='1' THEN-CLK上升沿有效 B<=B+1; IF B=PK THEN -判断B是否等于分频系

46、数 B<="0000000000" IF A='0' THEN IF TEM="01111111" THEN-前128个依次递增 TEM:="10000000" A:='1' ELSE TEM:=TEM+1; END IF; ELSE IF TEM="00000001" THEN -后128个依次递减 TEM:="00000000" A:='0' ELSE TEM:=TEM-1; END IF; END IF; END IF; END IF;

47、 Q<=TEM;END PROCESS;END ARCHITECTURE HAVE;(2)三角波的RTL电路图通过选择Quartus II软件中的Tools下的Netlist Viewers命令中的RTL,可以看到文件综合之后生成的应用RTL电路图观察图。三角波的RTL图如图4-2所示。图4-2 三角波的RTL图(3)三角波的结构框图三角波的结构图如图4-3所示,其中PK为频率的控制输入端口,CLk为基准时钟,REST为复位键,Q为输出信号。图4-3 三角波结构框图4.2.2 递减斜坡产生模块(1)利用VHDL语言编程产生一个递减斜坡,通过PK可以进行调节波形的频率,递减斜坡的波形值是从

48、255开始依次递减到0,然后再从255依次递减到0,这样就形成一个以256个数值为一个周期的递减斜坡。LIBRARY IEEE;-递减斜坡USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -算符重载函数ENTITY DJXP IS-递减斜坡实体PORT ( CLK : IN STD_LOGIC;-基准时钟REST: IN STD_LOGIC;-信号复位Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-信号输出PK : IN STD_LOGIC_VECTOR(9 DOWNTO 0);-频率调节END

49、 ENTITY DJXP;ARCHITECTURE HAVE OF DJXP IS-递减斜坡结构体SIGNAL A:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(CLK,REST)VARIABLE TEM: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF REST='0' THEN -低电平复位TEM:="11111111"ELSIF CLK'EVENT AND CLK='1' THEN-CLK上升沿有效A<=A+1;IF A=PK THEN-判断A是否等于分频系数

50、A<="0000000000"IF TEM="00000000" THEN-判断TEM是否等于0TEM:="11111111"ELSETEM:=TEM-1;-从255减到0END IF;END IF;END IF;Q<=TEM;END PROCESS;END ARCHITECTURE HAVE;(2)递减斜坡的电路图通过选择Quartus II软件中的Tools下的Netlist Viewers命令中的RTL,可以看到文件综合之后生成的应用RTL电路图观察图。递减斜坡的RTL图如图4-4所示。图4-4 递减斜坡的RTL图(

51、3)递减斜坡的结构框图递减斜坡的结构框图如图4-5所示,PK为频率控制输入端口,CLk为基准时钟,REST为复位键,Q为输出信号。图4-5 递减斜坡的结构框图4.2.3递增斜坡产生模块(1)利用VHDL语言编程产生一个递增斜坡,通过PK可以进行调节波形的频率,递增斜坡的波形值从0开始依次递增到255,然后再从0依次递增到255,通过输出就形成一个递增斜坡。LIBRARY IEEE;-递增斜坡USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-算符重载函数ENTITY DZXP IS-递增斜坡的实体PORT ( CLK : I

52、N STD_LOGIC;-基准时钟 REST : IN STD_LOGIC;-复位信号 PK : IN STD_LOGIC_VECTOR(9 DOWNTO 0);-频率调节 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -输出信号END ENTITY DZXP;ARCHITECTURE HAVE OF DZXP IS-递增斜坡的结构体SIGNAL A:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGINPROCESS(CLK,REST) VARIABLE TEM: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN IF REST

53、='0' THEN-低电平复位 TEM:="00000000"ELSIF CLK' EVENT AND CLK='1' THEN-CLK上升沿有效 A<=A+1; IF A=PK THEN-判断A是否等于分频系数 A<="0000000000" IF TEM="11111111" THEN-判断变量TEM是否等于255TEM:="00000000" ELSE TEM:=TEM+1;-TEM依次递增 END IF; END IF;END IF;Q<=TEM;END PROCESS;END ARCHITECTURE HAVE;(2)递增斜坡的电路图通过选择Quartus II软件中的Tools下的Netlist Viewers命令中的RTL,可以看到文件综合之后生成的应用RTL电路图观察图。递增斜坡的RTL图如图4-6所示。图4-6递增斜坡的RTL图(3)递增斜坡的结构框图递增斜坡的结构框图如图4-7所示,

温馨提示

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

评论

0/150

提交评论