当前位置:文档之家› 基于FPGA的波形发生器设计 本科生毕业设计

基于FPGA的波形发生器设计 本科生毕业设计

本科生毕业设计

毕业设计题目

学生姓名王 欢

所在学院能源与动力工程学院

专业及班级电气工程及其自动化

指导教师于海东

完成日期

摘要

作为信号源的波形发生器在测量中的应用是很广泛的,常用的信号有正弦波、矩形波、锯齿波、三角波等,要得到频率稳定的信号有很多种方法,运用E D A技术,一般采用软硬件相结合的方法来实现。

F P

G A,即现场可编程门阵列,是一种可以由用户自己定义配置的高密度专业集用电路。F P G A具备阵列行P L D的优点,结构又类似掩膜可编程门阵列,因而具有更高的集成度和更强大的逻辑实现能力,使设计变得更加灵活并且更加容易实现。使用F P G A的开发数字电路,大大地缩短了设计需要的时间,与此同时也可以减小印制电路板的面积,使得系统的可靠性和灵活性得到提高。

首先本文系统地介绍了波形发生器的研究背景,接着着重地叙述了利用F P G A和M A X+P L U S完成波形发生器的设计过程。本设计是基于F P G A设计的一款波形发生器,并利用M A X+P L U S仿真软件对设计方案进行仿真,验证方案的可行性与正确性。详细介绍了硬件电路各部分的原理,软件代码分析及M A X+P L U S仿真软件的使用方法,通过选择信号选定正弦波、矩形波、锯齿波、三角波等常规波形的输出。在各个模块的介绍中都给出了详尽的流程图。

关键词:波形发生器,FPGA,M A X+P L U S,EDA

Abstract

As signal source generator is very useful application in the measurement, the commonly used signal has a sine wave, square wave, sawtooth wave, triangle wave, etc., there are many ways to obtain frequency stability of signal, using EDA technology, generally by the method of combining the software and hardware to implement. FPGA, namely the field programmable gate array (FPGA), is a kind of can be defined by the user's own professional sets by using circuit configuration. FPGA has the advantages of line array PLD structure and similar mask programmable gate array (FPGA), and thus has a higher level of integration and more powerful logic implementation ability, make the design become more flexible and more easy to implement. Using FPGA development digital circuit, the time is greatly shortened the design need, at the same time also can reduce the area of the printed circuit board .

First of all, this paper systematically introduces the research background of waveform generator, then emphatically describes the use of FPGA and MAX + PLUS Ⅱcomplete waveform generator design process. This design is a signal generator based on FPGA design, and USES the MAX + PLUS Ⅱsimulation software simulation for design validation plan the feasibility and correctness. Detailed introduces the principle, hardware circuit of each part code analysis software and the use of simulation software MAX + PLUS Ⅱ method, selected by selecting signal sine wave, square wave, sawtooth wave, triangle wave, etc. Conventional waveform of the output. In the introduction of the various modules of the detailed flow chart is given.

Key words: waveform generator, the FPGA, the MAX + PLUS Ⅱ, EDA

目录

目录 (1)

1 绪论 (2)

1.1背景及意义 (2)

1.1.1引言 (2)

1.1.2国内外发展现状 (3)

1.2 现场可编程门阵列(FPGA)概述 (4)

1.2.1 F PGA简介 (4)

1.2.2 F PGA的优缺点 (5)

1.3 V HDL语言概述 (7)

1.3.1 V HDL语言简介 (7)

1.3.2 V HDL语言的优缺点 (8)

1.4 M AX+PLUSⅡ概述 (9)

1.4.1 M ax+plusⅡ简介 (9)

1.4.2 M ax+plusⅡ设计流程及注意事项 (10)

2 波形发生器理论分析 (12)

2.1设计方案选择 (12)

2.2 信号产生原理分析 (13)

2.3 设计要求 (14)

3 波形发生器的硬件电路分析 (15)

3.1硬件电路组成 (15)

3.2 单元电路设计 (16)

3.2.1 J TAG程序下载设计 (16)

3.2.2 输入模块设计 (18)

3.2.3 波形发生模块设计 (18)

3.2.4 D/A转换模块的设计 (19)

3.2.5 信号放大单元设计 (20)

