基于fpga的DDS信号波形发生器_第1页
基于fpga的DDS信号波形发生器_第2页
基于fpga的DDS信号波形发生器_第3页
基于fpga的DDS信号波形发生器_第4页
基于fpga的DDS信号波形发生器_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、基于FPGA的信号发生器设计摘要作为一种新的频率合成技术,数字频率合成技术(DDS技术)能够应用到基于FPGA的信号源设计中。由于微电子技术的快速发展以及数字电路的集成化越来越高,基于FPGA的DDS技术的优越性越来越突出。直接数字频率合成器(DDS技术),它是一种频率合成器,实现方法全数字化,它的组成由相位累加器、存储波形的ROM、D/A(数模转换器)和低通滤波器。DDS技术有着较高的频率分辨率,并且可以快速切换频率、能够时刻保持相位连续等很多优点。M提供定制实物仿真服务.本文首先介绍了DDS技术的发展以及DDS技术在信号源中的应用,其次介绍了FPGA以及quartus和vhdl等方面的相关

2、知识,再其次介绍FPGA和DDS技术设计信号源的思路以及硬件设计图,最后对基于FPGA和DDS技术的信号源设计做出仿真和验证,并且验证本设计的合理性并对本设计的方案提出改进。关键词:FPGA,VHDL,DDS,信号源 DESIGN OF SIGNAL GENERATOR BASED ON FPGAABSTRACTAs a new technology of frequency synthesis, digital frequency synthesis technology (DDS Technology) can be applied to the design of signal sour

3、ce based on FPGA. Due to the rapid development of microelectronics and integrated more and more digital circuit, based on the advantage of FPGA DDS technology is more and more prominent. Direct digital frequency synthesizer (DDS), it is a kind of frequency synthesizer, realization of full digital, i

4、t consists of the phase accumulator, stored waveform ROM, DA (DAC) and low pass filter. The DDS technique has a high frequency resolution, fast switching frequency, continuous phase and many advantages to keep time. This paper firstly introduces the application of the development of DDS technology a

5、nd DDS technology in the signal source, then introduces the related knowledge of FPGA and quartus and VHDL etc., then followed by the introduction of ideas as well as the hardware design of FPGA and DDS technology to design the signal source, the design of signal source based on FPGA and DDS technol

6、ogy to make the simulation and verification and validation, the rationality of design and the design scheme is proposed to improve. Key words: FPGA, VHDL, DDS, Signal Source目 录TOC o 1-3 h u HYPERLINK l _Toc27293 TOC o 1-3 h z u HYPERLINK l _Toc356138785 ABSTRACT PAGEREF _Toc356138785 h 2 HYPERLINK l

7、 _Toc356138786 第一章 绪论 PAGEREF _Toc356138786 h 4 HYPERLINK l _Toc356138787 1.1引言 PAGEREF _Toc356138787 h 4 HYPERLINK l _Toc356138788 1.2 基于FPGA的DDS的信号源 PAGEREF _Toc356138788 h 4 HYPERLINK l _Toc356138789 1.3 本论文研究目的和主要内容 PAGEREF _Toc356138789 h 5 HYPERLINK l _Toc356138790 第二章 FPGA设计相关知识简介 PAGEREF _To

8、c356138790 h 6 HYPERLINK l _Toc356138791 2.1 FPGA简介 PAGEREF _Toc356138791 h 6 HYPERLINK l _Toc356138792 2.1.1 FPGA的概述 PAGEREF _Toc356138792 h 6 HYPERLINK l _Toc356138793 2.1.2 FPGA结构介绍 PAGEREF _Toc356138793 h 6 HYPERLINK l _Toc356138795 2.2 Quartus II开发系统 PAGEREF _Toc356138795 h 8 HYPERLINK l _Toc35

9、6138796 2.3 硬件描述语言简介 PAGEREF _Toc356138796 h 10 HYPERLINK l _Toc356138797 第三章 FPGA设计DDS原理介绍 PAGEREF _Toc356138797 h 14 HYPERLINK l _Toc356138798 3.1 系统设计及原理图 PAGEREF _Toc356138798 h 14 HYPERLINK l _Toc356138800 3.2 DDS工作模块 PAGEREF _Toc356138800 h 15 HYPERLINK l _Toc356138801 第四章 FPGA主程序的实现 PAGEREF _

