基于FPGA调制解调器的设计文档格式.docx
- 文档编号:20194490
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:37
- 大小:372.13KB
基于FPGA调制解调器的设计文档格式.docx
《基于FPGA调制解调器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA调制解调器的设计文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
其中,相位键控分为绝对调相(CPSK)和相对调相(DPSK)两种。
CPSK是利用载波的不同去直接传送数字信息是一种方式;
DPSK则是用载波相位的相对变化来传送数字信号,即利用前后码之间的载波相位的变化表示数字基带信号。
使用FPGA在EDA技术开发软件QuartusⅡ上实现三种调制信号的调制与解调,系统采用ALTERA公司生产的CycloneIIEP2C35F672C6型号的FPGA和EPCS16系列的配置驱动,使用VHDL硬件描述语言实现。
根据系统的总体功能与硬件特点,设计总体框图,VHDL语言的特点,对VHDL建模并进行具体语言设计,让系统的解调结果准确,进行波形仿真与调试完成调制解调任务。
关键词:
FPGA;
ASK;
PSK;
CPSK;
DPSK
DesignofmodedigitalcommunicationsystembasedonFPGA
Abstract:
Thisdesignintroducesthebinaryamplitudeshiftkeying(ASK),binaryfrequencyshiftkeying(FSK),binaryphaseshiftkeying(PSK)modulationanddemodulationprinciple.Amongthem,thephaseshiftkeyingisdividedintoabsolutephasemodulation(CPSK)andrelativephasemodulation(DPSK)twokinds.CPSKistousedifferentcarriertotransmitdigitalinformationdirectlyisakindofway;
DPSKisusingcarrierphaserelativechangestotransmitdigitalsignals,itisusingcodecarrierphasechangebetweenbeforeandafterthedigitalbasebandsignal.UsingFPGAintheEDAtechnologytodevelopsoftwareQuartusⅡimplementedonthreekindsofmodulationsignalmodulationanddemodulation,thesystemUSESALTERAcompanyproducestheCycloneIIEP2C35F672C6FPGAandEPCS16seriesmodelswiththeconfigurationofthedrive,usingVHDLhardwaredescriptionlanguagetorealize.Basedonthesystem'
soverallfunctionandhardwarecharacteristic,thedesignoftheoverallblockdiagram,VHDLlanguage,thecharacteristicsofthespecificlanguagedesignandVHDLmodeling,thesystemofthedemodulationresultsareaccurate,waveformsimulationanddebuggingformodemtasks.
Keywords:
FPGA;
ASK;
PSK;
CPSK;
引言
如今社会通信技术的发展速度可谓日新月异,计算机的出现在现代通信技术的各种媒体中占有独特的地位,计算机在当今社会的众多领域里不仅为各种信息处理设备所使用,而且它与通信向结合,使电信业务更加丰富。
随着人类经济和文化的发展,人们对通信技术性能的需求也越来越迫切,从而又推动了通信科学的发展。
在通信理论上,先后形成了“过滤和预测理论”、“香浓信息论”,“纠错编码理论”,“信源统计特性理论”,“调制理论”等。
通信作为社会的基本设施和必要条件,引起的世界各国的广泛关注,通信的目的就是从一方向另一方传送信息,给对方以信息,但是消息的传送一般都不是直接的,它必须借助于一定形式的信号才能便于远距离快速传输和进行各种处理。
虽然基带信号[6]可以直接传输,但是目前大多数信道不适合传输基带信号。
现有通信网的主体为传输模拟信号而设计的,基带数字信号不能直接进入这样的通信网。
基带信号一般都包含有较低的频率,甚至是直流的分量,很难通过有限尺寸的天线得到有效辐射,因而无法利用无线信道来直接传播。
对于大量有线信道,由于线路中多半串接有电容器或并接有变压器等隔直流元件,低频或直流分量就会受到很大限制。
因此,为了使基带信号能利用这些信道进行传输,必须使代表信息的原始信号经过一种变换得到另一种新信号,这种变换就是调制。
实际中一般选正弦信号为载波信号。
代表所传信息的原始信号,是调制载波的信号。
数字调制传输在现代通信中发挥着越来越重要的作用,主要是因为数字通信有以下优点:
(1)数字信号便于存储、处理、抗干扰能力强;
(2)数字信号便于交换和传输;
(3)可靠性高,传输过程中的差错可以设法控制;
(4)数字信号易于加密且保密性强;
(5)通用性和灵活性好
经过调制后,各路信号可已搬移到更高不重叠的频段去传输,从而避免多路传输中的相互干扰。
基于这种目的,信号经调制后再传输的方式又称为频带传输。
现场可编程门阵列(FPGA)[1]是在专用ASIC的基础上发展出来的,它克服了专用ASIC不够灵活的缺点。
与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。
随着VLSI(VeryLargeScaleIC,超大规模集成电路)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,目前,FPGA的容量已经跨过了百万门级,使得FPGA成为解决系统级设计的重要选择方案之一。
和其他通用DSP相比,FPGA在处理方式上和设计编程上有很大的区别,它更强调数据的平行处理和流水线处理并且有更强的灵活性和可编程型,所以FPGA在定点数据处理方面有很大的优势。
FPGA/CPLD可容纳上百万个晶体管,芯片的规模也越来越大。
为了满足设计需求,以可编程门阵列FPGA为代表的器件得到了广泛的应用,器件的集成度和运行速度都在高速增长。
基于FPGA的数字调制解调器与模拟电路调制解调器相比,具有功耗低、结构简单、性能优越等特点,故在实际工程中得到了广泛的应用。
针对传统用硬件实现数字调制解调的方法,特别是相干解调需要提取载波,设备相对复杂、成本较高的特点,研究了基于FPGA芯片的调制解调系统,即通过QuartusII软件,采用VHDL硬件描述语言,利用DE2开发板设计并实现ASK,FSK,PSK的调制解调器。
由于FPGA的调制解调技术在通信系统中占据非常重要的地位,它的优劣决定了通信系统的性能。
第一章绪论
1.1EDA技术简介
EDA是电子设计自动化(ElectronicDesignAutomation)[6]的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的,EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)芯片中,实现既定的电子电路设计功能。
EDA技术可把数字通信技术,微电子技术和现代电子设计自动技术结合起来,实现硬件设计软件化,加速了数字通信系统设计的效率,降低了设计成本。
利用EDA技术进行电子系统的设计,具有以下几个特点:
(1)用软件的方式设计硬件;
(2)用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;
(3)设计过程中可用有关软件进行各种仿真;
(4)系统可现场编程,在线升级;
(5)整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
因此,EDA技术是现代电子设计的发展趋势。
1.2QuartusII简介
QuartusII[6]是Altera公司继MAX+PLUSII后,所提供的FPGA/CPLD开发集成环境,主要针对本公司新器件和大规模FPGA的开发。
QuartusII提供一个容易适应特定设计所需要的完整的多平台设计环境。
它不仅包括FPGA/CPLD设计所有阶段的解决方案,而且也提供可编程片上系统(SOPC)设计的综合性环境。
QuartusII除了保留有MAX+PLUSII[11]的特色外,也可以利用第三方的综合工具,如Synopsys、NativeLink仿真工具ModelSim等。
设计者可以通过传统原理图输入法[9](GDF)或硬件描述语言[13](VHDL)设计一个数字系统,通过软件仿真我们可以事先验证设计正确性,在PCB完成后还可以利用CPLD的在线修改能力随时修改设计而不必改动硬件电路。
电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。
常用的设计方法有硬件描述语言(HDL)和原理图设计输入方法等。
原理图设计输入法在早期应用的比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。
这种方法的优点是直观、便于理解、元器件库资源丰富。
但是在大型设计中,这种方法的可维护性较差,不利于模块构造与重用。
更主要的缺点就是当所选用芯片升级换代后,所有的原理图都要做相应的改动。
目前进行大型工程设计时,最常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog。
他们的共同特点是利用由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构不同而变化,更利于向ASIC的移植。
波形输入和状态机输入方法是两种常用的辅助设计输入方法:
使用波形输入时,绘制出激励波形与输出波形,EDA软件就能自动地根据响应关系进行设计;
使用状态机输入法时,设计者只需要画出状态转移图,EDA软件就能生成相应的HDL代码或原理图,使用十分方便。
1.2.1QuartusII的使用及主要设计流程
QuartusII可以使设计者完成设计输入、分析与综合、仿真、布局布线、时序分析及编程下载等工作。
QuartusⅡ支持多种编辑输入法,包括图形编辑输入法,VHDL、VerilogHDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。
QuartusⅡ与MATLAB和DSPBuilder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPCBuilder结合,可实现SOPC系统开发。
QuartusII的设计流程与过去传统意义的电子设计大不相同。
尤其表现在:
传统设计是自底向上的设计,合格产品的设计总要反复多次试验,次数主要取决于经验而且必须制成成品才能进行仪器测量。
而QuartusII采用的是自顶向下的设计,缩减了设计成本,缩短了设计周期,更接近于常规思维方式,标准产品方便测试,对设计者经验要求低,保密性强集成度高。
图1.1显示了使用QuartusII进行设计的各主要环节。
图1.1QuartusII主要设计环节
这几个环节分别介绍如下:
(1)设计输入:
设计输入包括图形输入和硬件描述语言(HDL)文本输入两大类型。
本次实验中主要用到其中的原理图输入和VHDL输入两种方式。
HDL设计方式是现今设计大规模数字集成电路的常用形式,除IEEE标准中VHDL与VerilogHDL两种形式外,还有各自FPGA厂家推出的专用语言,如QuartusII下的AHDL。
HDL语言描述在状态机、控制逻辑、总线功能方面较强;
而原理图输入在顶层设计、数据通路逻辑等方面具有图形化强、功能明确等特点。
QuartusII支持层次化设计,可以在一个新的输入编辑环境中调用不同输入设计方式完成的模块,从而完成混合输入设计以发挥二者各自特色。
(2)分析与综合:
在完成设计输入之后,即可对其进行分析与综合。
其中先进行语法的分析与校正,然后依据逻辑设计的描述和各种约束条件进行编译、优化、转换和综合。
最终获得门级电路甚至更底层的电路网表描述文件。
因此,综合就是将电路的高级语言(如行为描述)转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序,既可以使用QuartusII中的综合器来分析设计文件和建立工程数据库,也可使用其他EDA综合工具综合设计文件,然后产生与QuartusII软件配合使用的网表文件。
(3)仿真:
仿真包括功能仿真和时序仿真。
进行功能仿真,即直接对VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性。
而时序仿真接近真实器件运行特性的仿真,仿真精度高。
QuartusII可以通过建立和编辑波形文件,来执行仿真波形的模拟分析。
(4)布局布线:
若功能仿真结果满足逻辑设计,则可执行布局布线。
它的目的是将综合后产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。
在QuartusII中,是使用由综合中建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配。
它将每个逻辑功能分配给最好的逻辑单元位置,进行布线和时序,并选择相应的互连路径和引脚分配。
(5)时序分析
QuartusII中的时序分析功能可以分析设计中所有逻辑的性能,并协助引导适配器满足设计中的时序分析要求。
还可以进行最少的时序分析,报告最佳情况时序结果,验证驱动芯片外信号的时钟至管脚延时。
(6)引脚锁定及下载
为了对设计工程进行硬件测试,应将其输入输出信号锁定在芯片确定的引脚上。
最后是将下载或配置文件通过编程电缆向FPGA或CPLD进行下载,以便进行硬件调试和验证。
1.2.2QuartusII的原理图输入设计流程
应用数字逻辑电路的基本知识,使用QuartusII原理图输入法可以非常方便地进行数字系统的设计,应用QuartusII原理图输入法,还可以把原有的使用中小规模的通用数字集成电路设计的数字系统移植到FPGA中。
设计流程可以分为:
(1)建立工程文件夹,包括工程目录、名称和选择合适器件。
(2)编辑设计图形文件,放置元件、连线、设定输入输出管教名称。
(3)对图形文件进行编译,检查电路是否有误。
(4)时序仿真设计文件,得到方针波形验证设计结果。
(5)编程下载设计文件,包括引脚锁定和编程下载。
1.3VHDL语言简介
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,IEEE将VHDL替代了原有的非标准的硬件描述语言,并被美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言的基本结构:
一个完整的VHDL语言程序通常包括实体声明(EntityDeclaration)、结构体(ArchitectureBody)、配置(Configuration)、程序包(Package)和库(Library)五个组成部分。
其中实体和结构体是不可缺少的。
前4种分别是编译的源设计单元。
库存放已编译的实体,结构体,配置和包;
实体用于描述系统内部的结构和行为;
包存放各设计模块都能共享的数据类型,常数和子程序等;
配置用于从库中选取所需要单元来支持系统的不同设计,即对库的使用。
库可由用户生成或芯片制造商提供,以便共享。
实体是描述系统的外部端口,实体说明用于描述设计系统的外部端口输入、输出特征。
结构体是描述系统内部的结构和行为,即用于描述设计系统的行为、系统数据的流程和系统内部的结构及其实现的功能。
配置为属性选项,描述层与层之间、实体与结构体之间的连接关系,比如高层设计需要将低层实体作为文件加以利用,这就要用到配置说明,用于从库中选取所需设计单元来组成系统设计的不同版本。
程序包为属性选项,用于把共享的定义放置其中,具体地说主要用来存放各种设计的模块都能共享的数据类型、常量和子程序等。
库主要用于存放已经编译的实体、结构体、程序包和配置,可由用户自主生成或有ASIC芯片制造商提供相应的库,以便于设计中为大家所共享。
1.3.1VHDL的基本结构
一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个或全部:
(1)程序包(Package);
(2)库(library)
(3)实体(Entity);
(4)结构体(Architecture)。
图1.2VHDL组成示意图
一个完整的VHDL设计必须包含一个实体和一个与之对应的结构体,一个实体可对应多个结构体,以说明采用不同方法来描述电路。
(1)程序包(Package)
程序包是用来单纯罗列VHDL语言中所要用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义等,它是一个可编译的设计单元,也是库结构中的一个层次。
要使用程序包时,可以用USE语句说明。
例如:
USEIEEE.STD_LOGIC_1164.ALL;
该语句表示在VHDL程序中要使用名为STD_LOGIC_1164的程序包中所有定义或说明项。
一个程序包由两大部分组成:
包头(Header)和包体(PackageBody),其中包体是一个可选项,也就是说,程序包可以只由包头构成。
一般包头列出所有项的名称,而在包体具体给出各项的细节。
(2)库(Library)
库是专门存放预先编译好的程序包(package)的地方。
在VHDL语言中,库的说明总是放在设计单元的最前面:
LIBRARY库名;
在设计单元内的语句就可以使用库中的数据。
由此可见,库的好处就在于使设计者可以共享已经编译过的设计结果。
在VHDL语言中可以存在多个不同的库,但是库和库之间是独立的,不能互相嵌套。
实际中一个库就对应一个目录,预编译程序包的文件就放在此目录中。
用户自建的库即为设计文件所在目录,库名与目录名的对应关系可在编译软件中指定。
库说明语句的作用范围从一个实体说明开始到它所属的构造体、配置为止。
当一个源程序中出现两个以上的实体时,两条作为使用库的说明语句应在每个实体说明语句前重复书写。
表1.1是IEEE两个标准库“std”与“ieee”中所包含的程序包的简单解释。
表1.1IEEE两个标准库
库名
程序包名
包中预定义内容
std
standard
VHDL类型,如bit,bit_vector
ieee
std_logic_1164
定义std_logic,std_logic_vector等
numericstd
定义了一组基std_logic_1164中定义的类型上的算术运算符
std_logicarith
定义有符号与无符号类型,及基于这些类型上的算术运算
std_logic_signed
定义了基于std_logic与std_logic_vector类型上的有符号的算术运算
std_logic_unsigned
定义了基于std_logic与std_logic_vector类型上的无符号的算术运算
(3)实体(entity)
实体是VHDL设计中最基本的模块,VHDL表达的所有设计均与实体有关。
设计的最顶层是顶层实体。
如果设计分层次,那么在顶层实体中将包含较低级别的实体。
实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被称为端口模式,同时实体中还定义他们的数据类型。
任何一个基本设计单元的实体说明都具有如下的结构:
Entity<
entity_name实体名>
is
port
(
信号名{,信号名}:
端口模式端口类型;
);
End<
entity_name>
;
每个端口所定义的信号名在实体中必须是唯一的,说明信号名的属性包括端口模式和端口类型,端口模式决定信号的流向,端口类型决定端口所采用的数据类型。
端口模式(MODE)有以下几种类型:
IN信号进入实体但并不输出;
OUT信号离开实体但并不输入;
并且不会在内部反馈使用;
INOUT信号是双向的(既可以进入实体,也可以离开实体);
BUFFER信号输出到实体外部,但同时也在实体内部反馈。
端口类型(TYPE)有以下几种类型:
Integer:
可用作循环的指针或常数,通常不用于I/O信号;
Bit:
可取值“0”或“1”;
std_logic:
工业标准的逻辑类型,取值“0”,“1”,“X”和“Z”;
std_logic_vector:
std_logic的组合,工业标准的逻辑类型。
由此看出,实体(ENTITY)类似于原理图中的符号,它并不描述模块的具体功能。
实体的通信点是端口(PORT),它与模块的输入/输出或器件的引脚相关联。
(4)结构体(architecture)
结构体是VHDL设计中最主要部分,它具体地指明了该基本设计单元的行为、元件及内部的连接关系,也就是说它定义了设计单元具体的功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 调制解调器 设计