4.波形发生器软件设计 (22)

4.1 软件设计思路 (22)

4.2 各个模块的VHDL程序设计 (23)

4.2.1 各波形生成模块程序的设计 (23)

4.2.2信号控制器的设计 (31)

5.系统性能测试 (33)

6.结论与展望 (37)

致谢 (38)

参考文献 (39)

1 绪论

1.1背景及意义

1.1.1引言

波形发生器是一种常用的信号源,在通信、雷达、测控、电子对抗以及现代化仪器仪表等领域都有着广泛的应用,是一种为电子测量工作提供符合严格技术要求的电信号设备。波形发生器和示波器、电压表、频率计等仪器一样,是最普通、最基本也是应用最广泛的电子仪器之一,几乎在所有电参量的测量都有着波形发生器的身影。波形发生器作为一种测量仪器,历史由来已久,是电子信息领域中必不可少的调试设备为待调试的系统提供精确的信号,如正弦波、三角波等,最早出现在20年代电子设备刚出现之时。随着通讯和雷达技术的发展,40年代的时候,用于测试各种接收机的标准波形发生器诞生了,这是波形发生器从定性分析的测试仪器到定量分析的测试仪器的发展和进步。而可用来测量脉冲电路或用作脉冲调制器的脉冲波形发生器也在同一时间出现在人们的生活中。

从60年代开始,波形发生器有了迅速的发展,出现了函数发生器。这一时期的波形发生器采用的多是模拟电子技术,由分立元件、模拟集成电路组成,这种波形发生器机构复杂,并且产生的波形也只有正弦波、方波、锯齿波和三角波等几种简单波形。

自80年代以后,随着数字技术日益成熟,绝大部分的波形发生器开是采用数字电路取代以前一直使用的机械驱动,从一个频率基准由数字合成电路产生可变频率信号。真正高性能的几种函数波形发生器出现在90年代末,例如HP公司推出的型号为HP770S的,由HP8770A任意波形数字化和HP1770A波形发生软件组成的信号模拟装置系统。

信号发生技术发展至今,引导技术潮流的仍然是国外的几大仪器公司,如日本横河、Agilent.Tektronix等。美国的FLUKE公司的FLUKE-25型函数发生器是现有的测试仪器中多样性功能最强的几种仪器之一,和频率计数器组合在一起的这种仪器,在任何条件下给出的波形质量都很高,给出的正弦波和三角波失真率都很低。

还能给出过冲很小的快沿方波,其最高频率可以达到50MHZ,最大输出幅度也达到10Vpp。当然国内也有不少的公司生产出了类似的仪器,如南京盛普仪器科技有限公司的SPF120DDS波形发生器,华高仪器生产的HG1600H型数字合成函数/任意波形波形发生器。虽然国内波形发生器起步比较晚,但是发展到今天,已经渐渐跟上国际的脚步。

1.1.2国内外发展现状

在70年代前的波形发生器主要分为两类:正弦波波形发生器和脉冲波波形发生器。这个时期的波形发生器采用的多是模拟电子技术,模拟器件构成的电路多存在着尺寸大、价格贵、功耗大等缺点,且若想要产生较为复杂的信号波形,则需要的电路结构就非常的复杂。在70年代后期,微处理器的出现,可以利用处理器、A/D转换器和D/A转换器,硬件和软件相结合使波形发生器的功能得到扩大,产生更加复杂的波形。这时期的波形发生器大多以软件为主,即通过微处理器对DAC 的程序控制,得到各种简单的波形。

1978年,美国Wavetek公司和日本东亚电波工业公司共同公布了最高取样频率为5MHz,可形成256点存储长度的波形数据,其垂直分辨率为8bit,主要用于振动、医疗、材料等领域,这就是第一代高性能信号源。90年代末期,才出现了几种真正高性能、高价格的波形发生器,这段期间HP公司推出了型号为HP770S 的信号模拟装置系统,该装置系统由HP8770A任意波形数字化和HP1776A波形发生软件组成而成。HP8770A实际上不仅只能产生8种波形,而且价格昂贵。到了21世纪,随着集成电路技术的高速发展,多种工作频率可过GHz的DDS芯片面世了,同时也推动了波形发生器的发展。2003年,Agilent的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生的频率高达500MHz,采样的频率也可达 1.25GHz。近几年来,伴随着集成电路技术以及器件水平的提高,国外的一些公司先后推出各种各样的DDS专用芯片,如Qualcomm 公司的Q2230、Q2334,AD公司的AD9955、AD9850、AD9851、AD9852等。 历经近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的性能有了飞速的改善,最显而易见的便是,越来越简单的操作和越来越完善的输出波形。波形操作方法的好坏,取决于波形发生器的控制软件的