10、Toc356138801 h 18 HYPERLINK l _Toc356138802 4.1 FPGA控制DDS的信号源软件程序设计 PAGEREF _Toc356138802 h 18 HYPERLINK l _Toc356138804 4.2 FPGA内部模块 PAGEREF _Toc356138804 h 19 HYPERLINK l _Toc356138806 4.3 FPGA控制DDS波形输出模块 PAGEREF _Toc356138806 h 25 HYPERLINK l _Toc356138807 4.4 FPGA控制DDS整体模块设计和仿真波形 PAGEREF _Toc356

11、138807 h 34 HYPERLINK l _Toc356138808 4.5 FPGA控制DDS的信号源结论 PAGEREF _Toc356138808 h 36 HYPERLINK l _Toc356138809 第五章 实验结论与研究展望 PAGEREF _Toc356138809 h 38 HYPERLINK l _Toc356138810 5.1 研究展望 PAGEREF _Toc356138810 h 38 HYPERLINK l _Toc356138811 5.2 结束语 PAGEREF _Toc356138811 h 38 HYPERLINK l _Toc356138812

12、 第六章 全文总结 PAGEREF _Toc356138812 h 40 HYPERLINK l _Toc356138813 附录 PAGEREF _Toc356138813 h 42 绪论M提供定制实物仿真服务1.1引言信号源是一种为测试信号提供信号的仪器,对于很多测试系统,信号源有极其重要的作用,很多现代电子设备和系统的功能都依赖于所用频率源的性能,而当今高性能的频率源都是通过频率合成技术来实现。传统的频率合成器有直接频率合成器和锁相环两种,直接数字频率合成技术是一种新型的频率合成技术,它是一种采用数字化技术,通过控制相位的变化速度,直接产生各种不同频率信号的频率合成方法。随着直接数字频率

13、合成(DDS)技术的发展,很多公司开发出了功能各异的DDS专用集成芯片,同D/A转换器和低通滤波器(LPF)一起可以组成任意波形信号的发生器,但因其控制方式相对固定,所以无法满足各种需要。近年来现场可编程门阵列(Field Programmable Gate Array简称:FPGA)技术得到了迅速发展和广泛应用,其工作频率、资源容量以及集成度都有了极大提高,这使得利用FPGA实现某些专用数字集成电路的方法引起了大家的关注。基于FPGA实现的直接数字频率合成器充分发挥了FPGA可编程的优点,与专用芯片构成的DDS系统相比具有以下优点:灵活的接口和控制方式、转换时间短、带宽大、相位连续变化和频率

14、分辨率高等,这为设计者实现高性能的DDS系统提供了一种灵活且实用的方法。1.2 基于FPGA的DDS的信号源基于FPGA设计的DDS信号源,它是一种全数字技术,是一种基于相位产生所需波形的技术,它在1971年被提出,由于当时科学技术水平低,器件发展水平不高,和当时的技术相比,DDS的性能远远跟不上要求,以至于人们当时不重视DDS技术。随着科学技术的发展,DDS技术有了突飞猛进的发展。它的很多性能是其他频率合成的方法所无法比拟的,很快成为领先者。最初DDS是DDS芯片,但是随着FPGA技术的发展,由于FPGA有很多逻辑资源,可以通过FPGA去模拟DDS信号源,而且由于作为主控制芯片,可以节省DD

15、S芯片,从而更加节省资源,经济实用型以及便捷可设计性更好。基于FPGA的DDS的信号源,它需要设计波形存储器存储所需要产生的波形,比如正弦波,三角波,方波,锯齿波,等波形,还可以产生任意波形,只需要改变波形存储器中存储的波形即可,因此具有良好的可设计性以及可移植性,同时根据需求可以设计出所需要性能的DDS信号源,结合FPGA以及DA芯片设计DDS信号源,可以达到很多设计要求的精度,输出的模拟波形相位连续,相位噪声低。1.3 本论文研究目的和主要内容随着科学的发展,人们在信号源的研究与发展上取得了很大的突破,尤其是对基于DDS的信号源的研究有了突飞猛进的研究,同时人们对信号源的性能的要求越来越高

