基于FPGA的VHDL毕业设计.docx
- 文档编号:23347430
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:48
- 大小:452.16KB
基于FPGA的VHDL毕业设计.docx
《基于FPGA的VHDL毕业设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的VHDL毕业设计.docx(48页珍藏版)》请在冰豆网上搜索。
基于FPGA的VHDL毕业设计
摘要
FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。
VHDL的英文全名是Very-High-eedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
本设计介绍了一种基于FPGA技术实现多功能信号发生器的方案,能够输出正弦波、方波和三角波,并且能够输出不同频率和幅度的波形。
本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计文件,在QuartusⅡ工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了多功能信号发生器。
系统由选择模块、正弦波发生模块、方波发生模块、三角波发生模块、频率以及幅度选择模块组成。
经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成发出不同频率和幅度的正弦波、方波和三角波,并在选择完成后进行自动复位。
关键词多功能信号发生器,可编程逻辑门阵列,硬件描述语言
Abstract
IsafieldprogrammablegatearrayFPGA(FieldProgrammableGateArray)forshort,isthecorrespondingcomplexprogrammablelogicdeviceCPLD(ComplexProgrammableLogicDevice)forshort,thetwofunctionsthesame,butslightlydifferentimplementationprinciple,Sometimesyoucanignorethisdifferencebetweenthetwo,referredtoasprogrammablelogicdeviceorCPLD/PGFA.
VHDLfullnameinEnglishistheVery-High-eedIntegratedCircuitHardwareDescriptionLanguage,wasbornin1982.Theendof1987,VHDLisIEEEandtheU.S.DepartmentofDefenserecognizedasthestandardhardwaredescriptionlanguage.SincetheIEEEpublishedastandardversionofVHDL,IEEE-1076(87shortversion),thevariousEDAcompanieshaveintroducedtheirownVHDLdesignenvironment,orannouncedtheirowndesigntoolsandVHDLinterfaces.SincethenthefieldofelectronicdesigninVHDLiswidelyaccepted,andgraduallyreplacedtheoriginalnon-standardhardwaredescriptionlanguage.
TheDesignofFPGAtechnologybasedonmulti-functionsignalgeneratorprogramthatcanoutputsinewave,squarewaveandtriangularwave,andcanoutputdifferentfrequencyandamplitudeofthewaveform.
ThisdesignusesEDAtechnologytohardwaredescriptionlanguageVHDLdescriptionforthesystemlogicmeansofdesigndocuments,softwaretoolsintheQuartusⅡenvironment,usingtop-downdesignapproach,composedofbasicmodulestogethertobuildamulti-functionsignalgenerator.
Systembytheselectionmodule,themoduleoccurredsinewave,squarewavegeneratingmodule,triangularwavegeneratingmodule,frequencyandamplitudeselectionmodule.Thecompilationandsimulationprocessisdesigned,intheprogrammablelogicdevicetodownloadverification,thesystemcancompletetheissueofdifferentfrequencyandamplitudeofthesinewave,squarewaveandtriangularwave,andinthechoiceofautomaticallyresetafterthecompletion.
KeywordsMulti-functionSignalGenerator;FPGA;VeryHardwareDescriptionLanguage
1绪论
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。
在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
本设计是基于FPGA的多功能信号发生器,能够通过输入选择输出正弦波、方波和三角波,并能够调频和调幅。
1.1选题背景
本节将从FPGA嵌入式应用开发技术与多功能信号发生器技术发展的客观实际出发,通过对该技术发展状况的了解,以及课题本身的需要,指出研究基于FPGA的芯片系统与设计——多功能信号发生器的设计与实现的必要性。
1.1.1课题相关技术的发展
信号发生器是能够产生大量标准信号和用户定义信号,并保证他的高精度和高稳定性,可重复性和易操作性的电子仪器。
在70年代前,信号发生器主要有两类:
正弦波和脉冲波,而多功能信号发生器介于两者之间,能够提供正弦波、方波、三角波等波形,产生其他的波形还得采用复杂的电路和机电结合的方法,这个时期的信号发生器存在两个突出的问题,一是通过电位器等的调节来实现输出频率的调节;二是脉冲的占空比不能调节。
在70年代后,微处理器的出现,可以利用处理器、D/A转换器和A/D转换器,硬件和软件使信号发生器的功能扩大,产生更加复杂的波形,这个时期的信号发生器多以软件为主,实质上是采用微处理器对数/模转换的程序控制,就可以得到各种简单的波形。
在80年代后,数字技术日益成熟,信号发生器绝大部分不再使用机械驱动而采用数字电路,从一个频率基准由数字合成电路产生可变频率信号。
自从80年代以来各国都在研制DDS产品,并应用于信号发生器的设计。
后来出现的专用DDS芯片极大的推动了DDS技术的发展,但专用DDS芯片价格昂贵,而且无法实现我们所需要的各种波形输出。
90年代末出现了几种真正高性能、高价比的信号发生器,HP公司推出了型号为HP77OS的信号模拟装置系统,他是由HP877OA任意波形数字化和HP177OA波形发生软件组成。
但由于HP77OS实际上也只能产生8种波形,而且价格昂贵。
不久以后,Analogic公司推出了型号为Aata-2020的多波形合成器,Lecroy公司生产的型号为9100的任意波形发生器等。
信号发生器技术发展至今,引导技术潮流的仍是国外几大仪器公司,如日本横河、Agilent、Tektronix等,美国的FLUKE公司的FLUKE-25型函数发生器是现有测试仪器中最具多样性功能的几种仪器之一,他和频率计数器结合在一起,在任何条件下都能给出很高的波形质量,能给出低失真的正弦波和三角波,还能给出过脉冲很小的方波,其最高频率可以达到5MHz,最大输出幅度也达到10Vpp。
国内也有不少公司已经有类似的仪器。
如南京盛普仪器科技有限公司的SPF120DDS信号发生器,华高仪器生产的HG1600H型数字合成函数/任意波形信号发生器。
1.1.2课题研究的必要性
信号发生器是信号源的一种,主要给被测电路提供需要的已知信号,然后用其他仪表测量感兴趣的其他参数。
他不是测量仪器,而是根据使用者的要求作为激励源,仿真各种测试信号,提供给被测电路,已满足测量或各种实际需要。
目前我国在研制信号发生器方面有可喜的成果。
但总的来说,我国信号发生器还没有形成真正的产业。
我国信号发生器发展出现的问题中,许多情况不容乐观,如产业结构不合理、产业集中于劳动力密集型产品;技术型密集产品明显落后于工业发达国家;生产要素决定性作用正在削弱;产业能源消耗大、产出率低、环境污染严重、对自然资源破坏力大;企业总体规模小、技术创新能力薄弱、管理水平落后等。
就目前国内的成熟产品来看,核心部分多为专用芯片,存在着成本高、控制不灵活等缺点,并且我国目前信号发生器的种类和性能都与国外同类产品存在着很大的差距,因此,开发出高性价比的信号发生器,保持和国外同类产品在性价比上的优势,打破国外技术垄断和封锁,对发展我国电子产业有非常重大的意义,具有广泛的应用前景,加紧对这类产品的研制显得非常紧迫。
1.2课题研究的内容
本设计主要研究基于FPGA的多功能信号发生器,要求能够输出正弦波、方波和三角波,并具有调节频率和幅度的功能。
本设计第一章内容为绪论,简单介绍论文背景以及设计的意义。
第二章为方案介绍,介绍了本设计实现的主要技术以及方案的确定。
第三章为硬件部分介绍,主要实现各个功能模块的分析以及工作流程分析。
第四章为软件部分设计,介绍VHDL语言编程的相关模块实体,并通过流程图的形式,给出工作过程。
2系统介绍
2.1FPGA概述
FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。
CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。
它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。
通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。
使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。
这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。
2.1.1FPGA开发编程原理
硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。
CPLD/FPGA软件设计可分为两大块:
编程语言和编程工具。
编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGAExpress、Modelsim、SynposysSVS等)。
具体的设计输入方式有以下几种:
1.HDL语言方式。
HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。
用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。
2.图形方式。
可以分为电路原理图描述,状态机描述和波形描述3种形式。
有的软件3种输入方法都支持,如Active-HDL。
MAX+plusII图形输入方式只支持电路原理图描述和波形描述两种。
电路原理图方式描述比较直观和高效,对综合软件的要求不高。
一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。
在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。
由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。
这种输入方式最后所能达到的工作速度和芯片利用率也是主要取决于综合软件。
2.1.2FPGA基本结构
FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。
FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。
这3种可编程电路是:
可编程逻辑模块(CLB--ConfigurableLogicBlock)、输入/输出模块(IOB--I/OBlock)和互连资源(IR—InterconnectResource)。
可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。
1.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输入变量的各种组合函数。
这3个函数发生器结合起来,可实现多达9变量的逻辑函数。
CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。
这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。
CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。
F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。
另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。
2.输入/输出模块IOB。
IOB提供了器件引脚和内部逻辑阵列之间的连接。
它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。
每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。
当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。
缓冲器的输出分成两路:
一路可以直接送到MUX,另一路经延
图2-1CLB基本结构
时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。
通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。
当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:
一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。
IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。
3.可编程互连资源IR。
可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。
IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。
2.1.3FPGA系统设计流程
一般说来,一个比较大的完整的项目应该采用层次化的描述方法:
分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOPDOWN(自顶向下)的设计方法。
目前这种高层次的设计方法已被广泛采用。
高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。
CPLD/FPGA系统设计的工作流程如图2-2所示。
图2-2CPLD/FPGA系统设计流程
流程说明:
1.工程师按照“自顶向下”的设计方法进行系统划分。
2.输入VHDL代码,这是设计中最为普遍的输入方式。
此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。
3.将以上的设计输入编译成标准的VHDL文件。
4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。
这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。
一般情况下,这一仿真步骤可略去。
5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。
综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。
6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。
一般的设计,也可略去这一步骤。
7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。
8.在适配完成后,产生多项设计结果:
(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。
根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。
如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。
最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。
2.2VHDL语言与QuartusⅡ
2.2.1VHDL语言简介
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。
归纳起来,VHDL语言主要具有以下优点:
(1)VHDL语言功能强大,设计方式多样
VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。
同时,它还具有多层次的电路设计描述功能。
此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。
VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。
(2)VHDL语言具有强大的硬件描述能力
VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。
同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。
VHDL语言的强大描述能力还体现在它具有丰富的数据类型。
VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
(3)VHDL语言具有很强的移植能力
VHDL语言很强的移植能力主要体现在:
对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。
(4)VHDL语言的设计描述与器件无关
采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA VHDL 毕业设计