质量,编辑功能增加的越多,波形形成的操作性也就越好。函数波形发生器的发展很快,近几年来,国际上的波形发生器技术的发展主要体现在以下几个方面: 过去的波形发生器频率很低,因而应用的范围比较狭小,而现在由于输出波形频率的提高,波形发生器在越来越广的领域得到应用。波形发生器软件方面的开发也使得波形数据的输入变得更加方便和容易。通常来说波形发生器可以用一系列的点、直线或者固定的函数段把波形数据存入存储器。同时还可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成V:f(t)形式的波形方程的数学表达式产生。使得函数波形发生器可以向任意波形发生器的方向发展,各类计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前来说,就可以利用可视化编程语言(如Visual Basic,Visual C等等)来编写任意波形发生器的软面板,这样便可以从计算机显示屏上输入任意波形,来实现波形的输入。

与VXI资源结合。目前,波形发生器有独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线逐渐成熟和对测量仪器的要求变高,使得在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源有着明显的优越性,但由于开发VXI模块的周期比较长,并且需要专门的VXI机箱配套使用,使得波形发生器VXI模块的使用存在一定的局限性,仅用于航空、军事及国防等大型领域。在民用方面,VXI模块的应用远远不如台式仪器更为方便和广泛。

伴随着信息技术的蓬勃发展,经历了一段下坡路的台式仪器,又重新变得普及起来。不过现在的新式台式仪器,和几年前的仪器己有很大的不同。这种新式的台式仪器具有多种特性,可执行的功能越来越多。而且不论外形尺寸还是价格,都比过去的类似产品减少了一半。

1.2 现场可编程门阵列(FPGA)概述

1.2.1 FPGA简介

FPGA是Field Programmable Gate Array的缩写,也就是现场可编程门阵列,FGPA按工艺主要分为Flash工艺和SRAM工艺(工艺是针对它们的编程开关来说

的)两类,它是在基于PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

众所周知,构成数字逻辑系统最基本单元的与门、或门、非门等门电路是由用二极管、三极管以及电阻等元件构成的,然后与门、或门、非门又构成了各种触发器实现状态记忆。FPGA同样是数字逻辑电路的一种,由最基本的门电路元件构成。一片FPGA的内部可以集成上亿个门电路,打破以往实现电子装置需要使用数量繁多的分立器件的历史,使得新装置不仅电路面积、成本大大减小,且可靠性也得到了大幅度的提升。FPGA内部一般是由LE(最小的物理逻辑单位)、输入输出模块、布线网络与片内外设组成的,而最小物理逻辑单元是指用户无法修改的、固定的最小单元,设计者只可以将这些单元通过互联线连接起来,方可实现特定的功能。一个最小物理逻辑单元通常是由LUT、触发器与控制逻辑组成,从而同样能够实现时序逻辑和组合逻辑。

随着FPGA集成度不断增加,FPGA内部的片内外设亦越来越多,可集成SRAM、AD、Flash、RTC等外设,却是真正使用单芯片方案完成的系统设计,故我们所理解的FPGA其实最底层是由一些实实在在的门电路构成的,然后由门电路构成最小的物理逻辑单元,再通过布线层连接成用户需要的特定功能,因而我们所需要控制的仅是布线层之间的互连开关,也就是我们编程的对象。用户便是通过这些开关来改变FPGA的功能的。

基于EDA工具的FPGA开发流程包括:文本/原理图编辑与修改;编译;综合;行为仿真和功能仿真;适配;功能仿真和时序仿真;下载;硬件仿真与测试。

1.2.2 FPGA的优缺点

