采用EDA技术的波形发生器的设计_第1页
采用EDA技术的波形发生器的设计_第2页
采用EDA技术的波形发生器的设计_第3页
采用EDA技术的波形发生器的设计_第4页
采用EDA技术的波形发生器的设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、学号: 08446308 常 州 大 学 毕业设计(论文)(2012届)题 目 采用EDA技术的波形发生器设计 学 生 学 院 专业班级 校内指导教师 专业技术职务 校外指导老师 专业技术职务 二一二年六月采用EDA技术的波形发生器设计摘 要:本课题设计了一种采用VHDL硬件描述语言描述并用FPGA实现的正弦波发生器。本课题的研究结合了FPGA控制、LCD字符显示、DAC芯片驱动等相关知识,运用VHDL语言描述了一个具有幅度可控、频率可调和失真较小的正弦波发生器。设计平台为Altera公司的Quartus II 8.0软件,采用Altera公司的Cyclone系列FPGA实现。本设计中的DAC

2、模块采用TLC5620集成芯片来实现,以此来简化设计,并达到本课题的精度要求。本文详细介绍了正弦波发生器的设计过程,包括系统软件方案设计、系统硬件方案设计、芯片选型、编译仿真平台选择、功能模块划分、时钟分频模块设计、主控模块设计、按键去抖模块设计、TLC5620驱动模块设计和LCD显示模块等部分的设计与实现,对深入研究EDA技术和波形发生器具有重大的意义。关键词:EDA;FPGA;VHDL;正弦波发生器Waveform Generator Design Using EDA TechnologyAbstract: This paper designs a sine wave generator

3、using FPGA and VHDL language. The research of this paper is a combination of the FPGA controller, the LCD display, the DAC chip drivers and other related knowledge. We use the VHDL language to describe controllable amplitude, frequency adjustable sine wave generator. The design platform is Altera Qu

4、artus II 8.0 software and Altera's Cyclone series FPGA chip. In order to simplify the design and achieve the accuracy requirements of this subject, the design of the DAC module uses the TLC5620 chip.This paper describes the design process of the sine wave generator, including system software des

5、ign, system hardware design, chip selection, the choice of the compile and simulation platform, the clock frequency module design, the main control module design, key debounce module design, the TLC5620 drive module design and the LCD display module design. The design and realization give me a good

6、chance to understand the EDA technologies and waveform generator.Key words: EDA; FPGA; VHDL; Sine Wave Generator目 录1引言1研究背景1波形发生器的现状1本文结构及内容安排22EDA开发技术概述3EDA技术的含义3EDA的工程设计流程3简介43方案设计与比较5系统功能要求5系统框图5软件方案分析与比较5波形函数方案5波形ROM方案6方案比较6硬件方案设计6设计平台与仿真工具选择6芯片选择方案74FPGA的介绍9FPGA的简介9背景9FPGA与单片机的区别10电路设计中FPGA的应用1

7、1产品设计11系统级应用115系统设计12系统组成及工作原理126FPGA实现与仿真13顶层模块图13模块详细设计13主控模块13时钟分频模块15按键去抖模块16波形存储模块17TLC5620驱动模块18LCD显示模块19FPGA的实现功能197结论21参考文献22致 谢23附 录24 1 引言1.1 研究背景随着现代化集成电路和计算机技术的不断飞跃发展,使得电子产品的设计在市场上的应用更为广泛,而且其实现方法的选择也变得越来越多。基于电路板的设计方法是传统电子产品通用的一中设计方案,这种方法是需要采用较多的固定功能器件,再通过这几器件的设计配合,从而实现模拟电子产品的功能,这些工作的重点就在

8、于如何选择这些器件及怎样设计电路板。由于可编程逻辑器件的出现和计算机性价比的提高,这影响了传统的数字电子系统的设计方法,对其进行了解放性的革命。现在要实现电子系统的功能是通过设计师自己设计的芯片来完成的,之后将传统的固件选用及电路板设计工作放在芯片设计中进行,这种方法是现代电子系统的设计方法。上个世纪九十年代以来,由于复杂化、数字化和大规模集成化的电子产品设计系统的日趋成熟,使得各种电子系统的设计软件也应运而生。在这些专业化软件中,EDA (Electronic Design Automation)具有一定的代表性,EDA技术是一种基于芯片的现代电子系统设计方法。它的优势主要集中在能用HDL语

