基于FPGA的PN码产生技术研究论文_第1页
基于FPGA的PN码产生技术研究论文_第2页
基于FPGA的PN码产生技术研究论文_第3页
基于FPGA的PN码产生技术研究论文_第4页
基于FPGA的PN码产生技术研究论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

目录第一章绪论………………11.1引言………………………11.2伪随机序列理论的开展历史……………11.3伪随机序列的应用和意义………………11.4伪随机序列研究现状……………………11.5论文的结构安排…………2第二章伪随机序列〔m序列、Gold序列和M序列〕简介……32.1伪随机序列简介…………32.2m序列…………………4m序列的产生…………4m序列的性质…………52.3Gold序列………………7Gold序列的产生……………………8Gold码的相关特性…………………9平衡Gold码…………10产生平衡Gold码的方法……………102.4M序列…………………11M序列的产生…………11M序列的特征…………12第三章FPGA及仿真工具简介……………133.1FPGA简介……………13查找表(LookUpTable)的根本原理…………………13FPGA的配置应用……………………13FPGA设计方法………………………143.2仿真软件QuartusII简介…………153.3VerilogHDL语言简介………………16第四章基于FPGA的PN码的实现…………184.1基于FPGA的m序列实现……………184.2基于FPGA的Gold序列实现………194.3基于FPGA的M序列实现……………20结论…………………………22谢辞…………………………23参考文献……………………24摘要本文讨论了在FPGA平台上利用线性反应存放器实现伪随机码发生器的方法,运用VerilogHDL语言描述各局部的设计,这样不但利于随时修改而且还节省了设计的周期和简化了整个设计。此设计以Altera公司的QuartusII为开发平台,经逻辑综合、布局布线后,适配到FPGA芯片中,给出了仿真结果,最后还给出了在示波器上显示的波形及其相关的分析。在本论文中首先简要阐述了伪随机序列的研究现状及其相关意义,接着介绍了伪随机序列的开展历史,研究方法和研究工具。然后分别对m序列、Gold序列和M序列这三种常用的伪随机序列的生成过程、随机特性以及相关特性进行了详细的研究。最后在理论证明的根底上应用QuartusII仿真验证它们的随机特性。本毕业设计主要介绍了三种常用的反应移位存放器序列〔m序列、Gold序列和M序列〕的特性,并对其进行仿真研究。关键词:FPGA伪随机序列线性反应移位存放器ABSTRACTThisarticlediscussesthewaytodesignPseudo-randomcodegeneratorwithLinearfeedbackregisteronFPGAplatform.UseVerilogHDLLanguagedescribethedesignoftheVariousparts.Thiswillnotonlyhelptomodifyatanytimeandsavethedesigncycleandsimplifytheentiredesign.ThisdesignisbasedonthedevelopmentplatformofAlteraQuartusII.Throughlogicsynthesis,layout,fitintotheFPGAchip,givethesimulationresults,andfinally,thewaveformdisplayedonanoscilloscopeanditsassociatedanalysis.Inthispaper,firstbrieflydescribedtheresearchstatusanditsrelevanceofthepseudo-randomsequence,thenthedevelopmentofapseudo-randomsequenceofhistory,researchmethodsandtools.Thencarriedoutadetailedstudyonthem-sequence,Gold-sequenceandM-sequenceofthreecommonlyusedpseudo-randomsequencegenerationprocess,thestochasticpropertiesandrelatedcharacteristics.Finally,onthebasisoftheoreticalprooftheapplicationQuartusIIsimulationofrandomfeatures.Thisgraduationprojectintroducesthecharacteristicsofthreecommonlyusedfeedbackshiftregistersequence(m-sequence,Gold-sequenceandM-sequence),andasimulationstudy.Keywords:FPGAPseudo-randomsequenceLinearfeedbackshiftregister 第一章绪论1.1引言伪随机码〔PseudoRandomCode〕又称为伪噪声码〔PseudoNoiseCode〕,简称PN码或PN序列,伪随机序列系列具有良好的随机性和接近于白噪声的相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列得到了广泛的应用。1.2伪随机序列理论的开展历史1948年以前,学者们研究伪随机序列的理论仅仅是因为其优美的数学结构。最早的研究可以追溯到1894年,作为一个组合问题来研究所谓的DeBruijn序列;上世纪30年代,环上的线性递归序列那么成为人们的研究重点。1948年Shannon信息论诞生后,这种情况得到了改变。伪随机序列己经被广泛的应用在通信以及密码学等重要的技术领域。Shannon证明了“一次一密〞是无条件平安的,无条件保密的密码体制要求进行保密通信的密钥量至少与明文量一样大。因此在此后的一段时间内,学者们一直致力于研究具有足够长周期的伪随机序列。如何产生这样的序列是20世纪50年代早期的研究热点。线性反应移位存放器(LFSR)序列是这个时期研究最多的,因为一个n级LFSR可以产生周期为2n-1的最大长度序列,而且具有满足Golomb随机性假设的随机特性,通常称之为m序列。这段时期的研究奠定了LFSR序列的根本理论和一些经典结论。但是,在1969年Massey发表了“移位存放器综合与BCH译码〞一文,引发了序列研究方向的根本性变革,从此伪随机序列的研究进入了构造非线性序列生成器的阶段。Berlekamp-Massey算法(简称B-M算法)指出:如果序列的线性复杂度为n,那么只需要2n个连续比特就可以恢复出全部的序列。从这个结论可以看出m序列是一种“极差〞的序列,它的线性复杂度太小,因而不能够直接用来做流密码系统的密钥流序列。从这里还可以看到仅仅靠Golomb的三个随机性假设来评测序列是不够的,还需要其它的一些指标。此后直到今天,密码学界的学者们一直在努力寻找构造“好〞的伪随机序列的方法。1.3伪随机序列的应用和意义伪随机序列具有良好的随机性,它的相关函数接近白噪声的相关函数(函数),即有窄的顶峰或宽的功率谱密度,使它易于从其他信号或干扰中别离出来。伪随机序列的伪随机性表现在:预先的可确定性、可重复性,使它易于实现相关接收和匹配接收,故有良好的抗干扰性能。伪随机序列(又称伪噪声序列)广泛应用于通信、雷达、导航等重要的技术领域。近年来,在自动控制、计算机、声学、光学测量、数字式跟踪和测距系统,以及数字网络系统的故障分析检测也得到广泛的应用。1.4伪随机序列研究现状迄今为止,人们获得的伪随机序列仍主要是PC〔相控〕序列,移位存放器序列〔m和M序列〕,Gold序列,GMW序列,级联GMW序列,Kasami序列,Bent序列,No序列。其中m序列是最有名和最简单的,也是研究的最透彻的序列。m序列还是研究其它序列的根底。它序列平衡,有最好的自相关特性,但互相关满足一定条件的族序列数很少(对于本原多项式的阶数小于等于13的m序列,互为优选对的序列数不多于6),且线性复杂度很小。M序列族序列数极其巨大〔当存放器级数等于6时,有226个序列〕。但其生成困难,且其互相关特性目前知之甚少,一般很少用。Gold序列互相关函数为3值,序列局部平衡,有良好的相关特性,族序列数相对较大,但它有致命的弱点,线性复杂度很低,仅是相同长度的m序列的两倍,这制约了Gold序列的广泛应用,特别在抗干扰及密码学中的应用。GMW序列具有序列平衡,线性复杂度大,自相关性能好〔同m序列〕等优点。它是非线性序列,且数量比m序列多。作为单个序列GMW序列有优势,但一族GMW序列满足一定互相关条件的序列数很少。一般不用于多址通信作地址码。级联GMW序列平衡性和相关性同于GMW序列,族数比GMW序列多,一般情况下,线性复杂度比GMW序列大。Kasami序列分小集Kasami序列和大集Kasami序列。小集Kasami序列族序列数大,且互相关值达welch下界,大集Kasami序列族序列数非常大,互相关较小集Kasami序列为劣。它们都有共同的弱点,序列是不平衡的,线性复杂度不大(但比m,Gold序列稍大)。Bent序列是80年代初构造出来的,具有序列平衡,相关值达welch下界,族序列数多,线性复杂度大等优点。它在整个80年代,90年代大放光辉,也是目前综合性能最好的伪随机序列。但Bent序列构造较难,未有满足一定要求的快速算法。No序列是80年代末构造出来的一种新型伪随机序列,它的突出优点是线性复杂度很大,且相关值可达welch下界,族序列数多,但有序列不平衡的弱点。1.5论文的结构安排论文各章的内容安排如下:第一章概括伪随机序列理论开展历史,伪随机序列的应用和意义以及其研究现状。第二章伪随机序列〔m序列、Gold序列和M序列〕简介。第三章FPGA及仿真工具简介。第四章基于FPGA的PN码的实现。第二章伪随机序列〔m序列、Gold序列和M序列〕简介2.1伪随机序列简介伪随机码,又称伪随机序列,是一种可以预先确定并可以重复地产生和复制,又具有随机统计特性的二进制码序列。伪随机序列的特性,一般情况下为:(1)信号必须具有锋利的自相关函数,且互相关函数应接近于零。(2)有足够长的码周期和尽可能大的复杂度,以确保抗侦破、抗干扰的要求。(3)有足够多的独立地址数,以满足码分多址的要求。(4)具有近似噪声的频谱,即近似连续谱且均匀分布。(5)工程上易于产生、加工、复制和控制。通常采用的二电平(0,1)伪随机序列的结构已预先确定,但它们都具有类似白噪声的相关特性,只是幅度概率分布不再服从高斯分布。伪随机序列通常具有类似于随机序列的性质,归纳起来有以下三点:(1)平衡特性:每一周期内0和1出现的次数近似相等。(2)游程特性:把随机序列中连续出现0或1的子序列称为游程。连续的0或1的个数称为游程长度。随机序列中长度为1的游程约占游程总数的1/2,长度为2的游程约占游程总数的1/4,长度为3的游程约占游程总数的1/8,即每周期内,长度为n比特的游程出现的次数比长度为n+l比特游程出现的次数多一倍。(3)相关特性:随机序列的自相关函数具有类似于白噪声自相关函数的性质,一般具有双值自相关函数。伪随机序列由0和1两个元素组成的二元(或二进制)序列是数的序列,它可以用波形进行模拟。通常把二元序列(或波形)中的元素称做比特或码元,而把它的持续时间称做比特长度。一个序列中元素0和1顺序排列的结构(排列次序)如果具有周期性那么称为周期序列,否那么称为随机序列。随机序列有三个特点:(1)序列元素的排列次序无法预先确定、也不可能重复产生和复制,也就是说它是非周期性的。(2)序列中0和1的出现次数大致相等,n个0(或1)连续出现的次数比n+1个0(或1)连续出现的次数约多一倍。(3)序列具有类似于白噪声的自相关函数〔即冲激函数(S)〕。以上三种特性是衡量序列随机特性的标准。如果一个序列,它的结构一方面是可以预先确定的,并且是可以重复产生和复制的;另一方面它又具有随机序列的随机特性,这种序列就称为伪随机二元序列(PseudoRandomBinarySequence—PRBS)。伪随机序列是一种周期序列,所以对它的随机特性的衡量标准要作相应改变:在一个周期内,两种不同元素出现的次数最多相差一次——均衡性特性。(2)在一个周期内,长度为n的游程(一个序列中取值相同的那些连在一起的元素合称为一个“游程〞)出现的次数比长度为n+1的游程出现的次数多一倍——游程分布特性。(3)序列具有双值自相关函数——随机特性,即=1当j=0时=K当时〔2-1〕其中P为序列的周期(或长度),K<1。当K接近于0时,这种双值自相关函数特性很接近白噪声的自相关函数特性,所以有时又把双值自相关函数序列称做伪噪声序列。常用的伪随机码主要有m序列、GOLD序列、WALSH码和OVSF码,其中最常见的是m序列。GOLD码是m序列的复合码,是由2个码长相等,码时钟速率相同的序列优选对模2加构成,每改变2个序列相对位移就可得到一个新的GOLD序列。GOLD序列具有良好的自、互相关特性,且地址数远远大于m序列地址数,结构简单,易于实现,在工程上得到较为广泛的应用。WALSH函数是一种非正弦的完备正交函数系,具有理想的互相关特性,两两之间的互相关函数为0,亦即它们是正交的,因而在码分多址通信中,WALSH函数可以作为地址码使用,在IS-95中,正向传输信道就使用了64阶WALSH函数。OVSF码是一种正交可变扩频因子码,保证在不同时隙上的不同扩频因子的扩频码正交,而在每个时隙上可使用的码的数目不固定,与每个物理信道的数据速率和扩频因子有关,OVSF码在TD-SCDMA系统中得到了广泛使用。本论文主要研究m序列、GOLD序列和M序列。2.2m序列定义:m序列是最长线性反应移位存放器序列的简称。它是由带线性反应的移位存放器产生的最长的序列。2.2.图2-1示出的是由n级移位存放器构成的码序列发生器。它是由n个二元存储器和模二开关网络组成。二元存储器通常是一个双稳态触发器,它的两种状态记作“0〞和“1〞,其状态取决于时钟控制下输入的信息〔“0〞或“1〞〕,比方第i级移位存放器状态决定于前一时钟脉冲后的第i-1级移位存放器的状态。图2-1n级移位存放器构成的码序列发生器图中,,,…,均为反应线,其中,表示反应连接。因为m序列是由循环序列发生器产生的,因此和肯定为1,即参与反应。而反应系数,,…,假设为1,参与反应;假设为0,那么表示断开反应线,即开路、无反应连线。一个线性反应移位存放器能否产生m序列,取决于它的反应系数〔,…,的总称〕。一个n级线性反应移位存放器产生m序列的充要条件是:反应移位存放器的特征多项式f〔x〕满足以下条件。〔1〕f(x)为既约的;〔2〕f(x)可以整除〔〕,且;〔3〕f(x)除不尽,那么q<p。通常把满足上面3个条件的特征多项式称为本原多项式,一个本原多项式对应一个最大长度移位m序列,只要知道或找到了本原多项式,就能由它构造m序列产生器。如果某多项式,那么它的逆多项式也是本原多项式,也是本原多项式。经过前人的大量运算,已将常用本原特征多项式列表备查,表2-1列出了常见局部m序列发生器的本原多项式。表2-1常见局部m序列发生器的本原多项式n本原多项式n本原多项式2[1,2]111[2,11],[2,5,8,11],…1763[1,3],[2,3]212[1,4,6,12],…1444[1,4],[3,4]213[1,3,4,13],…6305[2,5],[2,3,4,5],[1,2,4,5],…614[1,6,10,14],…7566[1,6],[1,2,5,6],[2,3,5,6],…615[1,15],…18007[1,7],[3,7],[1,2,3,7],…1616[1,3,12,16],…20488[2,3,4,8],[3,5,6,8],…1817[1,3,17],…77109[4,9],[3,4,6,9],…4818[7,18],…806410[3,10],[2,3,8,10],…6019[1,2,5,19],…275942.2.2mm序列是一种随机序列,具有随机性,其自相关函数具有二值的锋利特性。但互相关函数是多值的。m序列具有以下性质。m序列的随机性〔均衡性〕在m序列码的一个周期中,码元为“1〞的数目和码元为“0〞的数目只相差1个。m序列的游程分布我们把一个序列中取值相同的那些相继的〔连在一起的〕元素合称为一个“游程〞。在一个游程中元素的个数称为游程长度。一般来说,在m序列中,长度为1的游程占游程总数的1/2;长度为2的游程占游程总数的1/4;长度为3的占1/8……严格地讲,长度为k的游程数目占游程总数的2-k,其中。而且在长度为k的游程中,连“1〞的游程和连“0〞的游程各占一半。3.m序列的移位相加特性m序列和它的位移序列模二相加后所得序列仍是该m序列的某个位移序列。设是周期为p的m序列r次延迟移位后的序列,那么,其中为某次延迟移位后的序列。比方,=000111101011001…延迟两位后得,做模二和计算后=010001111010110,…=010110010001111,…可见,为该序列延迟8位后的序列。4.m序列的自相关特性自相关是指m序列与逐位移位后序列相似性的一种度量。自相关可用自相关函数或自相关系数来描述。对于周期为P的两个循环序列{}和{}相互一致性的度量,其数学表达式为〔2-1〕〔2-2〕自相关系数与自相关系数只差一个比例常数,其余各方面特性都一样,有时两者统称为自相关函数。在二进制序列情况下,只要比拟序列{}与移位后{}对应码元即可。根据上述m序列的特性,即自相关函数为〔2-3〕式中,A为对应码元相同的数目;D为对应码元不同的数目。自相关系数为〔2-4〕对于m序列,其码长为,在这里P也等于码序列中的码元数,即“0〞和“1〞的个数的总和。其中“0〞的个数是因为去掉移位存放器的全零状态,所以A值为〔2-5〕“1〞的个数〔即不同位〕D为〔2-6〕根据移位相加特性,m序列{}与移位后的序列{}进行模2加后,仍然是一个m序列,所以“0〞和“1〞的码元个数仍差1。由〔2-4〕~(2-6)可得m序列的自相关系数为当时〔2-7〕当时,因为{}与{}的码序列完全相同,经模2加后,全部为“0〞,即D=0,而A=P。由式〔2-4〕可知当时因此,m序列的自相关系数为〔2-8〕假设码序列周期为P,码元宽度〔常称为码片宽度,以便于区别信息码元宽度〕为,那么自相关系数是以为周期的函数,如图2-2所示。图中横坐标以表示,如,那么移位1比特,即。在的范围内,自相关系数为〔2—9〕图2-2m序列的自相关函数2.3Gold序列定义:m序列优选对的两个n次本原多项式乘积构成的新序列为Gold序列,或m序列优选对的两个本原多项式所产生序列的移位模2和新序列也叫做Gold序列。Gold序列的产生Gold码是基于m序列优选对产生的,首先来看m序列的优选对。1.m序列优选对所谓m序列优选对,是指在m序列集中,其互相关函数最大值的绝对值小于某个值的两条m序列。设序列{a}是对应n阶本原多项式产生的m序列,序列{b}是对应n阶本原多项式产生的m序列。当它们的互相关函数值满足以下不等式〔2-10〕时,和产生的m序列{a}和{b}便构成一优选对。2.Gold码的产生方法Gold码是m序列的组合码,是由两个长度相同、速率相同、但码字不同的m序列优选对模2加后得到的,具有良好的自、互相关性,且地址码数远远大于m序列。一对m序列优选对可产生条Gold码。这种码发生器机构简单,易于实现,工程中应用广泛。设序列{a}和{b}为长的m序列优选对。以{a}序列为参考序列,对{b}序列进行移位i次,得到{b}的移位序列{}〔i=0,1,2,…,N-1〕,然后与{a}序列模2加后得到一新的长度为N的序列{},那么此序列就是Gold序列,即{}={a}+{}i=0,1,…,N(2-11)对不同的i,得到不同的Gold序列,这样可得到条Gold码,加上{a}序列和{b}序列,共得到条Gold码。把这条Gold码称为一Gold码族。Gold码的产生方法有两种形式,一种是串联成2n级的线性移位存放器,另一种是由两个n级移位存放器并联而成的。例如n=6,m序列的本原多项式为采用第一种形式,串联成12级的线性移位存放器,将两序列的本原多项式相乘,可得到阶数为12的多项式〔2-12〕由此可得n=12的移位存放器如图2-3〔a〕所示。图2-3〔b〕给出了Gold码发生器的并联结构。图2-3Gold码发生器〔a〕串联结构〔b〕并联结构Gold码的相关特性由m序列优选对模2加产生的Gold码族中的条Gold码序列已不再是m序列,也不具有m序列的游程特性和二值相关特性。但Gold码族中任意两序列之间互相关函数都满足〔2-13〕Gold码序列具有三值互相关特性,表3-11给出了互相关值和出现某种相关值的概率。表2-2Gold序列的互相关函数存放器长度码长归一化互相关函数值出现概率n为奇数0.500.250.25n为偶数,但不被4整除0.750.1250.1252.3.3平衡Gold码早在50年代,哈尔凯维奇就从理论上证明:要克服多径衰落干扰的影响,信道中传输的最正确信号形式应该是具有白噪声统计特性的信号形式。扩频函数(伪码)逼近白噪声的统计特性,因而扩频通信具有抗多径干扰的能力。香农也指出:在高斯噪声的干扰下,有限平均功率的信道上,实现有效和可靠通信的最正确信号是具有白噪声统汁特性的信号。而白噪声统计特性中的一个重要特性就是平衡特性。Gold序列具有序列多、相关值低等特点,但其平衡性不一致。R.Gold的研究认为,Gold序列的平衡性有三种,即Gold序列有三种0,1分布情况:一种是l码元数目比0码元数目仅多一个,这就是平衡Gold序列;另一种是l码元过多;再一种是l码元过少,这两种部是非平衡序列。当p为奇数时,在周期N=的个Gold序列中,有个序列平衡,即序列中l码元数为个,比0码元数多一个;有个序列,序列中l码元数为个,即l码元过多;另外有个序列,序列中l码元数有个,即l码元过少。对n为奇数的Gold序列集合,有50%的序列是平衡的。当n为偶数(但不为4的倍数)时,在N=的N+2个Gold序列中,有个序列是平衡的,为Gold序列集合巾序列数的75%。在扩频通信中,序列的平衡性对通信质量影响很大。在扩频系统中伪随机序列是用正电平和负电平来表示的,平衡序列中正负电平大致相当,使得发送信号的直流分量小,而且具有更好的频谱特性。这不仅在工程中更容易实现,而且可以有效抑制载频、降低发射功率、不易被侦破等。反之,如果序列不平衡,将破坏扩频通信系统的保密、抗干扰和抗侦破能力。产生平衡Gold码的方法1.特征相位为了寻找平衡Gold码,首先确定特征相位。每一条最长线性移位存放器序列都具有特征相位。当序列处于特征相位时,序列每隔一位抽样后得到的序列与原序列完全一样,这是序列处于特征相位的特征。设序列的特征多项式f(x)为一n级线性移位存放器产生m序列的本原多项式,序列的特征相位由g〔x〕/f(x)的比值确定。g(x)为生成函数,为一阶数等于或小于n的多项式。g〔x〕的计算方法如下:〔2-14〕〔2-15〕序列多项式为〔2-16〕长除后就可得到处于特征相位的m序列。2.相对相位处于特征相位上的序列{a}和{b}序列,以{a}序列为参考序列,移动{b}序列,使之第一位为“0〞,对应于{a}序列第一位“1〞。两序列相加后得到的序列必定是平衡Gold码。那么,移动序列{b}的第一位为“0〞的序列的前n位,就是产生平衡Gold码的相对相位。由此我们可以总结出产生平衡Gold码的一般步骤为:选一参考序列,其本原多项式为,求出生成多项式;由求出序列多项式,使得序列{a}处于特征相位上;求移位序列{b},使位移序列的初始状态的第一位为“0〞,即处于相对相位,对应于{a}的第一位“1〞;将处于特征相位的{a}序列与处于相对相位的{b}序列模2加,就可以得到平衡Gold码序列。2.4M序列定义:M序列是最长序列,它是由非线性移位存放器产生的码长为的周期序列。M序列已到达n级移位存放器所能到达的最长周期,所以又称为全长序列。M序列的产生M序列的构造也可以在m序列根底上实现。因为m序列已经包含个非0状态,缺少由n个0组成的一个0状态。因此,由m序列构成M序列时,只要在适当的位置插入一个0状态〔n个0〕,即可使m序列码长由增长至码长为的M序列转换。显然0状态插入应在状态100…0之后,使之出现0状态,同时还必须使0状态的后续为原m序列状态后续0…01即可。产生M序列的状态为〔即000…0〕,参加反应逻辑项后,反应逻辑为:〔2-17〕其中,为原m序列反应逻辑函数。对于本原多项式产生的长度的m序列加长为码长的M序列,其反应逻辑函数为:〔2-18〕其M序列发生器电路如图2-4所示。图2-44级M序列发生器电路初始状态为〔0100〕,其状态流程为:0100→1001→0011→0110→1101→1010→0101→1011→0111→1111→1110→1100→1000→0000→0001→0010→0100〔初态〕由上述循环移位过程,可以看到为000的三状态检测器,同时起到检测1000和0000两个状态的作用。当它检测到1000状态时,检测器输出为1状态。此状态和反应输入〔为1状态〕模2加,输入到状态为0,使后续状态为0状态。在0状态时检测器继续输出1状态,此状态和反应输入〔此时为0态〕模2加,输入到状态为1,使0状态的后续为0001,结果把0状态插进。在上述过程中,检测器起到1000和0000两个状态的检测作用。M序列的特征M序列与m序列类似,在一定程度上也具有较好的随机性,表现如下所述。〔1〕在每一个周期内,序列中0和1元素各占1/2,即各为个。〔2〕在一个周期内共有个游程,其中同样长度的0游程和1游程的个数相等。当时,游程长度为k的游程占总游程数的,即等于。长度为n-1的游程不存在。长度为n的游程有2个。〔3〕M序列不再具有移位相加性,因而其自相关函数不再具有双值特性,而是一个多值函数。对于周期的M序列归一化自相关函数具有如下相关值:①②③其中,是M序列发生器的反应逻辑函数,表示在的形式时,其为的真值表中的函数所在序列中1的个数。通常把称作的权重。第三章FPGA及仿真工具简介3.1FPGA简介作为一种可编程逻辑器件,现场可编程门阵列FPGA〔FieldProgrammableGateArray〕是一类广泛应用的高密度可编程逻辑器件。它的出现是可编程逻辑器件开展变化的必然,它的出现推动可编程逻辑器件的进一步开展。对于可编程逻辑器件,从实现原理上讲,一般分为两种:基于查找表(LookUpTable)加存放器结构和SRAM工艺的FPGA,集成密度高,存放器资源丰富,适合做时序逻辑设计,多用于上万门以上的设计,如数字信号处理和各种算法的实现等;基于乘积项〔ProductTerm〕结构和EEPROM工艺的FPGA,集成密度低,乘积项资源丰富,适合做组合逻辑设计,多用于5000门以下的设计,如编码、译码电路等。3.1.1查找表(LookUpTable)的根本原理查找表(LookUpTable)本质上就是一个RAM。目前FPGA中多使用四输入的LUT,所以每一个LUT可以看成一个有四位地址线的16×1的RAM。当用户通过原理或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。FPGA主要包括可配置逻辑块〔CLB〕、输入/输出模块〔IOB〕、可编程互连线〔PI〕和片内RAM。CLB是FPGA的根本结构单元,能够实现逻辑函数,还可配置成RAM等形式。CLB一般由函数发生器、数据选择器、触发器和信号变换电路等局部组成。输入/输出模块〔IOB〕分布于器件的四周,提供内部逻辑与外围引脚间的连接。可编程互连线〔PI〕有许多金属线构成,以提供高速可靠的内部连线,将CLB之间、CLB和IOB之间连接起来构成复杂逻辑。片内RAM是在对FPGA进行复杂数字系统设计时必不可少的片内存储器。3.1.2FPGA的配置应用FPGA有多种配备模式:依据配置时钟的提供源不同,可将其分为主动模式和被动模式;依据配置数据位数的多少,可将其分为并行模式和串行模式。对FPGA的配置操作,可以使用厂商提供的专门的配置芯片来完成,也可使用通用MCU来完成。用户可以根据不同的配置模式需要,采用不同的编程方式。通常FPGA由布线资源分隔的可编程逻辑单元(或宏单元)构成阵列,又由可编程I/O单元围绕阵列构成整个芯片,排成阵列的逻辑单元由布线通道中的可编程内连线连结起来实现一定的逻辑功能,即分段的金属互连线可以由可编程开关以任意方式连接形成逻辑单元之间要求的信号线。一个FPGA包含丰富的具有快速系统速度的逻辑门、存放器和I/O组成。按编程特性分类,主要有一次性可编程反熔丝OPT和基于静态存储器(SRAM)的编程结构。3.1.3FPGA设计方法 FPGA采用层次化设计,合理划分各个模块优点是使用不同的输人方式〔原理图,状态图,HDL〕,可以充分发挥各自特色使设计具有可读性与易于独立调试特点使设计具有可重用性。另外,FPGA采用自上而下的系统设计方法。传统的设计思路是自下而上,即设计者首先将各种根本单元,如各种门电路以及加法器、计数器等模块做成根本单元库,然后在设计时调用这些根本单元,逐级向上组合,直到形成系统为止。基于EDA技术的自上而下的设计方法正好相反,它首先在系统级对系统进行设计,并进行功能模块的划分与定义,然后在功能级对各个模块进行描述,并进行仿真,以预测设计的正确性。为了提高系统的工作速度,可以采用基于流水线的设计方法。所谓流水线设计实际上是把规模较大、层次较多的逻辑电路分为几个级,在每一级插人存放器组且暂存中间数据。很显然,流水线设计在提高系统处理速度的同时也多耗了器件资源,但是,大多数FPGA中的逻辑单元都比拟丰富,因此便于实现流水线设计。设计流程:设计首先从系统设计入手,在顶层进行功能方框的划分和结构设计,在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的。按照“自顶向下〞的设计方法进行系统划分。输入Verilog代码。将以上的设计输入编译成标准的VHDL文件,然后将文件调入VHDL仿真软件进行功能仿真,检查逻辑功能是否正确。利用综合器对源代码进行综合优化处理,生成门级描述的网表文件,即将源文件调入逻辑综合软件进行逻辑分析处理。如果整个设计超出器件的宏单元或I/O单元资源,可以将该方案分到多片同系列的器件中。利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后,产生多项设计结果。根据适配后的仿真模型,可以进行适配后的时序仿真。将适配器产生的器件编成文件通过编程器载入到目标芯片FPGA中。设计流程的优点如下:(1)设计流程从功能描述开始到物理实现的完成与设计人员的开发思路符合,方便设计人员进行开发。(2)功能设计完全独立于物理实现,采用自顶向下的设计方法,功能输入采用标准的VHDL输入方法,不含有任何器件的物理信息,工程师可以有更多的时间集中精力进行功能描述,可在设计过程的最后阶段任意选择或更改物理器件。(3)设计再利用较方便。(4)利于设计的更改。工程师可以在极短的时间内修改设计,选择最优方案。(5)设计并处理大规模复杂电路。目前的FPGA器件正向高级程度、深亚微米工艺开展。为设计系统的小型化、低功耗、高可靠性等提供了集成的手段。(6)设计周期缩短,生产率大大提高,性能明显提高,产品竞争力加强。3.2仿真软件QuartusII简介QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL〔AlteraHardwareDescriptionLanguage〕等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统〔SOPC〕开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。功能:QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片〔电路〕平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创立,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。QuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢送。3.3VerilogHDL语言简介1.VerilogHDL的特点VerilogHDL和VHDL一样,是目前大规模集成电路设计中最具代表性、使用最广泛的硬件描述语言之一。作为硬件描述语言,VerilogHDL具有如下特点:(1)能够在不同的抽象层次上,如系统级、行为级、RTL〔RegisterTransferLevel〕级、门级和开关级,对设计系统进行精确而简练的描述;(2)能够在每个抽象层次的描述上对设计进行仿真验证,及时发现可能存在的设计错误,缩短设计周期,并保证整个设计过程的正确性;(3)由于代码描述与具体工艺实现无关,便于设计标准化,提高设计的可重用性。如果有C语言的编程经验,只需很短的时间内就能学会和掌握VerilogHDL,因此,VerilogHDL可以作为学习HDL设计方法的入门和根底。2.VerilogHDL的根本结构VerilogHDL描述是由模块〔module〕构成的,每个模块对应的是硬件电路中的逻辑实体。因此,每个模块都有自己独立的功能或结构,以及用于与其它模块之间相互通信的端口。例如,一个模块可以代表一个简单的门,一个计数器,一个存储器,甚至是计算机系统等。例3-1加法器的verilog描述/****************************************************///MODULE:adder//FILENAME:add.v//VERSION:v1.0//DATE:May5th,2003//AUTHOR:Peter//CODETYPE:RTL//DESCRIPTION:Anadderwithtwoinputs(1bit),oneoutput(2bits)./***************************************************/moduleadder(in1,in2,sum);inputin1,in2;output[1:0]sum;wirein1,in2;reg[1:0]sum;always@(in1orin2)beginsum=in1+in2;endendmodule一段完整的代码主要由以下几局部组成:第一局部是代码的注释局部,主要用于简要介绍设计的各种根本信息。从上面的注释中可以了解到一些根本信息,如代码中加法器的主要功能、设计工程师、完成的日期及版本。例3-1的模块名是adder,有两个输入端口in1,in2和一个输出端口sum。其中输入信号是一位的,其数据类型声明为连线型(wire);输出是两位的存放器类型。这些信息都可以在注释中注明。这一局部内容为可选项,建议在设计中采用,以提高代码的可维护性。第二局部是模块定义行,这一行以module开头,然后是模块名和端口列表,标志着后面的代码是设计的描述局部。第三局部是端口类型和数据类型的说明局部,用于端口、数据类型和参数的定义等等。第四局部是描述的主体局部,对设计的模块进行描述,实现设计要求。模块中“always-begin〞和“end〞构成一个执行块,它一直监测输入信号,其中任意一个发生变化时,两个输入的值相加,并将结果赋值给输出信号。这些定义和描述可以出现在模块中的任何位置,但是变量、存放器、线网和参数的使用必须出现在相应的描述说明局部之后。为了使模块描述清晰和具有良好的可读性,建议将所有的说明局部放在设计描述之前。第五局部是结束行,就是用关键词endmodule表示模块定义的结束。模块中除了结束行以外,所有语句都需要以分号结束。第四章基于FPGA的PN码的实现4.1基于FPGA的m序列实现我们以9阶移位存放器为例,来产生m序列。其本原多项式为。其电路原理图如图4-1所示:图4-19阶LFSR产生的m序列电路原理图软件仿真

温馨提示

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

评论

0/150

提交评论