FPGA器件用于设计数字电路,不仅能够简化其设计过程,而且可以减少整个系统的成本和体积,是系统的可靠性得到加强。它们不需要花费传统数字电路制造集成电路所需耗费的大量时间和精力,同时又避免了投资风险,因而成为电子器件行业中发展最快的一族。

使用FPGA器件来设计数字系统电路的优势主要包括以下几个方面:

1、设计灵活。使用FPGA器件,不仅可以不像标准系列器件一样在逻辑功能

上有所限制,而且可以在系统设计以及使用过程中的任一阶段进行逻辑修改,并且只需通过对FPGA器件进行重新编程即可,使得系统设计提的灵活性得到大大地提高。

2、增大功能密集度。所谓功能密集度就是指在给定的空间所能集成的逻辑功能数量。可编程逻辑芯片内组件门数高,一片FPGA便可以代替几片、几十片乃至上百片中小规模的数字集成电路芯片。用FPGA器件实现数字系统时的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。

3、提高可靠性。减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大地提高了系统的可靠性。具有较高集成度的系统比用许多较低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少实现系统所需要的芯片的数目,在印刷线路板上的引线以及焊点数量也就随之减少了,故而系统的可靠性得到提高。

4、缩短设计周期。由于FPGA器件的可编程性和灵活性,用它来设计一个系统所需要的时间比传统方法大为缩短。FPGA具有较高的集成度和简单的印刷线路板电路布局,在样机设计成功之后,由于具有先进的开发工具,较高的自动化程度,因而对其进行逻辑修改便也十分简便迅速。因此,使用FPGA器件可以较大程度上地缩短系统的设计周期,使得产品投放市场的速度得以提高,产品的竞争能力得以增强。

5、工作速度快。FPGA器件具有较快的工作速度,一般可达到几百兆赫兹,这一点远远大于DSP器件。同时,使用FPGA实现系统所需要要的电路级数又相对较少,这就使得整个系统的工作速度会大大提高。

6、增加系统地保密性能。很多FPGA器件都具有加密功能,也就是说,FPGA 器件的使用可以有效地防止产品被他人非法仿制。

7、降低成本。FPGA器件用于实现数字系统设计时,如果仅考虑器件本身的价格,它的优势并不明显,但如果从多方面综合考虑,成本的优越性就很明显了。首先来说,FPGA器件修改设计方便,设计周期又短,使系统地研制开发费用就会降低;其次,使用FPGA器件可以让印刷线路板面积和需要的插件减少,这就使得系统的制造费用降低;最终,FPGA器件的使用使系统的可靠性得到提高,维修工作量减少,维修费用也就随之降低。总而言之,使用FPGA器件进行系统设计节约

成本。

当然FPGA也是存在一些缺点的,比如:掉电后一般会丢失原有逻辑配置;时序难规划;不能处理多事件;不适合条件操作;存储空间小,不易使用,不能直接用C 语言编程等。

1.3 VHDL语言概述

1.3.1 VHDL语言简介

传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称HDL)。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国国防部于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL,其目的是供美军提高设计的可靠性以及缩减开发周期,但仅在较小的范围内使用。

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

种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

1.3.2 VHDL语言的优缺点

VHDL语言是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用PLD实现其功能。综合起来讲,VHDL 语言具有如下优点:功能强大、设计灵活;支持广泛、易于修改;覆盖面广,描述能力强,是一个多层次的硬件描述语言;VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型;使用期长,独立于器件的设计,与工艺无关;很强的移植能力;易于共享,支持大规模设计的分解和已有设计的再利用;具有良好的可读性,即容易被计算机接受,也容易被读者理解。

综上所述,VHDL语言的优势有:

与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。

对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

但VHDL也并非完美无缺的,自身存在一些缺点,主要体现在以下3个方面:

1、对设计者的硬件电路功底要求较高。若要采用VHDL描述硬件电路需要设计人员具有较多的硬件电路知识,甚至芯片结构方面的知识。应该摆脱一般的高级语言程序设计思路,因为电路世界里的事件往往是并行发生的。硬件电路系统内部的模块可以是相互独立的,也可以是互为因果的。先构思思路,然后才能描述。