9、言进行输入、进行PLD(可编程器件)的设计与仿真等系统设计自动化上;上个世纪九十年代,可编程器件又出现了模拟可编程器件,由于受技术、可操作性及性价比的影响,今后EDA技术会向模拟可编程器件的设计与仿真方向发展,并占据市场的一定份额。 EDA技术主要包括大规模可编程逻辑器件、硬件描述语言、开发软件工具及实验开发系统4个方面。其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体硬件,描述语言是利用EDA技术进行电子系统设计的主要表达手段,开发软件工具是利用EDA技术进行电子系统设计的智能化与自动化设计工具,实验开发系统则是提供芯片下载电路及EDA实验、开发的外围资源。数字化是电子设计的

10、必由之路,这已成为共识。在数字化的道路上,我国的电子技术经历了一系列重大的变革。从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。在可编程芯片CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)上实现电子系统的设计,必将成为今后电子系统设计的一个发展方向。所以电子设计技术发展到今天,又将面临另一次更大意义的突破,即CPLD/FPGA在EDA(电子设计自动化)基础上的广泛应用。本设计将采用基于VHDL的EDA设计来实现波形发生器的各种功能【

11、1】。1.2 波形发生器的现状任意波形发生器是在1975年开发成功的,从此,信号发生器产品增加了一个新品种。在任意波形发生器作为测量用信号激励源进入市场之前,为了产生非正弦波信号,已使用函数发生器提供三角波、斜波、方波和余弦波等几种特殊波形。声音和振动分析需要复杂调制的信号源,以便仿真真实的信号,只有借助任意波形发生器,例如医疗仪器测试往往需要心电波形,任意波形发生器很容易产生各种非标准的振动信号。早期的任意波形发生器主要着重音频频段,现在的任意波形发生器已扩展到射频频段,它与数字示波器(DSO)密切配合,只要数字示波器捕获的信号,任意波形发生器就能复制出同样的波形。在电路构成上,数字示波器是

12、模拟/数字转换,任意波形发生器是数字/模拟的逆转换,目前任意波形发生器的带宽达到2GHz,足够仿真许多移动通信、卫星电视的复杂信号。生产数字示波器的仪器公司一般都供应任意波形发生器,如安捷伦、力科、泰克公司,也有只生产任意波形发生器的公司,如雷科、斯坦福公司。仪器有台式、PC机虚拟、VXI总线、PXI总线等多种方式,大部分产品只有1路输出,有的高达16路输出。仪器采样率从最低的100KS/s到4GS/s,相当实时带宽50kHz到最高的2GHz。产生任意波形的方法主要有两种:即存储器和直接数字合成(DDS),前者电路比较简单,分两种形式:相位累加器式与计数器式,但需要较深的存储容量。任意波形发生

13、器的波形定义主要有面板设定、方程式设定、波形下载、软件设定、数字示波器下载、内置编辑器等多种【5】。1.3 本文结构及内容安排本文余下几章的结构及内容安排如下:第二章首先简单介绍EDA开发技术,包括EDA技术的含义,典型的EDA工程设计流程,以及对Quartus II软件的简单介绍。第三章讨论正弦波发生器的方案。针对课题要求,提出两种可行方案,分别进行简单讨论,然后对两种方案进行比较,最终选择基于波形存储的方案。然后,简单介绍本课题使用的硬件,完成芯片选型和设计平台的选择。第四章着重介绍了FPGA,简单介绍了FPGA的结构,介绍了FPGA与单片机的区别,详细阐述了FPGA在电路设计中的应用和一

14、些产品设计及其应用。第五章详细描述了上述方案的FPGA实现。首先给出顶层模块图,然后详细介绍每个模块的功能和代码,以及相应的仿真波形图,最后对仿真结果进行分析。第六章对本文作出总结,并构思下一步的研究内容。2 EDA开发技术概述2.1 EDA技术的含义EDA是电子设计自动化(Electronic Design Automation)的缩写。它是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。2EDA技术可以实现逻辑编译、逻辑

15、化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。2.2 EDA的工程设计流程电子设计的全过程分为物理级、电路级和系统级三个设计层次,涉及的电子系统从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子系统。EDA技术采用系统级的设计方法,其设计流程如图所示。图2.1 EDA的工程设计流程图源程序的编辑:利用文本编辑器或图形编辑器,将设计用文本方式或图形方式表达出来。常用的源程序输入方式有原理图输入、HDL文本输入和状态图输入。逻辑综合和优化:逻辑综合的功能是将