16、,比如信号源的分辨率,相位噪声等。而信号源的精度等性能对工业,农业以及国防,教育,电子等事业测量的准确性都有着很大的影响,由于在通信,电子,教学,等行业,对信号的要求很多,输入测试信号的好坏直接影响整个实验结果,因此设计高精度的信号源则显得愈发重要,但是由于传统的信号源体积庞大,而且很多教学等领域对信号精度要求没有工业那么高,那么基于FPGA设计的DDS信号源的产生具有重大意义,既可以满足精度相对高,相位噪声低等特点,同时也可以满足体积小,便携性能好,能够很好的设计等优点,所以基于FPGA设计的DDS信号源的研究与设计具有重大的意义。首先根据基于FPGA设计的DDS信号与的需求以及意义,我们将

17、本论文分为六部分:第一章 主要介绍基于FPGA设计的DDS信号源的的背景,意义以及应用范围;第二章 简要介绍了FPGA和仿真软件及其语言VHDL;第三章 介绍基于FPGA设计的DDS信号源的的硬件设计,并验证硬件设计的正确性第四章 介绍基于FPGA设计的DDS信号源的的软件设计,并进行仿真与讨论第五章 对结论进行分析并分析该设计的缺点以及需要改进的地方,并总结了研究展望第二章 FPGA设计相关知识简介2.1 FPGA简介2.1.1 FPGA的概述FPGA(FieldProgrammable Gate Array),也叫现场可编程门阵列。早在1980年代中期,在各种PLD器件的基础上,FPGA就

18、出现在世人的眼中。它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。也是一种应用在专用集成电路(ASIC)领域中的半定制电路,既解决了定制电路的开发周期长等不足,又克服了过去的可编程器件门电路数目有限的缺点。目前FPGA的硬件描述主要由硬件描述语言(Verilog 或 VHDL)来完成,写好的用来描述硬件的程序通过简单的综合、布局,快速烧录到 FPGA 芯片上进行测试,这也是当今主流的IC 设计验证的技术方法。这些可编辑器件可以实现一些基本的数字逻辑门电路(比如AND、OR、XOR、NOT)或是更为复杂的功能例如编码器、解码器6。市面上的大多数的FPGA中都包含了记忆元件,例

19、如触发器(Flipflop)等。一般而言,FPGA比ASIC(专用集成芯片)的速度要慢,很难完成复杂的设计,而且相对来说,会消耗更多的电能。但是它们的研发周期短、可维护性、低造价等优点让它们得到了快速的发展。 FPGA的基本特点主要有:采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC电路的中试样片。FPGA内部有丰富的触发器和IO引脚。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最

20、佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。2.1.2 FPGA结构介绍FPGA具有掩膜

21、可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接

22、线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。 CLB是FPGA的主要组成部分。图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G 、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合

23、函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号

24、变换电路控制。 输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到CLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB可编程开关矩输入输出模块互连资源图2-1 CLB基本结构输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确

25、定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.2

26、Quartus II开发系统Quartus II 是 HYPERLINK /view/3317625.htm t _blank Altera公司提供的开发 HYPERLINK /view/37.htm t _blank 软件,包括原理图设计、VHDL设计、VerilogHDL以及AHDL设计(Altera Hardware Description Language)等多很多方式,它内部有自己的的综合器,并有自己的仿真器,从而实现PLD的输入到配置硬件的整个设计。 Quartus II支持Linux,XP以及Unix等多种系统。既可以通过写Tcl HYPERLINK /view/54.htm t

27、 _blank 脚本实现设计,也可以通过界面设计。具有很快的速度,界面统一,功能集中等特点。 Quartus II支持Altera的IP核,包括LPM,以及MegaFunction,用户通过已有的模块,使设计更加简单、速度更加快快速。同时,它也支持其他第三方EDA仿真工具,方便用户用户通过第三方工具进行设计。 此外,Quartus II 还能结合DSP Builder工具与Matlab/Simulink,各种DSP系统的应用也可以在Quartus II上实现;Altera的片上可进行编程的系统(SOPC)也可以在Quartus II上实现,设计系统级、开发 HYPERLINK /view/25

28、17315.htm t _blank 嵌入式软件、都可以在Quartus II上完成。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus

29、II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到 HYPERLINK /view/3114367.htm t _blank 数字系统设计者的欢迎。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括: 可利用原理图、结构框图、Verilog HDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件; 芯片(电路)平面布局连线编辑; LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具; 完备的电路功能仿真与时序逻辑仿真工具; 定