2、系统抽象描述能力较差。虽然VHDL能够描述系统级电路,但系统的抽象性不能太强,否则EDA工具无法综合。目前VHDL中的一部分运算和数据类型只能适用于系统建模,如果要综合成实际的硬件电路,存在比较大的困难。

3、不具备描述模拟电路能力。对于模拟电路而言,VHDL并不是一种理想的硬件描述语言。现在,IEEE正致力于设计VHDL的超级VHDL-AMS,这种语言将能够对模拟电路和数模混合电路进行描述,可以预见的是,支持模拟电路和数模混合电路描述将是硬件描述语言的发展方向。

采用VHDL设计硬件电路系统的设计流程一般可以分为以下几个步骤:确定电路具体功能;设计输入;功能仿真;综合、优化和布局布线;时序仿真;编程下载;硬件测试。

1.4 Max+plusⅡ概述

1.4.1 Max+plusⅡ简介

Max+plus的全称是Multiple Array Matrix and Programmable Logic User System (多阵列矩阵及可编程逻辑用户系统Ⅱ)。从最初的第一代A+PLUS,第二代Max+plus,发展到第三代Max+plus,在发展中不断完善,版本不断升级,功能不断强大。Max+plus是Altera公司上一代的PLD开发软件,是Altera公司推出的EDA工具,提供了具有完全集成化的FPGA/CPLD开发环境。Altera是世界上最大可编程逻辑器件的供应商之一。Max+plus具有界面友好,灵活高效和使用便捷的特点,被誉为业界最易用易学的EDA工具软件。设计者无需精通器件内部的复杂结构,只需用熟悉的设计输入工具就可以进行设计了。它支持原理图、VHDL 语言甚至是波形EDIF等格式的文件作为设计输入,并支持这些文件的任意混合设计。在Max+plus中具有门级仿真器,在完成设计输入、元件适配后,可以进行时序仿真和功能仿真仿真结果满意后可以自动将设计转换成目标文件并下载到器件中去,它提供了一种与结构无关的设计环境,能够使设计者方便地进行各种方式的设计输入、快速处理以及器件编程。

1.4.2 Max+plusⅡ设计流程及注意事项

使用Max+plus软件设计流程由以下几部分组成。如图1.1所示

图1.1 开发流程图

1、设计输入。可以采用原理图输入、HDL语言描述、EDIF网表输入及波形输入等几种方式。

2、编译。先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。

3、仿真。仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。

4、编程与验证。用经过仿真确认后的编程文件通过编程器(Programmer)将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能。

在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。

Max+plus编译设计主要包括设计输入编辑、编译网表提取、数据库建立、逻辑综合、逻辑分割、适配、延时网表提取、编程文件汇编(装配)以及编程下载9个步骤。

Max+plus设计的具体步骤及注意事项如下:

1、编辑设计源文件

2、存盘检查并设为工程

注意事项:为工程建立新目录,路径中不能有中文字符。不能把设计文件直接放到根目录中去,否则建立工程时要出错;

扩展名应与文件类型一致:原理图(.gdf)、VHDL(.vhd)<文件名必须与实体名相同>;

Max+plus的错误定位及错误类型判断不是很准确,VHDL查错时如果在当前位置不能发现错误,应往回查找;

不要使用中文全角的“,”与“;”等标点符号,应该使用对应的英文半角的“,”与“;”;

原理图的文件名不能和原理图中调用的任何一个元件符号名称相同,否则会引起冲突;

如果使用到用户生成的元件符号(如keyncode),双击该元件符号,看能不能正确打开生成该元件符号的设计文件(keyncode.vhd),如果不能正确打开设计文件,则编译时肯定会出错,需要手动打开该设计文件并重新生成元件符号,然后关闭调用它的原理图文件再重新打开并再次进行编译。

3、指定目标器件,并锁定引脚,修改编译参数设置:在选择慢速器件时应该去掉“Show Only Fastest Speed Grades”选项。

4、编译设计

5、编辑仿真输入波形文件

注意事项:仿真时间长度(End Time)和栅格长度(Grid Size)的合理设置;

是否打开了“Snap to Grid”选项且输出不需要设置;

6、存盘并关闭仿真输入波形文件