16、软件描述与给定硬件结构联系起来,也就是HDL、原理图或状态图的描述,针对给定硬件结构组件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述文件。目标器件的布线/适配:适配器的功能是将逻辑综合后产生的网表文件配置到指定的目标器件中,并产生最终的下载文件。目标器件的编程/下载:如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,也就是说满足原设计的要求,这时就可以通过编程器或下载电缆将布线/适配器产生的配置/下载文件载入目标芯片FPGA或CPLD中 1 。2.3 Quartus II Max plus II 作为Altera的上一代PLD设计软件,由于其出色

17、的易用性而得到了广泛的应用。目前Altera已经停止了对Max plus II 的更新支持。Quartus II 是Altera公司继Max plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是Quartus II 8.0版,该软件有如下几个显著的特点:1、Quartus II 的优点该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、Verilog HDL

18、以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。2、Quartus II对器件的支持Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系

19、列、FLEX 10K系列,支持MAX7000/MAX3000等乘积项器件。支持MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。支持IP核,包含了LPM/Mega Function宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。3、Qu

20、artus II对第三方EDA工具的支持对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、Exemplar Logic、 Mentor Graphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的Logic Lock模块设计功能,增添 了Fast Fit编译选项,推进了网络编辑性能,而且提升了调试能力 3 。3 方案设计与比较3

21、.1 系统功能要求本设计要求利用实验仪器现有的资源,通过Altera的FPGA器件、D/A芯片、按键输入模块等设计一个全数字化的波形发生器。通过对输入端的控制,可输出正弦波形,并可通过按键对输出波形的频率和幅度进行简单的控制,设计频率变化范围为1Hz-100KHz,幅度变化范围为100mV-5V。由于时钟输入和D/A芯片的性能限制,只选择若干个典型的频率和幅度进行输出,达到演示效果。3.2 系统框图本方案的系统框图如图所示,主要包括。图3.1 系统框图3.3 软件方案分析与比较波形发生器有多种可选的实现方案,一种是根据波形函数通过VHDL写出每一种波形的描述代码,再把产生的数据通过外部的D/A

22、转换成相应的模拟波形;另一种是用其他的工具产生各种波形的16进制代码,通过VHDL描述一个ROM和相应的控制器,再在时钟信号作用下,把数据输出到外部D/A转换成相应的模拟波形。下面分别对两种方案进行介绍。3.3.1 波形函数方案对于采用第一种方案实现,其外部电路主要有:波形选择开关(拨码开关)、D/A转换器(TLC5620)、时钟信号源。1波形发生器的组成电路主要有:信号输入电路,A/D采样电路,时钟电路,FPGA芯片。除FPGA芯片需自行设计外,其他电路在开发板上面实现,只需对它们进行合理控制即可。2考虑D/A采样方法。在设计波形发生器时,对于D/A采用何种方法对信号进行采样也是很关键的,采

23、样方法主要有实时采样和等效采样两种。一般来说,对于使用哪种取样类型取决于测试信号的形式:如果是重复信号波形,采用实时取样和等效取样都行,但使用等效取样方法更为经济。对观察非周期信号和瞬态信号,实时取样方法能更好的处理和分析。3FPGA设计。FPGA设计是关键,它是整个波形发生器的控制中心和数据处理中心,负责完成D/A的控制。在FPGA芯片中,至少需要设计的模块有:D/A控制器,时序产生器,同步器等。D/A控制器:生成采样时钟及D/A采样芯片的控制信号,并读取D/A采样结果。时序产生器:产生各单元所需的各种时钟信号。同步器:产生各种所需的同步信号,用来实现对相应数据的同步传送。3.3.2 波形R

24、OM方案首先在FPGA中设计预先定制好的波形发生ROM表,然后键盘控制FPGA读取ROM表中写好的数据,送至D/A转换芯片,再经过低通滤波器将信号输出的波形进行进一步调整,滤波后由示波器观察输出波形。同时,由键盘输入控制,转换读取数据的ROM表格,来转换输出波形的种类;改变FPGA读取ROM表的读数间隔来改变输出信号的频率,以实现调频。幅度值:首先对被测信号调整,将被测信号放大,满足A/D的采集范围,然后送至A/D,将信号变为8为的数字信号,经过FPGA将数据变为人们可以视觉上认识的字符在LCD上显示出来。频率值:将被测信号经过放大器放大到可以被比较器识别的幅度值,经过比较器过零比较,产生同频

