基于VHDL语言的数字频带系统的建模与设计_第1页
基于VHDL语言的数字频带系统的建模与设计_第2页
基于VHDL语言的数字频带系统的建模与设计_第3页
基于VHDL语言的数字频带系统的建模与设计_第4页
基于VHDL语言的数字频带系统的建模与设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

目录TOC\o"1-3"\u设计总说明IINTRODUCTIONII1绪论11.1设计的意义与背景11.2课题研究的主要内容22数字调制与解调的原理32.1数字调制与解调概述32.22ASK的调制与解调的原理42.32FSK的调制与解调的原理62.42CPSK的调制与解调的原理92.52DPSK的调制与解调的原理113软件和VHDL语言以及QuartusⅡ简介143.1FPGA软件简介143.2QuartusⅡ语言简介173.3VHDL语言根底194基于VHDL语言的数字频带系统的建模与设计244.1基于VHDL语言的数字频带系统概述244.2基于VHDL语言实现2ASK的调制与解调244.2.12ASK调制的实现244.2.22ASK解调的实现264.2.32ASK调制解调的仿真波形及分析294.3基于VHDL语言实现FSK的调制与解调314.3.12FSK调制的实现314.3.22FSK解调的实现354.3.32FSK调制解调的仿真波形及分析374.4基于VHDL语言的实现CPSK的调制与解调394.4.12CPSK调制的实现394.4.22CPSK解调的实现424.4.32CPSK调制解调的仿真波形及分析444.5基于VHDL语言实现2DPSK的调制与解调464.5.12DPSK调制的实现464.5.22DPSK解调的实现484.5.32DPSK调制解调的仿真波形及分析505总结52致谢53参考文献54数字频带传输系统的建模与设计设计总说明:数字信号的传输方式分为基带传输和频带传输,在数字频带传输系统中,数字信号对高频载波进行调制,变为频带信号,通过信道传输,在接收端解调后恢复成数字信号。数字频带系统的建模与设计通过对于2ASK、2FSK、2PSK、DPSK调制解调的VHDL语言的设计,运用QuartusⅡ软件进行编译和仿真,程序经过编译和仿真完全正确后将程序烧入单片机中,在硬件上实现2ASK、2FSK、2PSK、DPSK调制解调的功能。完成对于数字频带系统的建模与设计。二进制振幅键控〔2ASK〕是载波信号随着基带信号的振幅变化;二进制频移键控〔2FSK〕是载波信号随着基带信号的频率变化;二进制相移键控〔2PSK〕是载波随着基带信号的相位变化,由于2PSK体制中相位的不确定性,差分相移键控〔2DPSK〕是载波随着基带信号的相对相移变化。数字调制就是将基带信号搬移到高频载波上,从而降低基带信号的低频分量,使信号与信道特性相匹配,实现信号在在信道中的传输。解调是接收端将在已调信号从高频载波上搬移下来,复原成为基带信号。基于VHDL语言实现2ASK、2FSK、2PSK、DPSK调制解调。VHDL(Very-High-SpeedIntegratedCircuitHardwareDescription)是一种标准的硬件描述语言,通过用VHDL语言编程在QuartusⅡ软件上实现2ASK、2FSK、2PSK、DPSK调制解调。并结合所编的调制解调程序完成对2ASK、2FSK、2PSK、DPSK调制解调逻辑电路的设计。在VHDL程序经过分析当前文件检查语法错误、分析与编译、分析与综合、适配后,完成全程编译。可以进行时序仿真,在QuartusⅡ中可以清楚的分析仿真的波形,根具2ASK、2FSK、2PSK、DPSK调制解调的原理,分析波形的正确性。本设计通过VHDL语言进行数字频带传输系统的建模、程序设计与仿真、完成数字频带传输系统电路设计、完成数字频带传输系统的程序设计、完成数字频带传输系统的仿真、绘制数字频带传输系统的系统设计图、波形仿真图。关键字:2ASK、2FSK、2PSK、DPSK、仿真、调制与解调、VHDL语言TheModelingandDesignofdigitalbandsystemIntroduction:Digitalsignal’smodeoftransmissioncanbedividedintobasebandtransmissionandbandtransmission.Indigitalbandtransmissionsystem,digitalsignalmodulatesclippedwaveofhighfrequencyandturnstobandsignal,andreturnstodigitalsignalafterrecipient’sdemodulationthroughchanneltransmission.ThroughthedesignofVHDLlanguagetomodulateanddemodulate2ASK、2FSK、2PSKandDPSK,andthroughtheadoptionofQuartusⅡtofulfillcompilationandsimulation,thesystemdebugsitselfonsinglechip,thusreachingthegoalof2ASK、2FSK、2PSK、DPSKinhardwareandachievingthemodelinganddesignofdigitalbandsystem.Bythemodelinganddesignofdigitalbandsystem,Ihaveabasicunderstandingoftheprinciplein2ASK、2FSK、2PSKandDPSK’smodulationanddemodulation.2ASK---carrierwavesignalvarieswiththeamplitudeofbasebandsignal;2FSK---carrierwavesignalvarieswithbasebandsignal’sfrequency;2PSK---carrierwavesignalvarieswiththephaseofbasebandsignal;2DPSK---carrierwavesignalvarieswithrelativephase-shifting.Digitalmodulationmeansrelocatingbasebandsignaltoclippedwaveofhighfrequencysothatthelowfrequencyweightofbasebandsignalcanbedeclined,signalandchannel’sfeaturesarematched,andsignalistransferredinchannel.Demodulationreferstothattherecipientmakesmodulatedsignalrelocatefromcarrierwavesignalofhighfrequencyandreturntobasebandsignal.Weaimatrealizingthemodulationanddemodulationof2ASK、2FSK、2PSKandDPSKinVHDLlanguage.VHDL(Very-High-SpeedIntegratedCircuitHardwareDescription)isastandardlanguagedescribinghardwareprogrammingthroughQuartusⅡsoftwaretofinish2ASK、2FSK、2PSKandDPSKmodulationanddemodulation.Andthedesignoflogiccircuitwillbecompletedifcombinedwiththecompiledmodulationanddemodulationprocess.Aftertheanalysisofthecurrentprogram,checkupofgrammaticalerrors,analysisandcompilation,analysisandsynthesis,andadaptation,theentirecompilationwillbeachieved.TimingsequencecanbesimulatedinQuartusⅡandwegettheclearanalysisofthesimulatedwaveformbasedontheprinciplein2ASK、2FSK、2PSKandDPSK’smodulationanddemodulation,andanalyzethevalidityofwaveform.Keywords:2ASK;2FSK;2PSK;DPSK;simulation;modulationanddemodulation;VHDLlanguage1绪论1.1设计的意义与背景随着当今电子信息技术的快速开展,现代计算机技术与微电子技术的结合越来越紧密,而利用高层次的VHDL/Verilog语言等硬件描述语言对于现场课编程门阵列〔FPGA〕和复杂可编程逻辑器件〔CPLD〕进行设计,使之成为集成电路〔ASIC〕,这很大程度上缩短了设计的开发周期和开发的本钱。VHDL等设计语言的出现和ASIC的应用极大地促进了现代通信技术的开展,尤其是对数字通信系统的ASIC芯片的研究有重要的实践意义。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体〔可以是一个元件,一个电路模块或一个系统〕分成外部〔或称可视局部,及端口〕和内部〔或称不可视局部〕,既涉及实体的内部功能和算法完成局部。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外局部的概念是VHDL系统设计的根本点。EDA技术基于计算机为工作平台把数字通信技术、微电子技术和电子设计自动技术结合了起来,融合应用电子技术、计算机技术、智能化技术等最新研究成果研制而成的电子CAD通用软件包。EDA技术主要应用于辅助设计三方面的工作:IC技术、PCB设计、电子电路系统设计,将硬件设计软件化,使之在电子系统设计中能过突破一些技术瓶颈,加速了通信系统的设计速率,提高了产品的性价比。EDA技术在电子设计数字系统中有广泛的应用,是当今集成电子电路数字系统设计中的排头兵,随着现代社会对信息化和数字化的迫切需求,EDA技术必然会进入一个快速飞跃的阶段。目前通信传输早已不是单一的语音传输,而是包括了图像、文字、视频等复杂业务的传输,所以对通信系统的性能的要求越来越高,而数字频带系统作为一切数字通信传输的根底,无论在多么复杂的数字通信传输中数字频带系统永远都会存在,掌握数字频带系统的原理以及设计,对于复杂的通信系统设计具有根底性的作用,学好它也有利于认识和理解以后日新月异的通信产品,对以后再通信领域的开展有重要的意义。1.2课题研究的主要内容课题主要研究了数字频带系统VHDL的建模与设计,主要包括了:能够认识VHDL,理解VHDL的语法和编程结构,熟悉VHDL中的各种函数及逻辑关系;学习并能够熟练的使用VHDL对数字系统进行建模与设计,用VHDL实现二进制振幅键控〔2ASK〕、二进制频移键控〔2FSK〕、二进制相移键控〔2PSK〕、差分相移键控〔2DPSK〕的调制与解调;通过对数字频带系统基于VHDL的建模与设计,解决在程序中出现的错误和问题,提升对于VHDL的运用能力;并对应的VHDL程序设计关于2ASK、2FSK、2PSK、2DPSK调制解调模型的逻辑电路;完全掌握2ASK、2FSK、2PSK、2DPSK调制解调的根本原理,并在QuartusⅡ软件中实现2ASK、2FSK、2PSK、2DPSK调制解调的仿真,分析其波形,能够运用调制解调的原理解释所仿真的波形。在设计基于VHDL的数字频带系统的根底上,深入的了解关于FPGA可编程逻辑电路的运用,能够自己独立运用VHDL设计一些在日常生活中和通信、电子技术的一些常用的数字电路模型。2数字调制与解调的原理2.1数字调制与解调概述调制是指将各种数字基带信号转换成适于信道传输的数字调制信号(已调信号或频带信号),解调是在接收端将收到的数字频带信号复原成数字基带信号。在时域中调制就是用基带信号去控制载波信号的某个或几个参量的变化,将信息荷载在其上形成已调信号传输,而解调是调制的反过程,通过具体的方法从已调信号的参量变化中将恢复原始的基带信号。在频域中调制就是将基带信号的频谱搬移到信道通带中或者其中的某个频段上的过程,而解调是将信道中来的频带信号恢复为基带信号的反过程.调制的目的是把要传输的模拟信号或数字信号变换成适合信道传输的信号,这就意味着把基带信号〔信源〕转变为一个相对基带频率而言频率非常高的代通信号。该信号称为已调信号,而基带信号称为调制信号。调制可以通过使高频载波随信号幅度的变化而改变载波的幅度、相位或者频率来实现。调制过程用于通信系统的发端。在接收端需将已调信号复原成要传输的原始信号,也就是将基带信号从载波中提取出来以便预定的接受者〔信宿〕处理和理解的过程。该过程称为调制解调计算机内的信息是由“0〞和“1〞组成数字信号,而在线上传递的却只能是模拟电信号〔模拟信号为连续的,数字信号为间断的〕。于是,当两台计算机要通过线进行数据传输时,就需要一个设备负责数模的转换。这个数模转换器就是我们这里要讨论的Modem。计算机在发送数据时,先由Modem把数字信号转换为相应的模拟信号,这个过程称为“调制〞,也成D/A转换。经过调制的信号通过载波传送到另一台计算机之前,也要经由接收方的Modem负责把模拟信号复原为计算机能识别的数字信号,这个过程我们称“解调〞,也称A/D转换。正是通过这样一个“调制〞与“解调〞的数模转换过程,从而实现了两台计算机之间的远程通讯。数字调制与解调的常用方法由于数字调制具有离散值的特点,数字调制的方法有两种:〔1〕利用模拟调制的方法来实现数字调制,即把数字调制看成模拟调制的一种特列,把数字信号当成模拟信号的一种特殊情况来处理。〔2〕利用数字信号离散值的特点通过开关键控载波,从而实现数字调制这种方法通常称为键控法,比方对载波的振幅、频率和相位进行键控,便可获得振幅键控〔ASK〕、频移键控〔FSK〕、相移键控〔CPSK〕和差分相移键控〔DPSK〕等根本的数字调制方式。解调的方式分为相干解调和非相干解调:〔1〕相干解调相干解调〔CoherentDemodulation〕所谓相干,泛泛地说就是相互干扰,相干解调是指利用乘法器,输入一路与载频相干〔同频同相〕的参考信号与载频相乘。比方原始信号A与载频cos(ωt+θ)调制后得到信号Acos(ωt+θ);解调时引入相干〔同频同相〕的参考信号cos(ωt+θ),那么得到:Acos(ωt+θ)cos(ωt+θ)〔2-1〕利用积化和差公式可以得到A*1/2*[cos(ωt+θ+ωt+θ)+cos(ωt+θ-ωt-θ)]=A*1/2*[cos(2ωt+2θ)+cos(0)]=A/2*[cos(2ωt+2θ)+1]=A/2+A/2cos(2ωt+2θ)〔2-2〕利用低通滤波器将高频信号cos(2ωt+2θ)滤除,即得原始信号A。因此相干解调需要接收机和载波同步;而非相干解调不使用乘法器,不需要接收机和载波同步〔2〕非相干解调在通信系统中,接收端想要从被调制的高频信号中恢复出原来的数字基带信号,就需要对接收信号进行解调。所谓非相干解调,即不需提取载波信息〔或不需恢复出相干载波〕的一种解调方法。非相干解调是解调方法的一种,是相对相干解调而言的,非相干解调是通信原理中的一种重要的解调方法,无论在模拟系统和数字系统中都非常重要。非相干解调的优点是可以较少的考虑信道估计甚至略去,处理复杂度降低,实现较为简单,但相比相干解调方法性能下降,从定量角度来看,普遍的结果是非相干解调性能上比相干解调差3dB。2.22ASK的调制与解调1.ASK调制的原理键控是利用载波的幅度变化来传递数字信息,其频率和初始相位保持不变,在2ASK中,载波幅度只有两种变化状态,分别对应二进制信息“0〞和“1〞。一种常用的也是最简单的二进制监控方式称为通-断键控,其表达式为:AcosΩct以概率P发送“1eOOK(t)=〔2-3 0以概率1—P发送“0”2ASK信号的一般表达式为:s(t)=ang(t-nTs) (2-1概率为P其中:an=(2-5)0概率为1—PTs是二进制基带信号时间间隔,g(t)是持续时间为Ts的矩形脉冲10<t<Ts

其中:g(t)=(2-6)0其他t那么二进制振幅键控信号可表示为

e2ASK(t)=ang(t-nTs)cosw2ASK产生的两种方法为模拟调制法〔相乘器法〕和键控法,其原理框图如图3-1和3-2所示:乘法器二进制不归零信号输出乘法器cosω图3-1用相乘器实现2ASK调制原理框图cosωcosωe2ASK s(t)图3-2用键控法实现2ASK调制原理框图2.ASK解调的原理2ASK解调也有两种根本的解调方法:非相干解调法〔包络检波法〕和相干解调法〔同步检测法〕,相应的接收系统组成图如图3-3和3-4所示。与模拟信号的接收系统相比,这里增加了一个“抽样判决器方框〞,这对于提高数字信号的接收性能是很有必要的。抽样抽样判决器低通滤波器全波滤波器带通滤波器输出抽样判决图3-3用非相干解调实现2ASK解调原理框图抽样抽样判决器低通滤波器相乘器带通滤波器抽样cosωct判决图3-4用相干解调法实现2ASK解调原理框图2.32FSK的调制与解调1.FSK的调制的原理频移键控就是利用载波的频率变化来传递数字信息。在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点间变化。故其表达式为Acos(w1t+ηn)发送“1e2FSK(t)=〔Acos(w2+θn)发送“可以看出一个2FSK信号可以看成两个不同载频的2ASK信号的叠加,所以2FSK信号的表达式又可以写成e2FSK(t)=ang(t-nTs) cos(wbng(t-nTscos(w2t+ηn)在式中:g(t)为单个矩形脉冲,脉宽为T概率为Pan=〔2-10 0概率为1—Pbn是an的反码,假设an=1那么bn=0;假设概率为1-Pbn=〔2-11 0概率为Pηn和θn分别是第n个信号码元〔1或0〕的初始相位。在频移键控中ηne2FSK(t)=ang(t-nTs)bng(t-nTscos(w2t)〔2FSK信号的产生方法也有两种。一种是才用模拟调制电路来实现,这里不再阐述。例外一种是可以采用键控法来实现,即在二进制基带矩形脉冲序列的控制下通过开关电路对两个不同独立频率进行选通,使其在一个码元TS期间输出f1和f相加器振荡器相加器振荡器f选通开关反相器选通开关振荡器f振荡器f选通开关反相器选通开关振荡器f输入输出图3-5用键控法实现2FSK的调制原理框图用这两种方法产生的2FSK信号的差异在于:由调频法产生的2FSK信号在相邻码元之间的相位是连续变化的。〔称为连续相位的FSK〕,而键控法产生的2FSK信号,是由电子开关在两个独立的频率源之间转换形成,故相邻码元之间的相位不一定连续。2.2FSK解调的原理2FSK解调依然有两种方法:非相干解调法和相干解调法。其解调的原理是将2FSK信号分为上下两路2ASK信号分别进行解调,然后进行判决。这里的抽样判决是直接比较两路信号值的大小,判决规那么与调制规那么要相照应,调制时假设规定“1”符号对应载波频率f1那么接收时上之路的抽样值较大,应判为“1”;反之判为低通滤波器低通滤波器相乘器低通滤波器相乘器BPFBPF抽样判决器输入定时脉冲输出图3-6用相干解调法实现2FSK的解调原理框图BPFBPFωBPFω包络检波器包络检波器抽样判决器输入定时脉冲输出图3-7用非相干解调法实现2FSK的解调原理框图2.42CPSK的调制与解调1.CPSK调制的原理相移键控是利用载波的相位变化来传输数字信息的,而振幅和频率保持不变。在2CPSK中,通常用初始相位“0〞和“π〞来表示二进制的“0〞和“1〞。因此,2CPSK信号的时域的表达式为e2CPSK(t)=Acos(ωct+φn其中,φn0发送“0”时φn=〔2-141发送“1”所以,2CPSK表达式又可以写成:Acosωct概率为Pe2CPSK(t)=〔—Acosωct概率为1—由于表示信号的两种码元的波形相同,极性相反,故2CPSK信号一般可以表述为一个双极性全占空比矩形脉冲与一个正弦载波相乘,即e2CPSK(t)=s(t)cosωct其中s(t)=ang(t-nTs)这里g(t)是脉冲宽度为TS概率为Pan=〔2-17 -1概率为1—P即发送二进制符号“0〞时〔an取+1〕,e2CPSK(t)取0相位;发送二进制符号“1〞时〔an取-1〕,对于2CPSK调制的原理图和2ASK信号产生的方法相比较,只是对s(t)的要求不同,在2ASK中s(t)是单极性的,而在2CPSK中s(t)是双极性的基带信号。对于2CPSK的调制的实现也有两种方法;模拟调制法和键控法,其原理图分别如图3-8和3-9所示码型变换乘法器s(t)双极性e码型变换乘法器不归零cosωc图3-8用相乘器实现2CPSK调制原理框图开关电路180180cosωce2πs(t)图3-9用键控法实现2CPSK调制原理框图2.2CPSK解调的原理2CPSK信号的解调通常使用相干解调法,在相干解调中要注意相干载波必须与2CPSK信号是同频同相的,其相干解调的原理图如图3-10所示抽样抽样判决器低通滤波器相乘器带通滤波器e2定时cosωct图3-10用相干解调法实现2CPSK解调原理框图2.52DPSK的调制与解调1.DPSK调制的原理在2CPSK中,相位变化是以未调载波的相位作为参考基准的。由于它利用未调载波相位的绝对值表示数字信息,所以称为绝对相移。已经指出,2CPSK相干解调时,会存在着1800的相位模糊,即恢复的本地载波与相干载波可能调相,也可能反相,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的数字基带信号正好相反,即“1〞变为“0〞,“0〞变为“1〞,判决输出的数字信号全部出错,称为倒2DPSK是利用前后相邻码元的载波相对相位变化数字信息,又叫相对相移键控。当前码元与前一码元的载波相位差用φ来表示,定义0表示数字信息“0”φ〔2-18〕π表示数字信息“1例如一组数字信息与其对应的2DPSK信号的载波相位关系二进制数字信息:101101102DPSK信号相位:〔0〕ππ0ππ0π或〔π〕00π00π00由此可知,对于相同的基带数字信息序列,由于初始码元的参考相位不同,2DPSK信号的参考相位可以不同。也就是说,2DPSK信号的相位并不直接代表基带信号,而前后码元的相对相位差才确定唯一的信息符号。从而解决了载波相位不确定的问题。对于2DPSK的调制,先对二进制基带信号进行差分编码,即把数字信号序列的绝对码变为相对码,然后再根据相对码进行绝对调相,从而产生二进制差分相移键控信号,2DPSK调制的原理框图如图3-11所示coscosωc180码变换0开关e2DPSKπS(t)图3-11用键控法实现2DPSK调制原理框图2.DPSK解调的原理2DPSK也有两种解调方法:一种是相干解调〔极性比较法〕加码变换法;还有一种是差分相干解调法〔相位比较法〕。前者的原理框图如图3-12所示带通带通滤波器相乘器低通滤波器抽样判决器码反变换器e输出cosωc图3-12用相干解调法实现2DPSK解调原理框图对2DPSK进行相干解调,恢复出相对码,再经码变化器变化为绝对码,从而恢复出发送的二进制数字信息。在解调的过程中,由于载波的相位模糊性的影响,使得解调出的相对码也可能是“1〞和“0〞的倒置,但经差分译码〔码反变换〕得到的绝对码不会发生任何倒置的现象,从而解决了相位模糊问题。差分相干解调的原理图如图3-13所示带通带通滤波器相乘器低通滤波器抽样判决器延迟Te2DPSK定时脉冲图3-13用差分相干解调法实现2DPSK解调原理框图用相位比较法来对2DPSK信号进行解调,不需要专门的相干载波,只需要将收到的2DPSK信号延时一个码元周期TS3FPGA和VHDL以及QuartusⅡ简介3.1FPGA简介1FPGA是什么FPGA〔Field-ProgrammableGateArray〕,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的根底上进一步开展的产物。它是作为专用集成电路〔ASIC〕领域中的一种半定制电路而出现的,既解决了定制电路的缺乏,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言〔Verilog或VHDL〕所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些根本的逻辑门电路〔比方AND、OR、XOR、NOT〕或者更复杂一些的组合功能比方解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器〔Flip-flop〕或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好似一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC〔专用集成芯片〕的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比方可以快速成品,可以被修改来改正程序中的错误和更廉价的造价。厂商也可能会提供廉价的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD〔复杂可编程逻辑器件备〕。FPGA采用了逻辑单元阵列LCA〔LogicCellArray〕这样一个概念,内部包括可配置逻辑模块CLB〔ConfigurableLogicBlock〕、输出输入模块IOB〔InputOutputBlock〕和内部连线〔Interconnect〕三个局部。2根本特点:〔1〕采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。〔2〕FPGA可做其它全定制或半定制ASIC电路的中试样片。〔3〕FPGA内部有丰富的触发器和I/O引脚。〔4〕FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。〔5〕FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最正确选择之一。3FPGA的应用:〔1〕产品设计把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计。〔2〕系统级应用系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用XilinxV-4,V-5系列的FPGA,实现内嵌POWERPCCPU,然后再配合各种外围功能,实现一个根本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口〔如图象接口〕了这对于快速构成FPGA大型系统来讲是很有帮助的。这种"山寨"味很浓的系统早期优势不一定很明显,类似ARM系统的境况但假设能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种开展方向。4Cyclone系列FPGA〔1〕概述Cyclone系列FPGA是目前ASIC应用饿低本钱应用方案。ASIC开发涉及到大量的工程资源,设计仿真和验证,需要屡次进行重制。利用其系统集成功能,Cyclone系列FPGA防止了ASIC昂贵的NRE负担〔NRE是Non-RecurringEngineering的缩写,NRE费用即一次性工程费用,是指集成电路生产本钱中非经常性发生的开支〕,降低了订购量和产品推迟的带来的风险。采用Cyclone系列FPGA,大批量应用现在可以采用价格相当的可编程解决方案。新的市场开展趋势,如世界标准、平台融合、交互性以及技术改良等,不断的推动可对高性价比方案的需求。Cyclone系列FPGA的价格满足了市场对创新的要求,通过产品迅速面市来确定领先优势。现在通信、计算机外设、工业和汽车等低本钱大批量应用市场都应用Cyclone系列FPGA。〔2〕性能特性Cyclone器件的性能足以和业界最快的FPGA进行竞争。Cyclone系列FPGA综合考虑了逻辑器、存储器、锁相环〔PLL〕和高级I/O接口。Cyclone系列FPGA有以下特性。①本钱优化的构架。Cyclone系列FPGA具有20060个逻辑单元,Cylone器件的逻辑资源可以用来实现复杂的应用。②外部存储器接口。Cyclone器件具有高级外部存储器接口,允许设计者将外部单数据率〔SDR〕,双数据率〔DDR〕、SDRAM和DDRRAM器件集成到复杂系统设计中,而不会降低数据访问的性能。③嵌入式存储器。Cyclone器件中M4K存储块提供288Kbit存储容量,能够被配置来支持多种才做模式,包括RAM、ROM、FIFO及单口和双口模式。④支持LVDSI/O。Cyclone器件支持各种单端I/O接口标准,如3.3V、2.5V、1.8V、LVTTL、LVCMO、SSTL和PCI标准,满足当前系统需求。⑤时钟管理电路。Cyclone器件具有两个可编程锁相环〔PLL〕和8个全局时钟线,提供健全的时钟管理和频率合成功能,实现最大的系统性能。CyclonePLL具有多种高级功能,如频率合成、可编程相移、可编程延迟和外部时钟输出。这些功能允许设计者管理内部和外部系统时序。⑥接口和协议。Cyclone器件支持诸如PCI等串行、总线和网络接口,可访问外部存储器和多种通信协议,如以太网协议。⑦热插拔和上电顺序。Cyclone器件具有健全的片内热插拔和顺序上电支持,确保器件的正常操作和上电顺序无关。这一特性在上电前和上电期间起到了保护器件的作用并使I/O缓冲保持三态,让Cyclone器件成为多电压及需高可靠性和冗余性应用的理想选择。⑧DSP实现。Cyclone器件为在FPGA上实现低本钱数字信号处理系统提供了理想饿平台⑨自动循环冗余码校验。Cyclone器件自动进行32位CRC冗余校验。在QuartusII开发软件中简单的运行单击就可以直接进行设置,启动器件的内置循环冗余码校验器。这是单事件反转本钱效益最好的FPGA解决方案。⑩支持工业级温度。局部Cyclone器件提供工业级温度范围-40度到100度〔节点〕的产品,支持各种工业应用。3.2QuartusⅡ软件简介1.QuartusⅡ软件根底QuartusIIdesign是最高级和复杂的,用于(SOPC)的设计环境。QuartusIIdesign提供完善的timingclosure和LogicLock基于块的设计流程。QuartusIIdesign是唯一一个包括以timingclosure和基于块的设计流为根本特征的programmablelogicdevice(PLD)的软件。QuartusII设计软件改良了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmeddevices开发的统一工作流程。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢送,它是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对StratixFPGA进行功能验证和原型设计,又可以设计HardCopyStratix器件用于批量成品。系统设计者现在能够用QuartusII软件评估HardCopyStratix器件的性能和功耗,相应地进行最大吞吐量设计。Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供给商的开发工具相兼容。改良了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。在QuartusⅡ5.0中设计者可以根据个人的习惯和喜好,自定义开发环境的布局、菜单、命令、和图表等。初次翻开QuartusⅡ5.0软件时可以在QuartusⅡ用户界面和MAX+PLUSⅡ用户界面间进行选择,满足不同类型用户的选择。安装好QuartusⅡ5.0后,进入用户界面后,可见其默认用户界面如图2-2所示:图3-1QuartusⅡ5.0用户界面图用户界面由标题栏、工具栏、菜单栏、工程导航窗口、状态显示窗口及工程工作区等区域构成,进入用户界面后,用户可以通过调用菜单命令【Tools】→【Customize】,在【Customize】对话框中根据个人习惯,自定义QuartusⅡ软件的布局、菜单。命令等图标。2.QuartusⅡ软件的特点〔1〕编辑本段性能特点软件体积缩小,运行速度加快QuartusII5.0安装软件为550M,完全安装为930M,如果定制安装,不选择Excalibur嵌入处理器,那么安装所需空间为460M,比QuartusII1.1版本减少一半以上的空间要求,却能支持ALTERA全部芯片的开发。同时软件的装载,编译,仿真速度比1.1版本大大加快。〔2〕LogicLock设计流程把性能提升15%QuartusII5.0设计软件通过增强层次LogicLock模块级设计方式,将性能平均改善15%。LogicLock设计流程把整个模块的放置交由设计者控制,如果必要的话,可以采用辅助平面布置。LogicLock设计流程运行设计者单独地优化和锁定每个模块的性能,在大型SOPC设计的构建过程中也保持整个系统的性能。2.0版QuartusII设计软件把新的LogicLock设计流程算法集成到未来的Altera器件中,该算法充分利用了模块级设计的优势。〔3〕支持MAX7000/MAX3000等乘积项器件5.0版QuartusII设计软件现在除了支持Altera的APEX20KE,APEX20KC,APEXII,ARM的Excalibur嵌入处理器方案,Mercury,FLEX10KE和ACEX1K之外,还支持MAX3000A,MAX7000系列乘积项器件。MAX3000A和MAX7000设计者现在可以使用QuartusII设计软件中才有的所有强大的功能。〔4〕QuartusII5.0增加了一个新的快速适配编译选项,选择中这个选项,将会比缺省设置要缩短50%的编译时间。快速适配功能保存了最正确性能的设置,加快了编译过程。这样布局适配算法反复的次数更少,编译速度更快,对设计性能的影响最小。3.QuartusⅡ设计流程典型的QuartusⅡ设计流程如图3-2所示:编程配置编程配置适配时序分析与仿真时序满足要求设计输入分析综合功能仿真设计正确图3-2QuartusⅡ设计流程图3.3VHDL语言根底1.什么是VHDL语言VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076〔简称87版〕之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,〔简称93版〕。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承当起大局部的数字系统设计任务。2.VHDL语言的特点〔1〕VHDL语言功能强大,设计方式多样VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比较的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。〔2〕VHDL语言具有强大的硬件描述能力VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、存放器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延时这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还表达在它具有丰富的数据类型。VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。〔3〕VHDL语言具有很强的移植能力VHDL语言很强的移植能力主要表达在:对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。〔4〕VHDL语言的设计描述与器件无关采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。〔5〕VHDL语言程序易于共享和复用VHDL语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。3.VHDL语言的根本程序结构从程序机构上来看,VHDL语言具有很清晰的结构组成,从开始到结束,各局部独有特定的功能和语法结构。在VHDL中,将一个可以完成特定独立功能的设计称为设计实体〔Designentity〕。一个根本的VHDL设计实体结构模型如图2-4所示。而对于一个逻辑部件的设计,并不要所有的语法结构才能完成,有些部件的语法结构是可以省略的,但是一个有意义的设计实体至少要包含库〔程序包〕、实体和结构体三局部:VHDL程序具体框架:〔1〕实体实体〔Entity〕是设计中最根本的模块,用于描述设计实体的外部接口性,即该设计实体对外的输入输出端口的数量和端口特性。一个由多个模块构成的设计实体中可能包含多个实体,其中包快一个顶层实体和处于底层的底层实体,底层实体可以作为组件〔Component〕例化到高层次实体中,此时顶层实体可以应对于芯片的外部引脚定义。〔2〕结构体结构体〔Architecture〕用于描述实体所代表的系统内部的结构和行为。一个实体必须要有至少一个结构体与之对应。结构体描述了设计实体的结构、行为、元件、及内部连接关系,也就是说定义了设计实体具体功能的实现,规定了设计实体的数据流程,制订了实体内部的元件连接关系。结构体的功能和行为描述可以采用多种描述方式。包括:①行为描述方式对设计实体的数学模型的描述,其抽象程度最高类似于高级编程语言,无需的电路的具体结构。一般通过一组串行的VHDL进程来反映设计的功能和算法。其优点是只需要描述输入和输出的行为,而不关注具体电路的实现。②数据流描述方式数据流〔Dataflow〕描述方式也称为存放器传输级(RTL)描述。这种描述方式将数据看成从设计的输入端到输出端,通过并行语句表示这些数据的变化,即对信号到信号的数据流动的路径和形式进行描述。使用数据流的描述的设计人员,要对设计实体的功能实现有一定的了解,有时候还要对电路的具体结构有清楚的认识。数据流描述方式的优点是易于进行逻辑综合,综合效率较高。③结构描述方式结构〔Structure〕描述多用于多层次的设计中,通过调用库中的元件或者已经设计好的模块,进行组合,完成实体功能的描述。结构描述方式只表示元件〔模块〕和元件〔模块〕之间的互联,就像网表一样。结构描述方式的优点是可以将已有的设计成果应用与当前的设计中,因而大大的提高了设计效率,对于可分解的大型设计,结构描述方式总是首选方案,也是由上至下设计方法的具体实施。〔3〕库和程序包库〔Library〕是用来存放以编译过的实体。结构体、程序包〔Package〕等数据集合;程序包主要用来存放各个设计都能共享的数据类型、子程序、常量和元件等。库和程序包就是使设计者共享已经编译过的设计成果。在VHDL设计语言中数据类型、常量及子程序在实体申明和结构体内定义,而这些数据类型、常量及子程序对其他实体是不可见的。为了能够在其他设计实体中使用这些资源,VHDL提供了程序包作为载体。在程序包中,用户可以定义一些公用的子程序、常量和自定义的数据类型。各种VHDL编译系统都包含了多个标准程序包,如STD_LOGIC1164和STANDARD程序包。用户可以翻开编译系统安装目录下的库文件夹内的各个程序包文件,查看各个程序包的内容。用户也可以自定义程序包。〔4〕配置一个设计中,实体可以对应多个结构体,既有多种实现方式。那么在具体硬件实现时,要采用哪种方式就需要配置来实现。配置就是从与某个实体对应的多个结构体中选定一个作为具体实现。4基于VHDL语言的数字频带系统的建模与设计4.1引言用VHDL语言建模,编写程序实现2ASK、2FSK、2CPSK、2DPSK的调制与解调,在QuartusⅡ上实现2ASK、2FSK、2CPSK、2DPSK的调制与解调的逻辑图设计,实现调制与解调的波形仿真。4.2基于VHDL语言实现2ASK的调制与解4.2.12ASK调制的实现1.2ASK调制建模方思想:〔1〕采用数字载波信号数字载波信号产生的方法可以外部输入,也可以通过高频时钟信号分频得到。〔2〕采用键控法进行调制数字基带信号作为键控信号控制与门来完成2ASK调制。〔3〕数字载波调制的2ASK信号可经过外接滤波器转换成模拟信号形式的信号输出因为采用数字载波调制的2ASK信号是数字信号,含有丰富的高频分量,所以经过一个带通滤波器或者一个低通滤波器后,将减少高频成分,输出信号接近模拟载波调制2ASK调制的建模方框图如图4-1所示FPGAclkclk分频器start基带信号与门已调信号载波f图4-12ASK调制建模方框图2ASK调制电路图如图4-2所示图4-2〔a〕2ASK调制电路的VHDL建模电路图4-2(b)2ASK调制的逻辑电路图2.2ASK调制的VHDL程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityasktisport(clk:instd_logic;--系统时钟start:instd_logic;--开始调制信号x:instd_logic;--基带信号y:outstd_logic);--调制信号endaskt;architecturebehavofasktissignalq:integerrange0to3;--分频计数器signalf:std_logic;--载波信号beginprocess(clk)beginifclk'eventandclk=’1’thenifstart='0'thenq<=0;elsifq<=1thenf<='1';q<=q+1;--改变q后面数字的大小就可以改变elsifq=3thenf<='0';q<=0;elsef<='0';q<=q+1;endif;endif;endprocess;y<=xandf;endbehav;4.2.22ASK解调的实现1.2ASK解调建模的思想〔1〕首先考虑输入信号根据2ASK信号相干解调原理,解调器的输入应该包括收端的本地载波、2ASK信号,但考虑到本书采用的目标器件为CPLD/FPGA器件,因而解调器也应采用数字载波。得到数字载波的一种方法是:从2ASK信号中应用模拟滤波或者模拟锁相环提取模拟载波。〔2〕解调器的建模设计解调器包括分频器、计数器、存放器和判决器等。分频器的功能是对时钟信号进行分频得到与发端数字载波相同的数字载波信号;存放器的功能是在时钟的上升沿到来时把数字2ASK信号存入存放器XX中;计数器的功能是利用分频器输出的载波信号作为计数器的时钟信号,在上升沿到来时,对存放器中的2ASK信号进行计数,当计数值m>3时,输出为“1〞,否者输出为“0〞;判决器的功能是:以数字载波为判决时钟,对计数器的输出信号进行抽样判决,并输出解调后的基带信号。2ASK解调的框图如图4-3所示,采用外部时钟输入,控制分频器,得到数字载波,并假设时钟信号与发端时钟同步且2ASK为数字信号。clk分频器qstartASKclk分频器qstartASK信号判决基带信号计数器m存放器XX存放器XX图4-32ASK解调方框图注:①当q=11时,对计数器m清零;②当q=10时,根据计数器m的数值,进行判决。2ASK解调电路如图4-4所示图4-4(a)2ASK解调电路的VHDL建模电路图4-4〔b〕2ASK解调逻辑电路图2.2ASK解调的程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityaskjisport(clk:instd_logic;--系统时钟start:instd_logic;--同步信号x:instd_logic;--调制信号y:outstd_logic);--基带信号endaskj;architecturebehavofaskjissignalq:integerrange0to11;--分频计数器signalxx:std_logic;--存放x信号signalm:integerrange0to5;beginprocess(clk)beginifclk'eventandclk='1'thenxx<=x--clk上升沿把x信号赋给中间信号xxifstart='0'thenq<=0;--if语句完成q的循环计数elsifq=11thenq<=0;elseq<=q+1;endif;endif;endprocess;process(xx,q)beginifq=11thenm<=0;--m计数器清零elsifq=10thenifm<=3theny<='0';--if语句通过对m大小来判决yelsey<='1';endif;elsifxx'eventandxx'1'thenm<=m+1;计xx信号的脉冲个数endif;endprocess;endbehav;4.2.32ASK调制与解调的波形仿真与分析1.2ASK信号调制的波形仿真与分析2ASK信号调制的波形图如图4-5所示图4-5〔a〕ASK调制VHDL程序仿真图2ASK调制仿真局部放大图如图4-5〔b〕所示分析:由图可知,输入时钟CLK信号就作为载波输入,START信号为开关信号,当START为低电平时即使有时钟信号和基带信号也不会发生调制,只有当START信号为高电平电路才可以实现2ASK的调制,X为输入的基带信号,属于低频信号,Y为输出的频带信号,是基带信号搬移到高频载波上的信号,属于高频信号。由图还可以看出,当输入X为1101时,并且基带码长等于载波的6个周期,Y输出的频带信号在输入1时为高电平,其频率与CLK时钟一样,包含了6个周期,并且调制信号Y滞后于输入基带信号X的一个CLK时间,在X输入为0时,输出Y也为0,这验证了2ASK调制的原理。2.2ASK解调的波形仿真与分析2ASK解调的波形仿真图如图4-6所示图4-6〔a〕2ASK解调仿真图图4-6〔b〕2ASK解调仿真局部放大图分析:由图4-6〔a〕可以看出CLK时钟信号仍然是输入,START信号为开关信号,当START为低电平时即使有时钟信号和基带信号也不会发生解调,只有当START信号为高电平电路才可以实现2ASK的解调,X为高频信号,Y输出为基带信号,当X输入为高电平的时候,Y的输出才有信号,否那么为0可以看出当X输入高电平对应着Y输出基带信号的1011001。由图4-6〔b〕解调的放大图可以看出,输出的基带信号Y滞后输入的调制信号10个时钟周期,在q=11时,m清零,在q=10时,根据m的大小,进行对输出基带信号Y的电平的判决。在q为其他时,m计xx的脉冲数。4.3基于VHDL语言实现2FSK调制与解调4.3.12FSK调制的实现1.FSK的建模思想FSK调制的方框图如图4-7所示clk分频器clk分频器1start基带信号载波f载波f1分频器1二选一选通开关调制信号图4-7FSK调制方框图FSK调制的核心局部包括分频器,二选一选通开关等。图4-7中两个分频器分别产生两路数字载波信号;二选一开关的作用是:以基带信号作为控制信号,当基带信号为“0”,选通载波为f1;当基带信号为“1FSK调制的电路图如图4-8所示图4-8〔a〕FSK调制电路的VHDL建模电路图4-8〔b〕FSK调制的逻辑电路图2.2FSK调制的程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfsktisport(clk:instd_logic;--系统时钟start:instd_logic;--开始调制信号x:instd_logic;--基带信号y:outstd_logic);--调制信号endfskt;architecturebehavoffsktissignalq1:integerrange0to11;--载波f1计数器signalq2:integerrange0to3;--载波f2计数器signalf1,f2:std_logic;beginprocess(clk)beginifclk'eventandclk='1'thenifstart='0'thenq1<=0;elsifq1<=5thenf1<='1';q1<=q1+1;--改变q后面数字的大小改变占空比elsifq1=11thenf1<='0';q1<=0;elsef1<='0';q1<=q1+1;endif;endif;endprocess;process〔clk)--得到载波f2beginifclk'eventandclk='1'thenifstart='0'thenq2<=0;elsifq2<=0thenf2<='1';q2<=q2+1;--改变q2后面数字的大小改变占空比elsifq2=1thenf2<='0';q2<=0;elsef2<='0';q2<=q2+1;endif;endif;endprocess;process(clk,x)beginifclk'eventandclk'1thenifx='0'theny<=f1;--基带x=0,输出调制y=f1elsey<=f2;--基带x=1,输出调制为y=f2endif;endif;endprocess;endbehav;4.3.22FSK解调的实现1.2FSK解调建模的思想2FSK解调的方框图如图4-9所示基带信号存放器XX基带信号存放器XXclk分频器start调制信号判决计数器m图4-92FSK解调原理框图该模型和2ASK的模型类似,其核心局部是分频器,存放器、计数器和判决器构成。图中分频器的分频系数取值对应着调制中〔图4-7〕分频器1和分频器2中较小的分频系数值,也就是说FSK解调器的分频器输出对应着较高的那个载波信号。由于f1和f2的周期不同,假设假设f1=2f2,且基带信号电平“1〞,对应着载波f1,基带信号电平“0〞对应载波f2,那么图中计数器以f1为时钟信号,上升沿计数,基带信号“1〞码元对应计数个数为载波f1的周期,基带信号码元“0〞对应计数个数为载波f2的周期。计数器根据两种不同的计数情况,对应输出“0〞和“1〞两种电平。判决器以f1为时钟信号,对计数器输出信号进行抽样判决,并输出基带信号。2FSK解调的电路图如图4-10所示图4-10〔a〕2FSK解调电路的建模电路图4-10(b)2FSK调制的逻辑电路图2.2FSK解调的程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfskjisport(clk:instd_logic;--系统时钟start:instd_logic;--同步信号x:instd_logic;--调制信号y:outstd_logic);--基带信号endfskj;architecturebehavoffskjissignalq:integerrange0to11;--分频计数器signalxx:std_logic;--存放x信号signalm:integerrange0to5;--计数器beginprocess(clk)--对系统时钟进行分频beginifclk'eventandclk='1'thenxx<=x--clk上升沿把x信号赋给中间信号xxifstart='0'thenq<=0;--if语句完成q的循环计数elsifq=11thenq<=0;elseq<=q+1;endif;endif;endprocess;process(xx,q)beginifq=11thenm<=0;--m计数器清零elsifq=10thenifm<=3theny<='0';--if语句通过对m大小来判决yelsey<='1';endif;elsifxx'eventandxx'1'thenm<=m+1;---计xx信号的脉冲个数endif;endprocess;endbehav;4.3.32FSK调制与解调波形仿真与分析1.2FSK调制的波形仿真与分析2FSK波形仿真图如图4-11所示:图4-11〔a〕2FSK调制VHDL程序仿真图图4-11〔b〕2FSK调制VHDL程序仿真局部放大图分析:由图〔a〕可知,时钟信号CLK是输入信号,START信号为开关信号,当START为低电平时即使有时钟信号和基带信号也不会发生调制,只有当START信号为高电平电路才可以实现2FSK的调制,X为输入的基带信号,属于低频信号,Y为输出的频带信号,是基带信号搬移到高频载波上的信号,属于高频信号。可以看出当X输入为010011时,输出Y中数字码元“1〞对应着高频载波f2,数字码元“0〞对应高频载波f1。由图(b)可以看出载波f1和f2是由时钟信号经过时钟信号CLK分频得到的,f1是经过CLK12分频的到的,分f2是经过2分频得到的,基带码长分别为载波f1的2个周期,载波f2的12个周期,还可以看出输出Y滞后于载波信号2个CLK时钟。2.2FSK解调的波形仿真与分析2FSK解调的波形仿真图如图4-12所示图4-12〔a〕2FSK解调VHDL程序仿真图由4-12〔a〕可知,在解调时时钟信号CLK仍然为输入信号,START信号为开关信号,当START为低电平时即使有时钟信号和基带信号也不会发生解调,只有当START信号为高电平电路才可以实现2FSK的解调。X输入信号为调制后的频带信号,可以看出X信号是由不同频率的信号间隔构成,输出Y是解调后的基带信号,可以看出输出,01001,其中代码“0〞对应着高频信号中的频率比较高的局部,代码“1〞对应着高频信号中频率较低的信号。从图可知,解调正确。由图4-12(b)可知,在q=11时,m清零,在q=10的时候,根据m的大小,进行对输出基带Y进行电平的判决,在q为其他值得时候,计数器m记下xx(存放器xx)的脉冲数。输出信号Y滞后输入信号X12个时钟CLK图4-12〔b〕2FSK解调VHDL程序仿真局部放大图4.4基于VHDL语言实现2CPSK的调制与解调4.4.12CPSK调制的实现1.2CPSK调制的VHDL建模clk计数器startclk计数器start调制信号已调信号二选一开关相载波0相载波图4-132CPSK的调制方框图2CPSK的调制器模型主要由计数器和二选一开关等组成。计数器对外部时钟进行分频与计数,并输入两位相位相反的数字载波信号;二选一开关的功能是:在基带信号的控制下,对两路载波信号进行选通,输出的信号即为2CPSK。2CPSK调制电路如图4-14所示图4-14〔a〕2CPSK调制的建模电路图4-14〔b〕2CPSK调制电路的逻辑电路图2.2CPSK调制的VHDL程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypsktisport(clk:instd_logic;--系统时钟start:instd_logic;--开始调制信号x:instd_logic;--基带信号y:outstd_logic);--调制信号endpskt;architecturebehavofpsktissignalq:std_logic_vector(1downto0);--两位计数器signalf1,f2:std_logic;--载波信号beginprocess(clk)—此进程主要是产生两重载波信号f1和f2beginifclk'eventandclk='1'thenifstart='0'thenq<="00";elsifq<="01"thenf1<='1';f2<=0;q<=q+1;elsifq="11"thenf<='0';f2<='1';q<="00";elsef1<='0';f2<='1';q<=q+1;endif;endif;endprocess;process〔clk)--得到载波f2beginifclk'eventandclk='1'thenifstart='0'thenq2<=0;elsifq2<=0thenf2<='1';q2<=q2+1;--改变q2后面数字的大小改变占空比elsifq2=1thenf2<='0';q2<=0;elsef2<='0';q2<=q2+1;endif;endif;endprocess;process(clk,x)—此进程完成对x信号的调制beginifclk'eventandclk'1thenifq〔0〕='1'thenifx='1'theny<=f1;基带x=1,输出调制y=f1elsey<=f2;--基带x=0,输出调制为y=f2endif;endif;endif;endprocess;endbehav;4.4.22CPSK解调的实现1.2CPSK解调的VHDL建模2CPSK解调的建模方框图如图4-15所示基带信号clk基带信号clk计数器qstart调制信号判决图4-152CPSK解调方框图2CPSK调制器模型主要是由计数器和判决器等组成。图中计数器q输出与发端同步的0相数字载波。判决器工作的原理是:把计数器输出的0相载波与数字CPSK信号中的载波进行逻辑“与〞运算,当两比较信号在判决时刻都为“1”时,输出为“1”,否那么输出为“2CPSK解调的电路图如图4-16所示图4-16〔a〕2CPSK解调的VHDL建模电路图4-16〔b〕2CPSK解调的VHDL逻辑电路图2.2CPSK解调VHDL程序libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitypskjisport(clk:instd_logic;--系统时钟start:in

温馨提示

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

评论

0/150

提交评论