30、时/时序分析与关键路径延时分析; 可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析; 支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 使用组合编译方式可一次完成整体设计流程; Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推

31、进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。2.3 硬件描述语言简介目前FPGA编程语言主要有VHDL和Verilog两种硬件描述语言,是目前世界上最流行的两种硬件描述语言(Hardware Description Language,HDL),都是IEEE在20世纪80年代中期提出的标准,Verilog HDL由Gateway Design Automation(GDA)公司开发,VHDL由美国军方研发。Verilog HDL和VHDL都是用于逻辑设计的硬件描述语言。Verilog HDL和VHDL的相同点在于:都能形式化地抽象表示电路的行为和结构;支

32、持逻辑设计中层次与范围的描述;可以简化电路行为的描述;具有电路仿真和验证机制;支持电路描述由高层到底层的综合转换;与实现工艺无关;偏于管理方面和设计重用。但Verilog HDL和VHDL又有各自的特点,由于VHDL推出较早,因而拥有更广泛的客户群体、更丰富的资源。Verilog HDL还有一个优点就是容易掌握,如果具有C语言学习的基础,很快就能够掌握。而VHDL需要Ada编程语言基础,一般需要半年以上的专业培训才能够掌握。传统观点认为Verilog HDL在系统抽象方面较弱,不太适合特大型的系统,但经过VHDL 2001标准的补充之后,系统级表述性能和可综合性能有了大幅度提高。总之,它们都是

33、一种用形式化方法来描述数字电路和系统的语言,可以从上层到下层来逐层描述自己的设计思想,用一系列分层次的模块来表示复杂的数字系统,并逐层进行验证仿真,再把具体的模块组合由综合工具转化成门级网标。接下来再利用布局布线工具把网表转化为具体电路结构的实现。在基于可编程逻辑器件的项目研发中,可以用来描述逻辑电路图、逻辑表达式、数字系统硬件结构和行为,也可以表示数字逻辑系统所完成的逻辑功能。本论文主要使用 VHDL语言,故接下来对其进行简单介绍。自从1983年VHDL语言被GDA公司的Philip Moorby首次提出,经过多年的发展与完善,现在在可编程数字系统中的应用越来越广泛。Verilog HDL既

34、是一种行为描述语言,也是一种结构描述语言。如果按照一定的规则和风格编写代码,可以将功能行为模块通过工具自动转化为门级互联的结构模块。这意味着可以用Verilog HDL语言构造一个个结构清晰的模块来描述复杂的大型设计,而且还可以对所作出的设计作出严格的仿真。另外,Verilog HDL语言的语法和C语言类似,上手比较快。因此在企业中得到了广泛的应用,表2-1给出了Verilog HDL语言描述硬件的能力。描述级别抽象级别功能描述物理模型行为级系统级根据语言提供的结构,可以完成模块外部性能的模型电路板,芯片以及根据物理进行划分的子模块算法级根据语言提供的功能能够实现算法运行的模型物理连接器件,电

35、路板RTL级描述数据在寄存器之间流动处理方式、滨队数据流动的模型进行控制。芯片、宏单元逻辑级门级描述逻辑gate好逻辑gate连接的模型标准单元布图电路级开关级描述器件中三极,以及存储节点和它们之间连接的模型晶体管布图表2-1 VHDL语言的表述能力用VHDL 硬件描述语言描述的电路设计一般被叫做该电路的VHDL模型,也就是我们常说的模块。模块是VHDL的基本描述单元。模块一般用来描述某个设计的逻辑功能与结构,一般都定义了与其他模块通信的外部接口。而且模块是并行运行的,通常在更高层模块中,我们可以调用低层次模块的实例,从而对一个封闭的系统进行,封闭系统由测试的数据以及硬件描述组成。说明部分用来

36、定义的项,比如的寄存器、参数,说明部分可以分散于模块的任何地方,但是变量、寄存器、线网和参数等的说明必须在使用前出现。语句用于定义设计的功能和结构。VHDL语言的基本要素包括模块端口、数据类型、标识符、常量集合及运算符和表达式等。VHDL可以对实际电路进行不同抽象级别的建模。具体来说,有三种描不同述形式:结构描述形式、数据流描述形式、行为级描述形式。结构描述形式是从电路结构的角度来描述电路模块;数据流描述形式是对线型变量进行操作;行为级描述形式是从功能和行为的角度来描述一个实际电路。电路具有5种不同模型,其中,系统级、算法级、RTL级属于行为描述;门级属于结构描述;开关级属于模拟电路范畴,在数