25、率的方波信号,可以被FPGA直接识别,进行计数,经过FPGA内部数据处理,计算出被测信号的频率值,再由液晶显示。3.3.3 方案比较经过上述分析,可以发现两种方案都可以满足本设计的要求。但是基于ROM的方案有其独特的优势,即可以产生任意波形。例如,本设计中要求产生正弦波,所以在ROM中存储正弦波的波形数据,但是如果需要产生其他波形时,只需要向ROM中存入不同的波形数据即可,而不需要改变程序。所以,ROM方案可以用于产生任意波形,所以本设计选择ROM方案产生正弦波。3.4 硬件方案设计3.4.1 设计平台与仿真工具选择Quartus II是一种强有力的提供了EDA工具,是美国Altera公司推出

26、的,它完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、Verilog HDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;Logic Lock增量设计方法,可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用Signal Tap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效

27、的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方SOPC软件使用的VHDL网表文件和Verilog网表文件。测试采用了Quartus II的内嵌式逻辑分析仪内嵌式逻辑分析仪三项主要优点:1. 它们的使用不增加引脚。可通过FPGA 上已有的专门JTAG引脚访问,即使没有其它可用引脚,这种调试方法也能得到内部可视能力。2. 简单的探测。探测包括把结点路由到内部逻辑分析仪的输入,不需要担心为得到有效信息,应如何连接到电路板上,也不存在信号完整性问题。3. 内核是便宜的。FPGA厂商把他们的业务模型建立于用芯片所获取价值的基础上,所以所用的调试

28、IP 通常能以低于$1,000美元的价格获得。3.4.2 芯片选择方案(1)FPGA器件的选择由于Altera大学计划较为普及,设计并平台搭建方便,故采用Altera FPGA。Altera 的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone,Cyclone II;还有一种侧重于高性能应用,容量大,性能满足各类高端应用,如Startix,Stratix II等,用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。Cyclone(飓风):Altera中等规模FPGA,2003年推出,0.13um工艺,1.5v内核

29、供电,与Stratix结构类似,是一种低成本FPGA系列,是目前主流产品,其配置芯片也改用全新的产品。Cyclone II: 2005年开始推出,90nm工艺,1.2v内核供电,属于低成本FPGA,性能和Cyclone相当,提供了硬件乘法器单元Cyclone 即可以满足本次课题的设计需求,所以本课题选用Cyclone。(2)D/A芯片选型根据资料,TLC5620,DAC0832都是逐次逼近型D/A 转换器,性能指标接近。DAC0832是8分辨率的D/A转换集成芯片。电流稳定时间1us;只需在满量程下调整其线性度;单一电源供电(+5V+15V);低功耗,200mW。TLC5620的正常工作温度是

30、0-70 ,Vcc的范围是4.5V至8V,提供5V的电压使其正常工作,转换时间为12微秒,模拟信号电压输入范围是-0.1至Vcc+0.1V,Vef+的范围是Vef-到Vcc,Vef+的范围是GND到Vef+。系统采用8位D/As,即频率范围是2×104至2×106,能够采集前级的输出信号。TLC5620状态机时序与DAC0832相比较为简单,转换速度相对于其他数据转换器较快。由于本设计采用FPGA为处理器,工作频率尽量高的原则,以保证能够测量尽量高频率的信号,本设计采用TLC5620。4 FPGA的介绍4.1 FPGA的简介FPGA(FieldProgrammable Ga

31、te Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。图为FPGA内部结构框图: FPGA内部结构框图4.1.1 背景目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简 单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。

32、在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开

33、发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。1. CPLD与FPGA的关系早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。 CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPG

34、A却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。2. 特点1) 采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2) FPGA可做其它全定制或半定制ASIC电路的中试样片。 3) FPGA内部有丰富的触发器和IO引脚。 4) FPGA是ASIC电路中设计

35、周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 目前FPGA的品种很多,有XILINX公司的Virtex系列、TI公司的TPC系列、ALTERA公司的Stratix系列等。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑

36、关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。4.1.2 FPGA与单片机的区别单片机可以理解为集成在单一芯片上的微型计算机系统,麻雀虽小可是五脏俱全,也有

37、运算器、控制器、存储器、总线及输入输出设备,采用也是存储程序执行的方式,对单片机的编程就是对其中的ROM写入程序,在加电后ROM中的程序会像计算机内存中的程序一样得到逐条的执行。当今的单片机还集成了A/D、D/A转换,并串口等多种与外界进行数据交换的手段。单片机计算速度和性能有限,但在一些基本控制上搓绰绰有余。 FPGA则是操控层次更低,所以自由度更大的芯片,对FPGA的编程在编译后是转化为FPGA内的连线表,相当于FPGA内提供了大量的与非门、或非门、触发器(可以用与非门形成吧)等基本数字器件,编程决定了有多少器件被使用以及它们之间的连接。只要FPGA规模够大,这些数字器件理论上能形成一切数

