基于FPGA的m序列发生器.docx
《基于FPGA的m序列发生器.docx》由会员分享,可在线阅读,更多相关《基于FPGA的m序列发生器.docx(25页珍藏版)》请在冰豆网上搜索。
基于FPGA的m序列发生器
基于FPGA的m序列发生器
摘 要
m序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得产生该序列的移位寄存器反馈逻辑式,结合FPGA芯片结构特点,在序列算法实现中采用元件例化语句。
算法运用VHDL语言编程,以A1tera的QuartusⅡ软件为开发平台,给出了序列的仿真波形。
序列的统计特性分析表明:
该方法产生的序列符合m序列的伪随机特性,验证了算法的正确性。
关键词:
m序列;移位寄存器理论;VHDL语言
1m序列
m序列是伪随机序列的一种,结构简单,实现方便。
在现代工程实践中,m序列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。
例如,在连续波雷达中可用作测距信号,在遥控系统中可用作遥控信号,在多址通信中可用作地址信号,在数字通信中可用作群同步信号,还可用作噪声源及在保密通信中起加密作用等。
伪噪声发生器在测距、通信等领域的应用日益受到人们重视。
目前,m序列产生实现方法主要有3种:
(1)门电路实现
该方法设计简单,但随移位寄存器级数的增长,电路装调困难,且占用的印制板面积较大。
(2)DSP编程实现
该方法专业性过强,不适合一般用户。
(3)VHDL与CPLD实现
由于CPLD的高集成度,而且VHDL语言编程较为方便,故可以大大减少电路的装调的困难。
文章提出VHDL语言实现,,l序列电路是周期、初相位可编程变化的,其应用较为灵活,通过微处理器对其进行适当的初始化,即可产生用户所需周期、初相位的m序列输出。
用软件方式构成的特点是采用灵活的数据查询方式可以获得任意级数n的本原多项式系数,从而实现m序列的产生,但速度受到单片机工作速度的限制。
而FPGA具有硬件电路实现的优点,又具有设计上的灵活性,并且由于FPGA便于实现大规模的数字系统。
1.1理论基础
m序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。
。
m序列发生器的结构主要分为两类,一类称为简单型码序列发生器,另一类称为模块型码序列发生器。
原理图如图1所示。
图1-1m列原理图
扰码的目的是使短周期输入序列变为长周期的信道序列。
从原则上看,就可以用将一个长周期序列叠加在输入序列上的方法来实现,并且叠加序列的周期越长越好。
从理论上说,一个真正的随机(二进制)序列的“周期”是无限长的,但是,采用这种序列时在接收端将无法产生相同的序列与之同步。
所以,人们就不得不企图用简单电路来产生尽量长的序列。
同时随机噪声在通信技术中,首先是作为有损通信质量的因素受到人们重视的。
信道中存在的随机噪声会使模拟信号产生失真,或使数字信号解调后出现误码;同时,它还是限制信道容量的一个重要因素。
因此,最早人们是企图设计消除或减小通信系统的随机噪声,但是,有时人们也希望获得随机噪声。
例如,在实验室中对通信设备或系统进行测试时,有时要故意加入一定的随机噪声,这时则需要产生它。
20世纪40年代末,随着通信理论的发展,仙农(Shannon)就曾指出,在某种情况下,为了实现最有效的通信,应采用具有白噪声的统计特性的信号。
另外,为了实现高可靠的保密通信,也希望利用随机噪声。
然而,利用随机噪声的最大困难是它难以产生和处理。
直到60年代,伪随机噪声的出现才使上述困难得到解决。
伪随机噪声具有类是与随机噪声的一些统计特性,同时又便于重复产生和处理。
由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的实际应用。
目前广泛应用的伪随机噪声都是由数字电路产生的周期序列(即滤波等处理后)得到的。
今后我们将这种周期序列称为伪随机序列。
通常产生伪随机序列的电路为一反馈移存器。
他又可分为线性反馈移存器和非线性反馈遗存器两类。
由线性反馈遗存器产生出的周期最长的二进制数字序列,称为最大长度线性反馈遗存器序列,通常简称为m序列。
由于它的理论比较成熟,实现比较简便,实际应用也比较广泛[7]。
m序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最长的一种序列。
图2-2中示出了n级移位寄存器,其中有若干级经模2加法器反馈到第1级。
不难看出,在任何一个时刻去观察移位寄存器的状态,必然是
个状态之一,其中每一状态代表一个n位的二进制数字;但是,必须把全0排斥在外,因为如果一个进入全0,不论反馈线多少或在哪些级,这种状态就不会再改变。
所以,寄存器的状态可以是非全0的
状态之一。
这个电路的输出序列是从寄存器移出的,尽管移位寄存器的状态每一移位节拍改变一次,但无疑地是循环的。
如果反馈线所分布的级次是恰当的,那么,移位寄存器的状态必然各态历经后才会循环。
这里所谓“各态历经”就是所有
个状态都经过了。
由此可见,应用n级移位寄存器所产生的序列的周期最长是
。
同时由于这种序列虽然是周期的,但当n足够大时周期可以很长,在一个周期内0和1的排列有很多不同方式,对每一位来说是0还是1,看来好像是随机的,所以又称为伪随机码;又因为它的某一些性质和随机噪声很相似,所以又称为伪噪声码(PN码)。
1.1.1线性反馈移位寄存器
图1-2线性移位寄存器
由于带有反馈,因此在移位脉冲作用下,移位寄存器各级的状态将不断变化,通常移位寄存器的最后一级做输出,输出序列为
输出序列是一个周期序列。
其特性由移位寄存器的级数、初始状态、反馈逻辑以及时钟速率(决定着输出码元的宽度)所决定。
当移位寄存器的级数及时钟一定时,输出序列就由移位寄存器的初始状态及反馈逻辑完全确定。
当初始状态为全零状态时,移位寄存器输出全0序列。
为了避免这种情况,需设置全0排除电路。
(1)线性反馈移位寄存器的递推关系式
递推关系式又称为反馈逻辑函数或递推方程。
设图10-1所示的线性反馈移位寄存器的初始状态为(a0a1…an-2an-1),经一次移位线性反馈,移位寄存器左端第一级的输入为
若经k次移位,则第一级的输入为
其中,l=n+k-1≥n,k=1,2,3,…
(2)线性反馈移位寄存器的特征多项式
用多项式f(x)来描述线性反馈移位寄存器的反馈连接状态:
若一个n次多项式f(x)满足下列条件
f(x)为既约多项式(即不能分解因式的多项式);
f(x)可整除(xp+1),p=2n-1;
f(x)除不尽(xq+1),q
则称f(x)为本原多项式。
2m序列的性质
2.1均衡性
在一个周期中,m序列中“1”的个数比“0”的个数多一个。
N级移位寄存器有2n状态,这些状态对应二进制有一半为偶数(即末位数为0),另一半为奇数(即末尾数为1)。
m序列一个周期经历2n-1个状态,少一个全0状态(属于偶数状态),因此在一个周期中“1”的个数比“0”的个数多一个。
例如,级数n=3,码序列周期P=23-1=7时,起始状态为“111”,Ci=(13)8=(1011)2,即C0=1、C1=0、C2=1、C3=1。
产生的m序列为1110010,其中码元为“1”的有4个,码元为“0”的有3个,即在一个周期中“1”的个数比“0”多一个。
2.2游程特性
长度为k的游程数占游程总数的1/2k。
一个周期中长度为1的游程数占游程总数的1/2;长度为2的游程数占游程总数的1/4;其中1<=k<=n-1。
2.3移位相加特性
一个m序列与其循环移位逐次比较,相同码的位数与不同码的位数相差1位。
例如原序列{Xi}=1110010,那么右移2位的序列{Xi-2}=0011101.
2.4自相关特性
m序列具有非常重要的自相关特性。
在m序列中,常常用+1代表0,用-1代表1。
此时定义:
设长为p的m序列,记作
经过j次移位后,m序列为
其中ai+p=ai(以p为周期),以上两序列的对应项相乘然后相加,利用所得的总和
来衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(a1,a2,a3,…,ap)的自相关函数。
记作
经过j次移位后,m序列为
其中ai+p=ai(以p为周期),以上两序列的对应项相乘然后相加,利用所得的总和
来衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(a1,a2,a3,…,ap)的自相关函数。
记作
当采用二进制数字0和1代表码元的可能取值时
由移位相加特性可知,
仍是m序列中的元素,所以式(10-7)分子就等于m序列中一个周期中0的数目与1的数目之差。
另外由m序列的均衡性可知,在一个周期中0比1的个数少一个,故得A-D=-1(j为非零整数时)或p(j为零时)。
因此得
m序列的自相关函数只有两种取值(1和-1/p)。
R(j)是一个周期函数,即
式中,k=1,2,…,p=(2n-1)为周期。
而且R(j)是偶函数,即
图2-1m序列自相关函数
2.5伪噪声特性
如果我们对一个正态分布白噪声取样,若取样值为正,记为+1,取样值为负,记为-1,将每次取样所得极性排成序列,可以写成
…+1,-1,+1,+1,+1,-1,-1,+1,-1,…
这是一个随机序列,它具有如下基本性质:
(1)序列中+1和-1出现的概率相等;
2)序列中长度为1的游程约占1/2,长度为2的游程约占1/4,长度为3的游程约占1/8,…一般地,长度为k的游程约占1/2k,而且+1,-1游程的数目各占一半;
(3)由于白噪声的功率谱为常数,因此其自相关函数为一冲击函数δ(τ)。
3m序列的应用
3.1扩展频谱通信
扩展频谱通信(SpreadSpectrumCommunication)是将待传送的信息数据被伪随机编码(扩频序列:
SpreadSequence)调制,实现频谱扩展后再传输,接收端则采用同样的编码进行解调及相关处理,恢复原始信息数据。
显然,这种通信方式与一般常见的窄带通信方式相反,是在扩展频谱后,宽带通信,再相关处理恢复成窄带后解调数据。
扩展频谱通信方式有许多优点,如抗干扰、抗噪音、抗多径衰落、低功率谱密度下工作、有保密性、可多址复用和任意选址、高精度测量等。
扩展频谱通信作为新型通信方式,特别引人注目,得到了迅速发展,如今在移动通信、卫星通信、宇宙通信、雷达、导航以及测距等领域得到越来越广泛的应用。
扩频通信的优势主要来自于伪随机码具有白噪声的统计特性。
而随着扩频速率的不断提高,扩频码的长度急剧增加,利用计算机设计并验证扩频码的各项指标能大大提高效率。
m序列是伪随机序列中最重要的序列中的一种,是最长的线性移位寄存器序列。
既然,m序列在扩频通信中占据着极其重要的位置,而对于m序列的产生及仿真的研究,自然也就有很大的必要性。
在雷达信号设计中的应用
近年兴起的扩展频谱雷达所采用的信号是已调制的具有类似噪声性质的伪随机序列,它具有很高的距离分辨力和速度分辨力。
这种雷达的接收机采用相关解调的方式工作,能够在低信噪比的条件下工作,同时具有很强的抗干扰能力。
该型雷达实质上是一种连续波雷达,具有低截获概率性,是一种体制新、性能高、适应现代高技术战争需要的雷达。
采用伪随机序列作为发射信号的雷达系统具有许多突出的优点。
首先,它是一种连续波雷达,可以较好地利用发射机的功率。
其次,它在一定的信噪比时,能够达到很好的测量精度,保证测量的单值性,比单脉冲雷达具有更高的距离分辨力和速度分辨力。
最后,它具有较强的抗干扰能力,敌方要干扰这种宽带雷达信号,将比干扰普通的雷达信号困难得多。
在通信系统中的应用[1]
伪随机序列是一种貌似随机,实际上是有规律的周期性二进制序列,具有类似噪声序列的性质,在CDMA中,地址码都是从伪随机序列中选取的,在CDMA中使用一种最易实现的伪随机序列:
m序列,利用m序列不同相位来区分不同用户;为了数据安全,在CDMA的寻呼信道和正向业务信道中使用了数据掩码(即数据扰乱)技术,其方法是用长度为2的42次方减1的m序列用于对业务信道进行扰码(注意不是扩频),它在分组交织器输出的调制字符上进行,通过交织器输出字符与长码PN码片的二进制模工相加而完成。
扩展频谱技术的理论基础是山农公式。
对于加性白高斯噪声的连续信道,其信道容量C与信道传输带宽B及信噪比S/N之间的关系可以用下式表示
这个公式表明,在保持信息传输速率不变的条件下,信噪比和带宽之间具有互换关系。
就是说,可以用扩展信号的频谱作为代价,换取用很低信噪比传送信号,同样可以得到很低的差错率。
扩频系统有以下特点:
(1)具有选择地址能力;
(2)信号的功率谱密度很低,有利于信号的隐蔽;
(3)有利于加密,防止窃听;
(4)抗干扰性强;
(5)抗衰落能力强;
(6)可以进行高分辨率的测距。
扩频通信系统的工作方式有:
直接序列扩频、跳变频率扩频、跳变时间扩频和混合式扩频。
3.2通信加密
图3-1m序列加密
m序列自相关性较好,容易产生和复制,而且具有伪随机性,利用m序列加密数字信号使加密后的信号在携带原始信息的同时具有伪噪声的特点,以达到在信号传输的过程中隐藏信息的目的;在信号接收端,再次利用m序列加以解密,恢复出原始信号。
4开发工具简介
4.1QuartusII简介
Quartus®IIdesign是最高级和复杂的,用于system-on-a-programmable-chip(SOPC)的设计环境。
QuartusIIdesign提供完善的timingclosure和LogicLock™基于块的设计流程。
QuartusIIdesign是唯一一个包括以timingclosure和基于块的设计流为基本特征的programmablelogicdevice(PLD)的软件。
QuartusII设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmeddevices开发的统一工作流程。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
当前官方提供下载的最新版本是v12.1。
AlteraQuartusII(3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。
工程师使用同样的低价位工具对StratixFPGA进行功能验证和原型设计,又可以设计HardCopyStratix器件用于批量成品。
系统设计者现在能够用QuartusII软件评估HardCopyStratix器件的性能和功耗,相应地进行最大吞吐量设计。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
该软件有如下几个显著的特点:
1、QuartusII的优点
该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。
该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
2、QuartusII对器件的支持
QuartusII支持Altera公司的MAX3000A系列、MAX7000系列、MAX9000系列、ACEX1K系列、APEX20K系列、APEXII系列、FLEX6000系列、FLEX10K系列,支持MAX7000/MAX3000等乘积项器件。
支持MAXIICPLD系列、Cyclone系列、CycloneII、StratixII系列、StratixGX系列等。
支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
3、QuartusII对第三方EDA工具的支持
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
4.2数字系统开发流程
(1)设计输入:
包括原理图输入、HDL文本输入、EDIF网表输入、波形输入等几种方式。
(2)编译:
先根据设计要求设定编译方式和编译策略,如器件的选择、逻辑综合方式的选择等;然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,并产生报告文件、延时信息文件及编程文件,供分析、仿真和编程使用。
(3)仿真与定时分析:
仿真和定时分析均属于设计校验,其作用是测试设计的逻辑功能和延时特性。
仿真包括功能仿真和时序仿真。
定时分析器可通过三种不同的分析模式分别对传播延时、时序逻辑性能和建立/保持时间进行分析。
(4)编程与验证:
用得到的编程文件通过编程电缆配置PLD,加入实际激励,进行在线测试。
在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重新测试。
4.2FPGA简介
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(复杂可编程逻辑器件备)。
CPLD与FPGA的关系
早在1980年代中期,FPGA已经在PLD设备中扎根。
CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。
CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。
CPLD是一个有点限制性的结构。
这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。
这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。
而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。
一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。
允许他们的设计随着系统升级或者动态重新配置而改变。
一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
一、采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。
二、FPGA可做其它全定制或半定制ASIC电路的中试样片。
三、FPGA内部有丰富的触发器和I/O引脚。
四、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
五、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。
如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。
例如,领先FPGA厂商Xilinx最近推出的