注意事项:文件名与项目名相同:如果项目中存在多个仿真输入波形文件,只会对文件名与项目名称相同的进行仿真,因此需要将原来的输入波形文件改名,再将当前需要仿真的输入波形文件改名为与项目名相同;

存盘后关闭仿真输入波形文件,不然会很影响仿真速度。

7、 打开仿真器窗口,运行仿真过程

注意事项:去掉其中所有的选项,确认Simulation Input给出的仿真输入文件与期望的一致

8、编程下载

注意事项:应确认编程硬件(下载电缆)类型是否已经正确设置。

2 波形发生器理论分析

2.1设计方案选择

硬件电路设计中,所遵循的原则是:尽量使电路简单和模块化,并充分利用软件智能化。因为硬件多了,不但增加体积和成本,而且也使系统的可靠性和性价比下降。因此,本次波形发生器设计遵循这一原则:在实现硬件电路功能的前提下,尽量简化硬件电路设计,并将设计清晰地分成多个模块。根据以上设计原则在以下备选方案中选择方案,图2.1为波形发生器的结构框图。

图2.1 波形发生器的结构框图

方案一:采用模拟分立元件或单片机压控函数发生器来完成设计。可产生方波,正弦波,三角波,通过调整外部元件可以改变输出频率,但是采用模拟器件分散性大,产生的频率稳定性较差、精度低、抗干扰能力差、成本也比较高。

方案二:由单片机来完成设计。目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,因此整个系统显得十分复杂,随着正弦波或三角波采用数据的增加,需要占用系统很多存储资源,造成其抗干扰性差,在运行过程

中容易死机或进入死循环,可靠性降低,而功耗费用增高。

方案三:利用FPGA来完成设计。FPGA编程灵活,可以实现三角波和正弦波的数字化处理,将一个周期内的采样点存储起来,生成频率和幅值都可调的正弦波或者三角波,再通过D/A转换便可得到模拟波形。利用该方法,编程简单,实现灵活。

综上所述,选择方案三来完成设计。

2.2 信号产生原理分析

完整的系统由5个部分组成:波形发生控制电路,波形数据ROM,D/A转换和信号控制电路以及信号放大电路。波形发生控制电路由FPGA来完成,正弦波在一个周期内的波形可以通过数字采样,即用N个幅值离散的等间隔采样点表示。如图2.2为正弦波波形采样的原理,图2.3为三角波波形采样的原理。设其周期为T,采样点数为N,采样间隔为t,T=N*t。那么就可以得到图示的数字信号。要改变其频率只需要改变其采样的时间间隔t,由于采样点数N不变,N=t*T,因此,t越小,T就越大,对应的频率就越小。再通过数模转换,便可以得到光滑的正弦波和三角波。

根据采样精度的不同用户可以设定不同步长的采样正弦数据文件,将做好的数据放入做好的ROM中待用,这就是产生正弦波信号所使用的查表法。

三角波产生的原理比较简单可以采用0—255—0的循环/加减法计数器来实现,方波产生原理则是让计数器在0和255时各保持输出半个周期,锯齿波和阶梯波的产生方法类似。

图2.2 正弦波波形采样原理

图2.3 三角波波形采样原理

FPGA波形发生控制电路通过外来控制信号和高速时钟信号,向波形数据ROM 发出地址信号,ROM的大小由采样点的个数决定。波形ROM中存有发生器的波形数据,如正弦波或三角波数据。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。取出采样点的幅值,这样就可以产生数字化的波形。采样点越多,那么得到的波形就越光滑,输出波形的失真度越小,但是相应的存储器的容量就需要得越大,编写就越麻烦。因此,就需要正确的选择采样点数。一般,在要求不是很严格的情况下取64点即可。

2.3 设计要求

用VHDL设计一个多能波形发生器,根据输入信号的选择输出正弦波、三角波、方波、锯齿波、阶梯波5种信号并在FPGA上实现。波形发生器的控制模块可以用数据选择器来实现,5种信号的选择可以用5选1或8选1数据选择器来实现。

3 波形发生器的硬件电路分析

3.1硬件电路组成

多功能波形发生器的硬件电路由FPGA、D/A转换器、运算放大器、信号输出选择装置、和程序下载等组成,输出波形可用示波器观察,图3.1为多功能波形发生器的硬件电路。