38、字系统,包括单片机 甚至CPU。FPGA在抗干扰,速度上有很大优势。 4.1.3 电路设计中FPGA的应用连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗4.1.4 产品设计

39、把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建首发团队的状态,只要加入,前途光明

40、产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个近期的发展热点和机遇4.1.5 系统级应用系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用XilinxV-4, V-5系列的FPGA,实现内嵌POWERPCCPU, 然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的。这种山寨味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展

41、方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程类似以上是几点个人开发,希望能帮助想学FPGA但很茫然无措的人理一理思路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的就是速度和深度当然还有市场适应能力。5 系统设计5.1 系统组成及工作原理完整的系统由4个部分组成:波形发生控制电路,波形数据ROM,D/A转换和滤波电路。波形发生控制电路由FPGA来完成,正弦波在一个周期内的波形可以通过

42、数字采样,即用N个幅值离散的等间隔采样点表示。如图为正弦波采样的原理,设其周期为T,采样点数为N,采样间隔为t,T=N*t。那么就可以得到图示的数字信号。要改变其频率只需要改变其采样的时间间隔t,由于采样点数N不变,N=t*T,因此,t越小,T就越大,对应的频率就越大。再通过数模转换,便可以得到光滑的正弦波波。图5.1 正弦波采样原理图FPGA波形发生控制电路通过外来控制信号和高速时钟信号,向波形数据ROM发出地址信号,ROM的大小由采样点的个数决定。波形ROM中存有发生器的波形数据,如正弦波或三角波数据。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。取出采样点的幅值,这样就可

43、以产生数字化的波形。采样点越多,那么得到的波形就越光滑,但是相应的存储器的容量就需要得越大,因此,需要正确的选择采样点数。图 系统工作原理图图为其系统工作原理框图。D/A转换器负责将ROM输出的数据转换为模拟信号,经滤波电路后输出。输出波形的上限频率和D/A器件的转换速度有重要关系,采用的是TLC5620作为D/A转换器件。6 FPGA实现与仿真根据第三章中讨论的系统方案,本章进行详细设计,完成VHDL代码的编写、调试和仿真。本课题采用自顶向下的设计方法,首先按照系统方案,将整个系统划分为几个独立的功能模块,然后分别实现各个模块。本章的第一小节给出顶层模块图,之后的每个小节给出各个模块的功能描

44、述,VHDL代码和仿真波形图,并在最后一节对仿真结果进行分析。6.1 顶层模块图根据系统方案,采用自顶向下的方法来完成FPGA实现。整体方案划分为如下几个主要模块:时钟分频模块、按键去抖模块、主控模块、波形存储模块、TLC5620驱动模块和LCD显示模块。图 顶层模块图6.2 模块详细设计6.2.1 主控模块3. 模块原理主控模块完成本设计的主要控制功能,包括波形幅度和频率的控制、LCD显示控制和DAC芯片控制等。4. 模块主要代码beginprocess(clk)begin if (rst_n = '0') then amp_out <= 0; fre_out <

45、= 1; elsif rising_edge(clk) then amp_inc_tmp <= amp_inc; - 把输入信号进行延迟 amp_dec_tmp <= amp_dec; fre_inc_tmp <= fre_inc; fre_dec_tmp <= fre_dec; ws_tmp <= ws; if amp_inc = '0' and amp_inc_tmp = '1' and amp_out < 3 then - 下降沿触发,在0到3之间变化 amp_out <= amp_out+1; elsif amp

46、_dec = '0' and amp_dec_tmp = '1' and amp_out > 0 then amp_out <= amp_out-1; else NULL; end if; if fre_inc = '0' and fre_inc_tmp = '1' and fre_out < 3 then - 下降沿触发,在1到3之间变化 fre_out <= fre_out+1; elsif fre_dec = '0' and fre_dec_tmp = '1' and

47、fre_out > 1 then fre_out <= fre_out-1;else NULL; end if; if ws = '0' and ws_tmp = '1' and ws_out < 3 then - 下降沿触发,在0到2之间变化 ws_out <= ws_out+1; elsif ws = '0' and ws_tmp = '1' and ws_out = 3 then ws_out <= 0;else NULL; end if; end if;end process;5. 仿真波形图