37、字电路讨论中一般不做考虑。VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(The Institute of Electrical and Electronics Engineers)的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件

38、结构4。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。用VHDL语言进行数字逻辑电路和数字系统的设计,是电子电路设计方法上的一次革命性变革3。VHDL采用基于库( HYPERLINK /view/3655891.htm t _blank Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在

39、以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为 HYPERLINK /view/170106.htm t _blank 系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模 HYPERLINK /view/3958685.htm t _blank 电子系统的重要保证。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL语句的行为描述能力和程序结构决定了他具有支持大规模

40、设计的分解和已有设计的再利用功能。符合市场需求的 HYPERLINK /view/1023867.htm t _blank 大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。与其他硬件描述语言相比,VHDL具有以下特点:(1)功能强大、设计灵活VHDL具有功能强大的语言结构,可以用简洁明确的 HYPERLINK /view/60376.ht

41、m t _blank 源代码来描述复杂的 HYPERLINK /view/1838.htm t _blank 逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持 HYPERLINK /view/54180.htm t _blank 同步电路、 HYPERLINK /view/190230.htm t _blank 异步电路和 HYPERLINK /view/269420.htm t _blank 随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持 HYPERLINK /view/1

42、89730.htm t _blank 模块化设计,又支持层次化设计。(2)支持广泛、易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数 HYPERLINK /view/5822.htm t _blank EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的 HYPERLINK /view/60376.htm t _blank 源代码,因为VHDL易读和结构化,所以易于修改设计。(3)强大的系统硬件描述能力VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用

43、行为描述、 HYPERLINK /view/6159.htm t _blank 寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和 HYPERLINK /view/5408248.htm t _blank 传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的 HYPERLINK /view/675645.htm t _blank 数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的 HYPERLINK /view/3688808.htm t _blank 系统模型。(4)独立于器件的设计、与工艺无关设计人员用VHDL进行设

44、计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。(5)很强的 HYPERLINK /view/258047.htm t _blank 移植能力VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。(6)易于共享和复用我们在此以vhdl为设计样例: VHDL Examplelibrary HYPERLINK /view/3933.htm t _blank ieee;use HYPERLINK /view/3933.htm t _blank ieee.std_logic_1

45、164.all; -库声明entity TONE isport(A,B:in std_logic; -实体定义C:out std_logic);end TONE;architecture EX of TONE is - HYPERLINK /view/204974.htm t _blank 结构体定义begin C clk, address = addr_fangbo, q = dout_fangbo );种不同波形的输出。不同波形的输出分别如下图所示如图4-3-1所示,当boxing_in为001输出的波形为正弦波图4-3-1如图4-3-2所示,当boxing_in为010输出的波形为三角波

46、图4-3-2如图4-3-3所示,当boxing_in为011输出的波形为锯齿波图4-3-3如图4-3-4所示,当boxing_in为100输出的波形为方波图4-3-4如图4-3-5所示,当boxing_in分别为001,011和010时输出的波形为依次为正弦波,锯齿波和三角波。图4-3-5经过仿真,可以验证本设计可以很好的改变波形,进行波形选择,当用户需要选择不同的波形输出时候,只需要改变boxing_in的状态,则就可以实时的改变波形的输出,从而可以很好的选择波形的输出。4.3.2 频率控制对于FPGA控制的DDS产生的信号源,它的频率控制是通过频率控制字控制的。DDS信号源输出的频率和三个

47、变量有关系,基于FPGA的 DDS控制的信号源的输出信号的频率,它是输入频率控制字(在本设计中为frequency_in,为26位)、FPGA控制的相位累加器的位数(本设计中为26)和FPGA的系统时钟频率之间的关系为公式3:(3),由于系统时钟频率 和相位累加器的位数N(本设计为26),都是固定的,因此只需要改变频率控制字也就是frequency_in就可以改变信号的频率,在被设计中,需要将得到频率控制字的十进制转化为26位的二进制输入。改变频率控制字的代码如下:process(clk)variable phaseaddtemp:std_logic_vector(25 downto 0);b