信号产生模块将产生需要的各种功能的信号,这些信号产生可以用多种方式,如计数器直接产生信号输出,或者用计数器产生存储的地址,在存储器中存放信号输出数据。波形发生器的控制模块可以用数据选择来实现,最后将波形数据送入D/A转换器,将数字信号转换为模拟信号,再经过放大器放大后,便能得到一定频率的信号,可由示波器观察输出波形。

图3.1 多功能波形发生器硬件电路

3.2 单元电路设计

3.2.1 JTAG程序下载设计

JTAG是一种国际标准测试协议(IEEE 1149.1兼容),主要用于电路的边界扫描测试和可编程芯片的在线系统编程。现在大多数的高级器件都支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST 为测试复位,输入引脚,低电平有效。

JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP (Test Access Port测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现今,JTAG接口还常用于实现ISP(In-System Programmable;在线编程),对FLASH等器件进行编程。

JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程后再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。

在硬件结构上,JTAG 接口包括两部分:JTAG 端口和控制器。与JTAG接口兼容的器件可以是微处理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、DSP、ASIC 或其它符合IEEE1149.1 规范的芯片。IEEE1149.1 标准中规定对应于数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元BSC。它将JTAG 电路与内核逻辑电路联系起来,同时隔离内核逻辑电路和芯片引脚。由集成电路的所有边界扫描单元构成边界扫描寄存器BSR。边界扫描寄存器电路仅在进行JTAG 测试时有效,在集成电路正常工作时无效,不影响集成电路的功能。

边界扫描测试是在20世纪80年代中期作为解决PCB物理访问问题的JTAG接口发展起来的,这样的问题是新的封装技术导致电路板装配日益拥挤所产生的。边界扫描在芯片级层次上嵌入测试电路,以形成全面的电路板级测试协议。利用边界扫描,自1990年以来的行业标准IEEE 1149.1,您甚至能够对最复杂的装配进行测

试、调试和在系统设备编程,并且诊断出硬件问题。

边界扫描的优点:通过提供对扫描链的IO的访问,可以消除或极大地减少对电路板上物理测试点的需要,这就会显著节约成本,因为电路板布局更简单、测试夹具更廉价、电路中的测试系统耗时更少、标准接口的使用增加、上市时间更快。除了可以进行电路板测试之外,边界扫描允许在PCB贴片之后,在电路板上对几乎所有类型的CPLD和闪存进行编程,无论尺寸或封装类型如何。在系统编程可通过降低设备处理、简化库存管理和在电路板生产线上集成编程步骤来节约成本并提高产量。

边界扫描原理:IEEE 1149.1 标准规定了一个四线串行接口(第五条线是可选的),该接口称作测试访问端口(TAP),用于访问复杂的集成电路(IC),例如微处理器、DSP、ASIC和CPLD。除了TAP之外,混合IC也包含移位寄存器和状态机,以执行边界扫描功能。在TDI(测试数据输入)引线上输入到芯片中的数据存储在指令寄存器中或一个数据寄存器中。串行数据从TDO(测试数据输出)引线上离开芯片。边界扫描逻辑由TCK(测试时钟)上的信号计时,而且TMS(测试模式选择)信号驱动TAP控制器的状态。TRST(测试重置)是可选项。根据相关数据手册中的说明,TRST、TDI、TMS引脚上需要接一个10KΩ的上拉电阻,而TCK需要接一个10KΩ的下拉电阻。

在PCB上可串行互连多个可兼容扫描功能的IC,形成一个或多个扫描链,每一个链都由其自己的TAP。每一个扫描链提供电气访问,从串行TAP接口到作为链的一部分的每一个IC上的每一个引线。在正常的操作过程中,IC执行其预定功能,就好像边界扫描电路不存在。但是,当为了进行测试或在系统编程而激活设备的扫描逻辑时,数据可以传送到IC中,并且使用串行接口从IC中读取出来。这样数据可以用来激活设备核心,将信号从设备引线发送到PCB上,读出PCB的输入引线并读出设备输出。

在嵌入式系统设计中,一些高档的微处理器都带有JTAG接口,方便多目标系统进行测试,同时还可以实现flash编程。

相关主题
文本预览
相关文档 最新文档