48、在Active HDL中对上面的代码进行仿真,得到如下波形图。如图所示,波形的幅度和频率可以通过输入信号来调整,实现控制功能。图主控模块仿真图当信号幅度增大按键“amp_inc”出现上升沿时,幅度控制信号“amp_adj”数字增加,当信号幅度减小按键“amp_dec”出现上升沿时,幅度控制信号“amp_adj”数字减小,说明幅度控制正常。同理,当信号频率增大按键“fre_inc”出现上升沿时,幅度控制信号“fre_adj”数字增加,当信号幅度减小按键“fre_dec”出现上升沿时,幅度控制信号“fre_adj”数字减小,说明频率控制正常6.2.2 时钟分频模块1. 模块原理由于电路板上面的时钟

49、为50MHz,频率较高,所以需要对板载时钟进行分频,得到各种需要的时钟频率,下面以产生50KHz的时钟分频模块为例,说明本模块的基本功能。2. 模块主要代码begin reg: process(clk,full) variable cnt:std_logic_vector(15 downto 0):="0000000000000000" begin if clk'event and clk ='1' then。 cnt :="0000000000000000" else cnt:=cnt+1; end if;else full&l

50、t;='0' end if; end if; q<=full;end process ;end;3. 仿真波形图在Active HDL中对上面的代码进行仿真,得到如下波形图。图6.3时钟分频模块仿真图由图可见,输入时钟为频率非常高的信号,而输出信号的频率明显降低,但是由于分频倍数较大,不能准确从图中验证分频倍数。针对这个问题,可以将程序下载到FPGA硬件中,再输出到频谱仪,观察输出信号频率。6.2.3 按键去抖模块1. 模块原理由于物理按键工作的时候,在电平上升沿和下降沿附近都会产生电平抖动,所以需要去抖模块,避免对后续模块造成干扰。2. 模块主要代码begin P0:P

51、ROCESS(reset, clkin) BEGIN if reset = '0' then pre_s <= s0; elsif rising_edge(clkin) then - 在时钟的上升沿状态赋值 pre_s <= next_s; else null; end if; END PROCESS P0; P1:PROCESS( pre_s, next_s, din ) BEGIN case pre_s is when s0 => - 低电平时间不够长,就会跳转回s0 dout <= '1' if din = '1'

52、then next_s <= s0; else - 前几个状态,dout都输出1 next_s <= s1; end if; when s1 => dout <= '1' if din = '1' then next_s <= s0; else next_s <= s2; end if; when s2 => dout <= '1' if din = '1' then next_s <= s0; else next_s <= s3; end if; when s3 =&g

53、t; dout <= '0' - 在状态s3时,dout输出0 if din = '1' then next_s <= s0; else next_s <= s3; end if; end case; END PROCESS P1; end Behavioral;3. 波形原理图在Active HDL中对上面的代码进行仿真,得到如下波形图。图6.4 按键去抖模块仿真图由图可见,按键输入din和输出dout完全匹配,说明按键工作正常。由于按键抖动不容易用软件模拟,所以需要使用硬件实测,在实际工作环境下,观察有无按键抖动现象。6.2.4 波形存储模

54、块1. 模块原理本模块的主要功能是存储正弦波形,波形数据在Matlab中产生,一个周期的采样点数为128,足以保证输出的波形不出现明显失真。2. 模块代码(见附录)3. 波形原理图在Active HDL中对上面的代码进行仿真,得到如下波形图。图6.5 波形存储模块仿真图6.2.5 TLC5620驱动模块1. 模块原理本模块的主要功能是将数据按照TLC5620的时序要求进行输出,具体时序参见TLC5620数据手册。2. TLC5620芯片介绍1) 芯片引脚图:2) 参数介绍:Ø 正常工作温度是0-70 ;Ø ;Ø 提供5V的电压使其正常工作,转换时间为12微秒;Ø 模拟信号电压输入范围是-0.1至Vcc+0.1V,Vef+的范围是Vef-到Vcc,Vef+的范围是GND到Vef+;Ø ;Ø s,即频率范围是2×104至2×106;TLC5620状态机时序与ADC0809相比较为简单,转换速度相对于ADC0804和ADC0809较快。由于本设计采用FPGA为处理器,工作频率尽量高的原则,以保证能够测量尽量高频率的信号,本设计采用TLC5620。3. 模块代码(见附录)4. 波形原理图在Active HDL中对上面的代码进行仿真,得到如下波形图。图 TLC5620驱动模块仿真图6.2.

温馨提示

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

评论

0/150

提交评论