48、eginif clkevent and clk=1 then phaseaddtemp:=phaseaddtemp+frequency_in; end if; phaseaddr_cos clk, address = addr_cos, q = dout_cos );juchi : rom_juchi PORT MAP ( clock = clk, address = addr_juchi, q = dout_juchi );sanjiao : rom_sanjiao PORT MAP ( clock = clk, address = addr_sanjiao, q = dout_sanjia

49、o );fangbo: rom_fangbo PORT MAP ( clock = clk, address = addr_fangbo, q = dout_fangbo );process(clk)variable phaseaddtemp:std_logic_vector(25 downto 0);begin if clkevent and clk=1 then phaseaddtemp:=phaseaddtemp+frequency_in; end if; phaseaddr_cos=phaseaddtemp;end process;addr_cos=phaseaddr_cos(25 d

50、ownto 16 );addr_juchi=phaseaddr_cos(25 downto 16 );addr_fangbo=phaseaddr_cos(25 downto 16 );addr_sanjiao if (fudu=0000000000)then boxing_out=dout_cos; else if(fudu=1000000000) then boxing_out if (fudu=0000000000)then boxing_out=dout_sanjiao; else if(fudu=1100000000) then boxing_out if (fudu=00000000

51、00)then boxing_out=dout_juchi(15 downto 0); else if(fudu=1010000000) then boxing_out if (fudu=0000000000)then boxing_out=dout_fangbo; else if(fudu=1001000000) then boxing_outnull; end case; end process;phase_add_out=phaseaddr_cos;end Behavioral;代码2:rom代码LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRA

52、RY altera_mf;USE altera_mf.all;ENTITY rom_cos ISPORT(address: IN STD_LOGIC_VECTOR (9 DOWNTO 0);clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);END rom_cos;ARCHITECTURE SYN OF rom_cos ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (15 DOWNTO 0);COMPONENT altsyncramGENERIC (clock_enable_input_a: STRI

53、NG;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 ;addres

54、s_a: IN STD_LOGIC_VECTOR (9 DOWNTO 0);q_a: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);END COMPONENT;BEGINq BYPASS,clock_enable_output_a = BYPASS,init_file = ././a.mif,intended_device_family = Cyclone II,lpm_hint = ENABLE_RUNTIME_MOD=NO,lpm_type = altsyncram,numwords_a = 1024,operation_mode = ROM,outdata_acl

55、r_a = NONE,outdata_reg_a = CLOCK0,widthad_a = 10,width_a = 16,width_byteena_a = 1)PORT MAP (clock0 = clock,address_a = address,q_a = sub_wire0);END SYN;- =- CNX file retrieval info- =- Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC 0- Retrieval info: PRIVATE: AclrAddr NUMERIC 0- Retrieval info: PRI

56、VATE: AclrByte NUMERIC 0- Retrieval info: PRIVATE: AclrOutput NUMERIC 0- Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC 0- Retrieval info: PRIVATE: BYTE_SIZE NUMERIC 8- Retrieval info: PRIVATE: BlankMemory NUMERIC 0- Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC 0- Retrieval info: PRIVATE: CLO

57、CK_ENABLE_OUTPUT_A NUMERIC 0- Retrieval info: PRIVATE: Clken NUMERIC 0- Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC 0- Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING PORT_A- Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC 0- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING Cyclone II- R

58、etrieval info: PRIVATE: JTAG_ENABLED NUMERIC 0- Retrieval info: PRIVATE: JTAG_ID STRING NONE- Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC 0- Retrieval info: PRIVATE: MIFfilename STRING ././a.mif- Retrieval info: PRIVATE: NUMWORDS_A NUMERIC 1024- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC 0-

59、Retrieval info: PRIVATE: RegAddr NUMERIC 1- Retrieval info: PRIVATE: RegOutput NUMERIC 1- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING 0- Retrieval info: PRIVATE: SingleClock NUMERIC 1- Retrieval info: PRIVATE: UseDQRAM NUMERIC 0- Retrieval info: PRIVATE: WidthAddr NUMERIC 10- Retrieval

60、 info: PRIVATE: WidthData NUMERIC 16- Retrieval info: PRIVATE: rden NUMERIC 0- Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING BYPASS- Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING BYPASS- Retrieval info: CONSTANT: INIT_FILE STRING ././a.mif- Retrieval info: CONSTANT: INTENDED_DEVICE_

温馨提示

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

评论

0/150

提交评论