基于FPGA的数字调制解调器设计毕业设计(73页).doc

上传人:1595****071 文档编号:36831269 上传时间:2022-08-29 格式:DOC 页数:73 大小:681.50KB
返回 下载 相关 举报
基于FPGA的数字调制解调器设计毕业设计(73页).doc_第1页
第1页 / 共73页
基于FPGA的数字调制解调器设计毕业设计(73页).doc_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《基于FPGA的数字调制解调器设计毕业设计(73页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的数字调制解调器设计毕业设计(73页).doc(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-基于FPGA的数字调制解调器设计毕业设计-第 67 页基于FPGA的数字调制解调器设计摘要本设计使用FPGA在EDA技术开发软件Quartus上实现以正弦信号为载波的三种调制信号ASK、FSK、PSK的调制和解调。系统采用ALTERA公司生产的DE2开发板,Cyclone II EP2C35F672C6型号的FPGA和EPCS16系列的配置驱动,使用VHDL硬件描述语言实现,系统时钟为50MHZ,经四分频产生一路时钟信号经过DDS波形发生器形成ASK,PSK及FSK的一路载波,FSK的另一路载波由系统时钟经八分频后经过DDS波形发生器后产生。由于ASK和PSK调制特性相近,载波都为一路信号。

2、因此在设计时将ASK和PSK调制放在同一模块里设计,用一个选择键和两个基带信号控制端来控制。系统时钟经过512分频后经过随机信号模块产生一路周期为15的伪随机序列作为数字调制的基带信号。在解调时,用非相干解调法解调ASK和PSK信号,用过零检测法解调FSK信号。经过功能仿真和验证后,测试输出信号与基带信号是否相符。关键词:FPGA, ASK, PSK, FSKDigital modulation and demodulation based on FPGAAbstractThis design uses FPGA on EDA technology development platform Q

3、uartus to achieve the generation and the demodulation of three modulation signalASK,FSK,PSK as carrier through sinusoidal signals.The system uses the ALTERA companys DE2 development board,FPGA of Type Cyclone II EP2C35F672C6FPGA and driver configuration of EPCS16 series.This system is realized in VH

4、DL hardware description language,whose ASK,PSK and FSK carrier is generated when the four frequency produces a clock signal through the DDS waveform generator,and the system clock is 50MHZ.Because the characteristics of ASK and PSK modulation are similar to each other,which means their carrier are b

5、oth one way signal,the modulation of ASK and PSK are put on the same model when designed,with a selection key and the two baseband signal control ends controlling.System clock generates pseudo random sequence baseband signals whose one road cycle is 15 as baseband signals through random signal model

6、 after the 512 frequency division.When in modulation,we use non coherent demodulation to demodulate ASK and PSK signal,and the zero crossing detection method for FSK signal demodulation.After the system is tested through the function simulation and verification,whether the output signal and the base

7、band signal are conformed to each other or not will be testedKey words: FPGA, ASK, PSK, FSK目录1 绪论11.1 课题背景与研究现状11.1.1数字调制解调背景知识11.1.2 FPGA背景知识21.2 课题的主要研究工作41.3 本论文的结构42.EDA技术简介62.1 Quartus II 简介62.1.1 Quartus II的使用及主要设计流程72.1.2 Quartus II的原理图输入设计流程102.1.2 SignalTap II逻辑分析仪的使用112.2 VHDL语言简介132.2.1 V

8、HDL的基本结构142.2.2 VHDL的基本语法193.数字调制解调原理213.1 ASK的调制与解调213.1.1 ASK调制原理213.1.2 ASK解调原理233.2 PSK的调制与解调233.2.1 PSK调制原理233.2.2 PSK解调原理253.3 FSK的调制与解调263.3.1 FSK调制原理263.3.2 FSK解调原理274硬件模块方案设计与实现304.1 DDS(直接数字式频率合成器)304.1.1 DDS原理304.1.2硬件模块设计图314.1.3 频率控制模块324.1.4 波形选择模块324.1.5 波形存储模块334.1.6 顶层实体模块344.1.7 程序

9、及仿真结果分析354.2 m序列发生器364.2.1 m序列原理364.2.2 m序列发生器设计384.2.3 m序列产生模块414.2.4 m序列仿真结果分析414.3 分频器设计434.4 ASK/PSK调制与解调434.4.1 ASK/PSK调制方案434.4.2 ASK/PSK调制模块444.4.3 ASK/PSK调制仿真结果分析454.4.4 ASK/PSK解调方案464.4.5 ASK/PSK解调模块474.4.6 ASK/PSK解调仿真结果分析484.5 FSK调制与解调494.5.1 FSK调制方案494.5.2 FSK调制模块504.5.3 FSK仿真结果分析504.5.4

10、FSK解调方案514.5.5 FSK解调模块524.5.6 FSK解调仿真结果分析525 系统调试545.1 系统电路图545.2 系统仿真结果54结论57致谢58参考文献59附录:源代码46外文资料翻译(附原文)661 绪论1.1 课题背景与研究现状 1.1.1数字调制解调背景知识如今社会通信技术的发展速度可谓日新月异,计算机的出现在现代通信技术的各种媒体中占有独特的地位,计算机在当今社会的众多领域里不仅为各种信息处理设备所使用,而且它与通信向结合,使电信业务更加丰富。随着人类经济和文化的发展,人们对通信技术性能的需求也越来越迫切,从而又推动了通信科学的发展。在通信理论上,先后形成了“过滤和

11、预测理论”、“香浓信息论”,“纠错编码理论”,“信源统计特性理论”,“调制理论”等。通信作为社会的基本设施和必要条件,引起的世界各国的广泛关注,通信的目的就是从一方向另一方传送信息,给对方以信息,但是消息的传送一般都不是直接的,它必须借助于一定形式的信号才能便于远距离快速传输和进行各种处理。虽然基带信号可以直接传输,但是目前大多数信道不适合传输基带信号。现有通信网的主体为传输模拟信号而设计的,基带数字信号不能直接进入这样的通信网。基带信号一般都包含有较低的频率,甚至是直流的分量,很难通过有限尺寸的天线得到有效辐射,因而无法利用无线信道来直接传播。对于大量有线信道,由于线路中多半串接有电容器或并

12、接有变压器等隔直流元件,低频或直流分量就会受到很大限制。因此,为了使基带信号能利用这些信道进行传输,必须使代表信息的原始信号经过一种变换得到另一种新信号,这种变换就是调制。实际中一般选正弦信号为载波信号。代表所传信息的原始信号,是调制载波的信号。数字调制传输在现代通信中发挥着越来越重要的作用,主要是因为数字通信有以下优点: 数字信号便于存储、处理 、抗干扰能力强; 数字信号便于交换和传输; 可靠性高,传输过程中的差错可以设法控制; 数字信号易于加密且保密性强; 通用性和灵活性好。经过调制后,各路信号可已搬移到更高不重叠的频段去传输,从而避免多路传输中的相互干扰。基于这种目的,信号经调制后再传输

13、的方式又称为频带传输。二进制数字调制所用调制信号由“0”和“1”代表的数字信号脉冲序列组成。因此,数字调制信号也成为键控信号。在二进制振幅调制、频率调制和相位调制分别称为振幅键控(ASK)、频移键控(FSK)、相移键控(PSK)。数字调制产生模拟信号,其载波参量的离散状态是与数字数据相对应的,这种信号适宜于在带通型的模拟信道上传输。虽然三种调制解调的原理比较简单,但作为数字通信原理的入门学,理解ASK,PSK,FSK后可以容易理解其他更复杂的调制系统,为以后的进一步发展打下基础。1.1.2 FPGA背景知识现场可编程门阵列(FPGA)是在专用ASIC的基础上发展出来的,它克服了专用ASIC不够

14、灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。随着VLSI(Very Large Scale IC,超大规模集成电路)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,目前,FPGA的容量已经跨过了百万门级,使得FPGA 成为解决系统级设计的重要选择方案之一。和其他通用 DSP相比,FPGA在处理方式上和设计编程上有很大的区别,它更强调数据的平行处理和流水线处理并且有更强的灵活性和可编程型,所以FPGA在定点数据处理方面有很大的优势。FPGA/CPLD可容纳上百

15、万个晶体管,芯片的规模也越来越大。为了满足设计需求,以可编程门阵列FPGA为代表的器件得到了广泛的应用,器件的集成度和运行速度都在高速增长。基于FPGA的数字调制解调器与模拟电路调制解调器相比,具有功耗低、结构简单、性能优越等特点,故在实际工程中得到了广泛的应用。针对传统用硬件实现数字调制解调的方法,特别是相干解调需要提取载波,设备相对复杂、成本较高的特点,研究了基于FPGA芯片的调制解调系统,即通过Quartus II软件,采用VHDL硬件描述语言,利用DE2开发板设计并实现ASK,FSK,PSK的调制解调器。由于FPGA的调制解调技术在通信系统中占据非常重要的地位,它的优劣决定了通信系统的

16、性能。本设计用到的是Altera公司的FPGA器件EP2C35F672C6,该器件隶属于Cyclone II系列,具有更大的容量和极低的单位逻辑单元成本。从结构上看,该器件具有多达150个嵌入1818乘法器,适合于实现低成本数字信号处理(DSP)应用;它包含每块具有4608 bit的M4K存储块,提供高达1.1Mbit的片内存储器,支持多种配置;它能以688 Mbps 的速率同DDR、DDR II 和SDR SDRAM 器件及QDRII SRAM 器件相连接,并支持多种单端和差分I/ O标准;支持Nios II系列嵌入式处理器,具有低成本和完整的软件开发工具。Altera也为Cylcone I

17、I器件客户提供了40多个可定制IP核,Altera和Altera Megafunction伙伴计划(AMPPSM)合作者提供的不同的IP核是专为Cyclone II架构优化的,包括:Nios II嵌入式处理器;DDR SDRAM控制器;FFT/IFFT;PCI编译器;FIR编译器;NCO编译器;POS-PHY编译器;Reed Solomon编译器;Viterbi编译器等。1.2 课题的主要研究工作课题主要研究二进制ASK,PSK,FSK调制解调系统的实现,完成对数字信号的调制与解调,在简化系统的前提下,根据系统的总体功能与硬件特点,设计总体框图,根据VHDL语言的特点,对VHDL建模并进行具体

18、语言设计,让系统的解调结果准确,进行波形仿真与调试,完成调制解调任务。本系统设计的重点在于作为载波的正弦波,由正弦信号发生其产生,在一个周期内完成256次采样。另外,三种数字信号的解调方法也不完全相同。由于利用相干解调方法需要本地载波参与解调,会使系统复杂且准确度降低,因此采用非相干解调,以正确解调出基带信号。1.3 本论文的结构第一章阐述了数字调制解调的背景知识和现状,以及FPGA的基本概念。第二章介绍了EDA以及开发FPGA的软件的基本知识和主要使用方法,并介绍了VHDL语言的设计流程和基本语法。第三章分析了ASK,PSK,FSK的调制解调原理理论分析。第四章结合硬件平台进行方案选择,设计

19、数字调制解调系统,包括程序的编写及硬件模块设计,以及仿真结果。第五章给出了调制解调器调制解调信号的测试结果和程序仿真结果。第六章为本论文的结束语。2.EDA技术简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的,EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化

20、简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC(Application Specific Integrated Circuit)芯片中,实现既定的电子电路设计功能。EDA技术可把数字通信技术,微电子技术和现代电子设计自动技术结合起来,实现硬件设计软件化,加速了数字通信系统设计的效率,降低了设计成本。利用EDA技术进行电子系统的设计,具有以下几个特点:(1) 用软件的方式设计硬件;(2) 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;(3) 设计过程中可用有关软件进行各种仿真;(4) 系统可现场编程,在线升级;(5) 整个系统可集

21、成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。2.1 Quartus II 简介Quartus II是Altera公司继MAXPLUS II后,所提供的FPGA/CPLD开发集成环境,主要针对本公司新器件和大规模FPGA 的开发。Quartus II提供一个容易适应特定设计所需要的完整的多平台设计环境。它不仅包括FPGA/CPLD 设计所有阶段的解决方案,而且也提供可编程片上系统(SOPC)设计的综合性环境。Quartus II除了保留有MAXPLUS II的特色外,也可以利用第三方的综合工具,如Synopsys、NativeLink、仿真工具ModelS

22、im 等。设计者可以通过传统原理图输入法(GDF)或硬件描述语言(VHDL)设计一个数字系统,通过软件仿真我们可以事先验证设计正确性,在PCB完成后还可以利用CPLD的在线修改能力随时修改设计而不必改动硬件电路。电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。常用的设计方法有硬件描述语言(HDL)和原理图设计输入方法等。原理图设计输入法在早期应用的比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。这种方法的优点是直观、便于理解、元器件库资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于模块构造与重用。更主要的缺点就是当所选用芯片升级换代后,所有的

23、原理图都要做相应的改动。目前进行大型工程设计时,最常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog。他们的共同特点是利用由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构不同而变化,更利于向ASIC的移植。波形输入和状态机输入方法是两种常用的辅助设计输入方法:使用波形输入时,绘制出激励波形与输出波形,EDA软件就能自动地根据响应关系进行设计;使用状态机输入法时,设计者只需要画出状态转移图,EDA软件就能生成相应的HDL代码或原理图,使用十分方便。2.1.1 Quartus II的使用及主要设计流程Quartus II可以使

24、设计者完成设计输入、分析与综合、仿真、布局布线、时序分析及编程下载等工作。Quartus支持多种编辑输入法,包括图形编辑输入法,VHDL、Verilog HDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。Quartus与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPC Builder结合,可实现SOPC系统开发。 Quartus II的设计流程与过去传统意义的电子设计大不相同。尤其表现在:传统设计是自底向上的设计,合格产品的设计总要反复多次试验,次数主要取决于经验而且必须制成成品才能进行仪器测量。

25、而Quartus II采用的是自顶向下的设计,缩减了设计成本,缩短了设计周期,更接近于常规思维方式,标准产品方便测试,对设计者经验要求低,保密性强集成度高。图2.1显示了使用Quartus II 进行设计的各主要环节。 图2.1 Quartus II主要设计环节这几个环节分别介绍如下: (1)设计输入:设计输入包括图形输入和硬件描述语言(HDL)文本输入两大类型。本次实验中主要用到其中的原理图输入和VHDL输入两种方式。HDL设计方式是现今设计大规模数字集成电路的常用形式,除IEEE标准中VHDL与Verilog HDL两种形式外,还有各自FPGA厂家推出的专用语言,如Quartus II下的

26、AHDL。HDL语言描述在状态机、控制逻辑、总线功能方面较强;而原理图输入在顶层设计、数据通路逻辑等方面具有图形化强、功能明确等特点。Quartus II 支持层次化设计,可以在一个新的输入编辑环境中调用不同输入设计方式完成的模块,从而完成混合输入设计以发挥二者各自特色。(2)分析与综合:在完成设计输入之后,即可对其进行分析与综合。其中先进行语法的分析与校正,然后依据逻辑设计的描述和各种约束条件进行编译、优化、转换和综合。最终获得门级电路甚至更底层的电路网表描述文件。因此,综合就是将电路的高级语言(如行为描述)转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序,既可以使用Qu

27、artus II中的综合器来分析设计文件和建立工程数据库,也可使用其他EDA综合工具综合设计文件,然后产生与Quartus II软件配合使用的网表文件。(3)仿真:仿真包括功能仿真和时序仿真。进行功能仿真,即直接对VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性。而时序仿真接近真实器件运行特性的仿真,仿真精度高。Quartus II可以通过建立和编辑波形文件,来执行仿真波形的模拟分析。(4)布局布线: 若功能仿真结果满足逻辑设计,则可执行布局布线。它的目的是将综合后产生的网表文件配置于指定的目标器

28、件中,使之产生最终的下载文件。在Quartus II中,是使用由综合中建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配。它将每个逻辑功能分配给最好的逻辑单元位置,进行布线和时序,并选择相应的互连路径和引脚分配。 (5)时序分析 Quartus II中的时序分析功能可以分析设计中所有逻辑的性能,并协助引导适配器满足设计中的时序分析要求。还可以进行最少的时序分析,报告最佳情况时序结果,验证驱动芯片外信号的时钟至管脚延时。 (6)引脚锁定及下载 为了对设计工程进行硬件测试,应将其输入输出信号锁定在芯片确定的引脚上。最后是将下载或配置文件通过编程电缆向FPGA或CPLD进行下载,以便进行硬件

29、调试和验证。2.1.2 Quartus II的原理图输入设计流程应用数字逻辑电路的基本知识,使用Quartus II原理图输入法可以非常方便地进行数字系统的设计,应用Quartus II原理图输入法,还可以把原有的使用中小规模的通用数字集成电路设计的数字系统移植到FPGA中。设计流程可以分为:(1)建立工程文件夹,包括工程目录、名称和选择合适器件。(2)编辑设计图形文件,放置元件、连线、设定输入输出管教名称。(3)对图形文件进行编译,检查电路是否有误。(4)时序仿真设计文件,得到方针波形验证设计结果。(5)编程下载设计文件,包括引脚锁定和编程下载。2.1.2 SignalTap II逻辑分析仪

30、的使用伴随着EDA工具的快速发展,一种新的调试工具Quartus II 中的SignalTap II 满足了FPGA开发中硬件调试的要求,它具有无干扰、便于升级、使用简单、价格低廉等特点。SignalTap II嵌入逻辑分析仪集成到Quartus II设计软件中,能够捕获和显示可编程单芯片系统(SOPC)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达1024个通道,采样深度高达128Kb,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。SignalTap II为设计者提供了业界领先的SOPC设计的实时可视性,能够大大减少验证过

31、程中所花费的时间。目前SignalTap II逻辑分析仪支持的器件系列包括:APEXT II,APEX20KE,APEX20KC,APEX20K,Cyclone,Excalibur,Mercury,Stratix GX,Stratix。SignalTap II 嵌入式逻辑分析器,提供了芯片测试的一个很好的途径。通过SignalTap II 测试芯片无需外接专用仪器,它在器件内部捕获节点进行分析和判断系统故障。本文通过对Cyclone EP2C35F672C6器件的实验证实该测试手段大大提高系统的调试能力,具有很好的效果。图2.2是SignalTap II嵌入到FPGA的结构图: 图2.2 将逻

32、辑分析仪嵌入到FPGA中使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA、在Quartus II软件中显示被测信号的波形、在测试完毕后将该逻辑分析仪从项目中删除。以下描述设置SignalTap II文件的基本流程:(1)设置采样时钟:采样时钟决定了显示信号波形的分辨率,它的频率要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。SignalTap II在时钟上升沿将被测信号存储到缓存。(2)设置被测信号:可以使用Node Finder 中的 SignalTap

33、II 滤波器查找所有预综合和布局布线后的SignalTap II 节点,添加要观察的信号。逻辑分析器不可测试的信号包括:逻辑单元的进位信号、PLL的时钟输出、JTAG引脚信号、LVDS(低压差分)信号。(3)配置采样深度、确定RAM的大小。(4)设置buffer acquisition mode:buffer acquisition mode包括循环采样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去掉无关的数据,使采样缓存的使用更加灵活。(5)触发级别:SignalTap II支持多触发级的触发方式,

34、最多可支持10级触发。(6)触发条件:可以设定复杂的触发条件用来捕获相应的数据,以协助调试设计。当触发条件满足时,在signalTap时钟的上升沿采样被测信号。完成STP设置后,将STP文件同原有的设计下载到FPGA中,在Quartus II中SignalTap II窗口下查看逻辑分析仪捕获结果。SignalTap II可将数据通过多余的I/O引脚输出,以供外设的逻辑分析器使用;或输出为csv、tbl、vcd、vwf文件格式以供第三方仿真工具使用。2.2 VHDL语言简介VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Descript

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

36、外部分的概念是VHDL系统设计的基本点。VHDL语言的基本结构:一个完整的VHDL语言程序通常包括实体声明(Entity Declaration)、结构体(Architecture Body)、配置(Configuration)、程序包(Package)和库(Library)五个组成部分。其中实体和结构体是不可缺少的。前4种分别是编译的源设计单元。库存放已编译的实体,结构体,配置和包;实体用于描述系统内部的结构和行为;包存放各设计模块都能共享的数据类型,常数和子程序等;配置用于从库中选取所需要单元来支持系统的不同设计,即对库的使用。库可由用户生成或芯片制造商提供,以便共享。实体是描述系统的外部

37、端口,实体说明用于描述设计系统的外部端口输入、输出特征;结构体是描述系统内部的结构和行为,即用于描述设计系统的行为、系统数据的流程和系统内部的结构及其实现的功能。配置为属性选项,描述层与层之间、实体与结构体之间的连接关系,比如高层设计需要将低层实体作为文件加以利用,这就要用到配置说明,用于从库中选取所需设计单元来组成系统设计的不同版本。程序包为属性选项,用于把共享的定义放置其中,具体地说主要用来存放各种设计的模块都能共享的数据类型、常量和子程序等。库主要用于存放已经编译的实体、结构体、程序包和配置,可由用户自主生成或有ASIC芯片制造商提供相应的库,以便于设计中为大家所共享。2.2.1 VHD

38、L的基本结构 一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个或全部: (1)程序包(Package); (2) 库(library)(3)实体(Entity); (4)结构体(Architecture)。 VHDL设计结构体(Architectures)定义了实体的实现,即电路的具体描述实体(Entities)声明到其他实体及其他设计的接口,即定义本设计输入输出端口程序包(Packages)声明在设计或实体中将要用到的常数,数据类型,元件及子程序等VHDL文件图2.3 VHDL组成示意图一个完整的VHDL设计必须包含一个实体和一个与之对应的结构体,一个实体可对应

39、多个结构体,以说明采用不同方法来描述电路。(1)程序包(Package) 程序包是用来单纯罗列VHDL语言中所要用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义等,它是一个可编译的设计单元,也是库结构中的一个层次。要使用程序包时,可以用USE语句说明。例如: USE IEEE.STD_LOGIC_1164.ALL; 该语句表示在VHDL程序中要使用名为STD_LOGIC_1164的程序包中所有定义或说明项。 一个程序包由两大部分组成:包头(Header)和包体(Package Body),其中包体是一个可选项,也就是说,程序包可以只由包头构成。一般包头列出所有项的名称,而在包体

40、具体给出各项的细节。 (2)库(Library) 库是专门存放预先编译好的程序包(package)的地方。在VHDL语言中,库的说明总是放在设计单元的最前面: LIBRARY 库名; 这样,在设计单元内的语句就可以使用库中的数据。由此可见,库的好处就在于使设计者可以共享已经编译过的设计结果。在VHDL语言中可以存在多个不同的库,但是库和库之间是独立的,不能互相嵌套。实际中一个库就对应一个目录,预编译程序包的文件就放在此目录中。用户自建的库即为设计文件所在目录,库名与目录名的对应关系可在编译软件中指定。库说明语句的作用范围从一个实体说明开始到它所属的构造体、配置为止。当一个源程序中出现两个以上的

41、实体时,两条作为使用库的说明语句应在每个实体说明语句前重复书写。表2.1是IEEE两个标准库“std”与“ieee”中所包含的程序包的简单解释。 表2.1 STD与IEEE的程序包库名程序包名包中预定义内容stdstandardVHDL类型,如bit, bit_vectorieeestd_logic_1164定义std_ logic, std_ logic_ vector等ieeenumeric std 定义了一组基s td_logic_1164中定 义的类型上的算术运算符,如“+”、“-”、SHL、SHR等ieeestd_ logic arith 定义有符号与无符 号类型,及基于这些类型上的

42、算术运算ieeestd_ logic_ signed 定义了基于std_logic与 std_logic_vector 类型上的有符号的算术运算ieeestd_ logic_ unsigned 定义了基于std_logic与std_logic_vector 类型上的无符号的算术运算(3)实体(entity)实体是VHDL设计中最基本的模块,VHDL表达的所有设计均与实体有关。设计的最顶层是顶层实体。如果设计分层次,那么在顶层实体中将包含较低级别的实体。 实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被称为端口模式,同时实体中还定义他们的数据类型。 任何一个基本设计单元的实体说明都

43、具有如下的结构: Entity is port 信号名,信号名:端口模式 端口类型; 信号名,信号名:端口模式 端口类型 End ; 每个端口所定义的信号名在实体中必须是唯一的,说明信号名的属性包括端口模式和端口类型,端口模式决定信号的流向,端口类型决定端口所采用的数据类型。 端口模式(MODE)有以下几种类型: IN 信号进入实体但并不输出; OUT 信号离开实体但并不输入;并且不会在内部反馈使用;INOUT 信号是双向的(既可以进入实体,也可以离开实体);BUFFER 信号输出到实体外部,但同时也在实体内部反馈。 端口类型(TYPE)有以下几种类型: Integer:可用作循环的指针或常数

44、,通常不用于I/O信号; Bit:可取值“0”或“1”; std_ logic:工业标准的逻辑类型,取值“0”,“1”,“X” 和“Z” ; std_ logic_ vector:std_ logic的组合,工业标准的逻辑类型。 由此看出,实体(ENTITY)类似于原理图中的符号,它并不描述模块的具体功能。实体的通信点是端口(PORT),它与模块的输入/输出或器件的引脚相关联。 (4)结构体(architecture)结构体是VHDL设计中最主要部分,它具体地指明了该基本设计单元的行为、元件及内部的连接关系,也就是说它定义了设计单元具体的功能。结构体对其基本设计单元的输入输出关系可以用3种方式

45、进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻辑元件连接描述)。不同的描述方式,只体现在描述语句上,而结构体的结构是完全一样的。 一个完整的、能被综合实现的VHDL设计必须有一个实体和对应的结构体,一个实体可以对应一个或多个结构体,由于结构体是对实体功能的具体描述,因此它一定要跟在实体的后面,通常先编译实体后才能对结构体进行编译。2.2.2 VHDL的基本语法 (1) VHDL语言的客体及其分类 在VHDL语言中凡是可以赋予一个值的对象就称为客体(Object)。客体主要包括以下3种:信号、常数、变量(Signal、Constant、Variab

46、le)。在电子线路中,这3类客体通常都具有一定的物理含义。 常数(Constant) 常数是一个固定的值。所谓常数说明就是对某一常数名赋予一个固定的值。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。常数说明的一般格式如下: Constant 常数名:数据类型:=表达式; 常量在定义时赋初值,赋值符号为“:=”。 变量(Variable) 变量只能在进程语句、函数语句和过程语句中使用,它是一个局部量。在仿真过程中它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量说明语句的格式如下: Variable 变量名:数据类型 约束条件:=表达式; 变量的赋值符号“:

47、=”。 信号(Signal) 信号是电子线路内部硬件连接的抽象。它除了没有数据流动方向说明外,其它性质几乎和“端口”一致。信号通常在构造体、程序包和实体中说明。信号说明语句的格式如下: Signal 信号名:数据类型 约束条件=表达式; 信号的赋值符号为“=”。 (2) VHDL的运算符 在VHDL语言中共有4类运算符,可以分别进行逻辑运算(Logical)、关系运算(Relational)、算术运算(Arithmetic)和并置运算(Concatenation)。被运算符所运算的数据应该与运算符所要求的类型相一致。另外,运算符是有优先级的,例如逻辑运算符NOT,在所有的运算符中优先级最高。 (3) VHDL常用语句VHDL 常用语句分并行(Concurrent)语句和顺序(Sequential)语句: 并行语句(Concurrent):并行语句总是处于进程(PROCESS)的外部。所有并行语句都是并行执行的,即与它们出现的先后次序无关。如when .else语句。 顺序语句(Sequential):顺序语句总是处于进程的内部,并且从仿真的角

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