《基于VHDL的m序列伪随机信号发生器的设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于VHDL的m序列伪随机信号发生器的设计毕业设计论文.doc(42页珍藏版)》请在三一办公上搜索。
1、题目:基于VHDL的m序列发生器的设计摘要: VHDL/CPLD即复杂可编程逻辑器件作为一种大规模集成电路,可根据用户的需要自行构造逻辑功能,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。本文介绍了基于CPLD的m序列发生器的设计方法。关键词:CPLD;MAX+PLUS II;伪随机码;序列发生器 毕业设计(论文)外文摘要Title : Msequence Generator Based CPLD Abstract: VHDL/CPLD Complex Programmable Logic Device
2、that is, as a large scale integrated circuits can be constructed according to the needs of users on their own logic, enabling large-scale circuit design, it is widely used in product design and prototype production into. Almost all applications of small and medium general-purpose digital integrated
3、circuits may be applied CPLD devices occasions. This article describes the m-sequence generator based on CPLD design method. Key words: CPLD; MAX+PLUS II;Pseudorandom Code;m sequence code Generator目 录前言61课题介绍.7 1.1为什么研究此课题.71.2伪随机序列的应用与意义.71.3伪随机序列的研究现状.81.4研究内容.82 设计中使用芯片及VHDL语言介绍.92.1 CPLD芯片介绍.9 2
4、.1.1概述.9 2.1.2 MAX7000特点.9 2.1.3 EPM7128LC84-7.113 伪随机序列介绍.12 3.1 伪随机序列理论的发展史.13 3.2 伪随机序列的构造方法.134 序列信号发生器原理144.1序列信号发生器的设计15 4.1.1反馈移位型序列信号发生器.154.1.2计数型序列码发生器185 移位寄存器.205.1移位寄存器.20 5.1.1 寄存器.20 5.1.2移位寄存器.215.2 线性反馈移位寄存器结构.22 5.2.1 D触发器.22 5.2.1.1 D触发器工作原理.22 5.2.1.2 D触发器真值表.23 5.2.1.3 特征方程.23 5
5、.2.1.4 状态转移图.23 5.2.1.5时序图.24 5.2.1.6 脉冲特性.24 5.2.2异或门.25 5.2.2.1 基本原理.25 5.2.2.2 异或门逻辑符号.25 5.2.2.3 逻辑表达式.25 5.2.2.4 真值表.255.3 线性反馈移位寄存器.26 5.3.1 什么是反馈移位寄存器.26 5.3.2 线性反馈移位寄存器.26 5.3.3 性质.266 伪随机信号.276.1 伪随机信号.276.2 m序列码发生器.307 m序列性质.337.1 均衡性.337.2游程特性.337.3 移位相加性.337.4 相关特性.337.5 伪随机特性.348 序列信号发生
6、器的设计和仿真实现358.1 m序列生成单元的电路设计35 8.1.1 系统组成.35 8.1.2 程序方框图.36 8.2 m序列发生器.368.3 VHDL语言实现378.4 仿真数据及结论39结 论42致 谢43参考文献43前言CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测
7、试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。Max+plus是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入
8、、快速处理和器件编程。本次毕业设计主要是利用MAX+PLUS II软件来设计和仿真序列信号发生器,并结合理论进一步验证序列信号发生器的实际作用。1 课题的简介1.1 为什么研究此课题伪随机序列系列具有良好的随机性和接近于白噪声的相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列得到了广泛的应用。1.2 伪随机序列的应用和意义1在通信加密中的应用 m序列自相关性较好,容易产生和复制,而且具有伪随机性,利用m序列加密数字信号使加密后的信号在携带原始信息的同时具有伪噪声的特点,以达到在信号传输的过程中隐藏信息的目的;在信号接收端,再次利用m序列加以解密,恢复出原始信号。2 在雷达信号设
9、计中的应用 近年兴起的扩展频谱雷达所采用的信号是已调制的具有类似噪声性质的伪随机序列,它具有很高的距离分辨力和速度分辨力。这种雷达的接收机采用相关解调的方式工作,能够在低信噪比的条件下工作,同时具有很强的抗干扰能力。该型雷达实质上是一种连续波雷达,具有低截获概率性,是一种体制新、性能高、适应现代高技术战争需要的雷达。采用伪随机序列作为发射信号的雷达系统具有许多突出的优点。首先,它是一种连续波雷达,可以较好地利用发射机的功率。其次,它在一定的信噪比时,能够达到很好的测量精度,保证测量的单值性,比单脉冲雷达具有更高的距离分辨力和速度分辨力。最后,它具有较强的抗干扰能力,敌方要干扰这种宽带雷达信号,
10、将比干扰普通的雷达信号困难得多。3 在通信系统中的应用 伪随机序列是一种貌似随机,实际上是有规律的周期性二进制序列,具有类似噪声序列的性质,在CDMA中,地址码都是从伪随机序列中选取的,在CDMA中使用一种最易实现的伪随机序列:m序列,利用m序列不同相位来区分不同用户;为了数据安全,在CDMA的寻呼信道和正向业务信道中使用了数据掩码(即数据扰乱)技术,其方法是用长度为2的42次方减1的m序列用于对业务信道进行扰码(注意不是扩频),它在分组交织器输出的调制字符上进行,通过交织器输出字符与长码PN码片的二进制模工相加而完成。1.3 伪随机序列研究现状迄今为止,人们获得的伪随机序列仍主要是PC(相控
11、)序列,移位寄存器序列(m和M序列),Gold序列,GMW序列,级联GMW序列,Kasami序列,Bent序列,No序列。其中m序列是最有名和最简单的,也是研究的最透彻的序列。m序列还是研究其它序列的基础。它序列平衡,有最好的自相关特性,但互相关满足一定条件的族序列数很少(对于本原多项式的阶数小于等于13的m序列,互为优选对的序列数不多于6),且线性复杂度很小。 1.4 研究内容首先研究生成序列的反馈移位寄存器、反馈逻辑函数。主要研究它们的生成、随机特性以及相关特性,并分析它们的优缺点以及存在的问题。最后在理论证明的基础上应用Quartus II仿真验证它们的随机特性,并用仿真作出m序列相关特
12、性图形。2 设计中使用芯片及VHDL语言介绍2.1 CPLD芯片介绍2.1.1 概述ALTERA的MAX7000系列CPLD提供高性能的逻辑解决方案,密度从600-10000个可用门不等(32-512个宏单元),同时MAX7000系列的同一密度产品还提供多种封装形式,对于各种应用具有相当灵活的适应性。本次设计即采用Altera公司的MAX7000系列芯片实现。2.1.2 MAX7000特点Altera的 MAX7000 CPLDs基于先进的多阵列矩阵(MAX)架构,为大量应用提供了世界级的高性能解决方案 。基于电可擦除可编程只读存储器(EEPROM)的MAX7000产品采用先进的CMOS工艺制
13、造,提供从32到512个宏单元的密度范围,速度达3.5 ns的管脚到管脚延迟。MAX 7000器件支持在系统可编程能力(ISP),可以在现场轻松进行重配置。Altera提供5.0V,3.3V和 2.5V核电压的MAX 7000 器件,如表1所示。表1 MAX 7000系列所提供的宏单元密度密度 (宏单元)MAX7000S (5.0 V)MAX7000AE (3.3 V)MAX7000B (2.5 V)最快 tPD (ns) (1)323.5643.51284.01606.01927.52565.05125.5Altera的MultiVolt 多电压接口允许设计人员在MAX 7000 设计中无缝
14、集成1.8V,2.5V,3.3V和 5.0V逻辑电平 。由于MAX 7000B 器件对GTL+,SSTL-2,SSTL-3和 64比特 66MHz PCI接口的高级I/O支持 ,MAX器件是很多高速逻辑接口应用的理想方案。表2 MAX 7000 I/O支持器件核电压输入电压输出电压高级I/O 支持1.8 V2.5 V3.3 V5.0 V1.8 V2.5 V3.3 V (1)5.0 VGTL+SSTL 2/364-Bit, 66-MHz PCI MAX 7000S5.0 VMAX 7000AE3.3 VMAX 7000B2.5 VMAX 7000器件提供大量封装形式从传统的四角扁平封装(QFP)
15、到高级的节省空间的1.0毫米FineLine BGA封装,MAX 7000器件通过提供广泛的封装选择,满足了现今设计的需求。所有这些封装被优化为支持密度移植,不同密度的器件在同一封装时采用相同的管脚排列。FineLine BGA封装采用SameFrame 管脚排列结构,它提供相同密度下的I/O 兼容。当设计需求变化时,这些移植选项提供了附加的灵活性。表 3列出了MAX 7000器件的封装形式MAX 7000S,MAX 7000AE和MAX 7000B器件在相同封装下管脚兼容。通过选择MAX器件,当逻辑需求变化时,设计工程师能够节省工程时间,缩短设计周期,因为这里不需要变更管脚分配。表3 MAX
16、 7000 提供的封装方式封装MAX 7000B (2.5 V)MAX 7000AE (3.3 V)MAX 7000S (5.0 V)塑封J引线芯片封装 (PLCC)薄四角扁平封装 (TQFP)塑封四角扁平封装 (PQFP)高效四角扁平封装 (RQFP)BGA1.0毫米间距 FineLine BGA0.8毫米间距UBGAMAX 7000器件是即用性,非易失性,提供全局时钟,在系统可编程,开路输出,可编程上电状态,快速输入建立时间和可编程输出回转速率控制特性的器件。和许多其他硅片特性一起,MAX 7000器件适用于大量系统级的应用。MAX器件为易用的QuartusII 网络版和MAX+PLUS
17、II基础版设计软件所支持。这两个平台提供综合,布局布线,设计验证和器件编程功能,能够从Altera网站的设计软件部分免费下载 。这两个免费赠送的可用于MAX器件设计的开发工具帮助使最终用户系统的总体开发成本最小化。2.1.3 EPM7128SLC84-7本次设计中我们采用了Altera公司生产的EPM7128SLC84-7型号的CPLD芯片,具体管脚如图1所示。图1 EPM7128SLC84-7管脚图图2 MAX7000系列芯片内过结构图3伪随机序列介绍通过抛硬币的方法可以得到一个随机序列,它具有两个方面的特点:一是预先不可确定、不可重复实现。即在实验前无法预知序列是怎样的,而且在所有的序列中
18、不可能有两个是完全一致的。另一方面所有序列都具有某些共同的随机特性,对二元序列Golomb总结了三条随机性假设:R1 若序列的周期L为偶数,则0的个数与1的个数相等;若L为奇数,则0的个数比1的个数多1或少1。R2 长为1的游程占1/2,且0游程和1游程的个数相等或至多差一个。R3 序列的异相自相关函数为一个常数,即序列为二值自相关序列。能否产生真正的随机序列一直都处在激烈的争论中,但可以肯定的是随机序列的产生、复制和控制在实际中都是难以实现的。如果一个序列,一方面它的结构是可以预先确定的,并且可以重复的产生和复制;另一方面又具有某种随机特性(R1-R3),便称这种序列为伪随机序列.简单的讲,
19、伪随机序列就是具有某种随机特性的确定序列。3.1伪随机序列理论的发展史伪随机序列的理论与应用研究大体上可以分成三个阶段:(1)纯粹理论研究阶段 (1948年以前);(2)m序列研究的黄金阶段(1948-1969); (3)非线性生成器的研究阶段 (1969- )。1948年以前,学者们研究伪随机序列的理论仅仅是因为其优美的数学结构。最早的研究可以追溯到1894年,作为一个组合问题来研究所谓的De Bruijn序列;上世纪30年代,环上的线性递归序列则成为人们的研究重点. 1948年Shannon信息论诞生后,这种情况得到了改变。伪随机序列己经被广泛的应用在通信以及密码学等重要的技术领域。Sha
20、nnon证明了“一次一密”是无条件安全的,无条件保密的密码体制要求进行保密通信的密钥量至少与明文量一样大。因此在此后的一段时间内,学者们一直致力于研究具有足够长周期的伪随机序列。如何产生这样的序列是20世纪50年代早期的研究热点。线性反馈移位寄存器 (LFSR)序列是这个时期研究最多的,因为一个n级LFSR可以产生周期为的最大长度序列,而且具有满足Golomb随机性假设的随机特性,通常称为m序列。这段时期的研究奠定了LFSR序列的基本理论和一些经典结论。但是,在1969年Massey发表了“移位寄存器综合与BCH译码”一文,引发了序列研究方向的根本性变革,从此伪随机序列的研究进入了构造非线性序
21、列生成器的阶段。Berlekamp-Massey算法(简称B-M算法)指出:如果序列的线性复杂度为n,则只需要2n个连续比特就可以恢复出全部的序列。从这个结论可以看出m序列是一种“极差”的序列,它的线性复杂度太小,因而不能够直接用来做流密码系统的密钥流序列。从这里还可以看到仅仅靠Golomb的三个随机性假设来评测序列是不够的,还需要其它的一些指标。此后直到今天,密码学界的学者们一直在努力寻找构造“好”的伪随机序列的方法。3.2 伪随机序列的构造方法就现有的文献,可以把构造伪随机序列的方法分成两大类:一类是基于数学的理论构造伪随机序列;另一类是基于LFSR构造伪随机序列。两种构造方法各有优缺点,
22、前者在理论上容易分析序列的随机性质,但往往不容易实现或者实现的代价比较高;而后者则恰恰相反,在工程上很容易实现,成本较低,但有的情况下不容易分析其随机性质。基于数学理论构造伪随机序列又可以分为两类:基于数论的构造和基于有限域的构造。前者利用的数学工具主要是二次剩余理论和割圆理论,像Legendre序列、Jacobi序列、m序列、差集序列和割圆序列等就属于此类构造;后者利用的数学工具主要是迹函数,像Bent序列、GMW序列和椭圆曲线序列等为该类构造的代表。基于 LFSR的伪随机序列生成器有很多,总体上可以分为两大类:一类是用一个n元布尔函数作用于n个输入比特,布尔函数的输出作为密钥流序列;另一类
23、是用一个LFSR控制另一个LFSR。前者包含两种生成器,即熟知的非线性组合生成器和非线性滤波生成器。由于m序列的线性复杂度太小,不能直接用作密钥流序列,因此通常采用将m序列作驱动序列,然后用一个布尔函数作用于这些驱动序列的方法来提高序列的线性复杂度。非线性组合生成器由n个LFSR和一个非线性组合器组成;非线性滤波生成器由一个LFSR和一个前馈逻辑组成。第二类生成器也包含两种控制模型,钟控生成器和缩减生成器。这两种生成器的原理都是用一个控制序列对另一个基序列做不规则采样。钟控生成器是在基序列中插入新的符号,其输出序列指数幂的依赖于产生它的生成器的输入参数;而缩减生成器包括自缩减生成器则是在基序列
24、中删除符号,这种构造结构简单易于用硬件实现。4 序列信号发生器原理序列信号发生器是能够循环产生一组或多组序列信号的时序电路,它可以用以为寄存器或计数器构成。序列信号的种类很多,按照序列循环长度M和触发器数目n的关系一般可分为三种:(1) 最大循环长度序列码,M2n。(2) 最大线性序列码(m序列码),M=2n1。(3) 任意循环长度序列码,M2n。4.1序列信号发生器的设计 通常在许多情况下,要求按照给定的序列信号来设计序列信号发生器。序列信号发生器一般有两种结构形式:一种是反馈移位型,另一种是计数型。4.1.1 反馈移位型序列信号发生器 反馈移位型序列码发生器的结构框图如图所示,它由移位寄存
25、器和组合反馈网络组成,从移存器的某一输出端可以得到周期性的序列码。其设计按以下步骤进行:(1)根据给定序列信号的循环长度M,确定移存器位数n,2n-1M2n。(2)确定移位寄存器的M个独立状态。 将给定的序列码按照移位规律n位一组,划分位M个状态。若M个状态中出现重复现象,则应增加移存器位数 。用n+1位再重复上述过程,直到划分为M个独立状态为止。 图3 反馈移位型序列信号发生器框图(3)根据M个不同状态列出移存气的状态表和反馈函数表,求出反馈函数F的表式。(4)检查自启动性能(5)画逻辑图。下面通过举例说明反馈移位序列信号发生器的设计过程。方法一:比如要设计一个 00011101 序列发生器
26、。具体可以这样来解决:(1) 确定移存器的位数n。因M=8,故n3,选定为三位,用74LS194 的三位。 (2) 确定移存器的八个独立状态。将序列码00011101按照每三位一组,划分为八个状态,其迁移关系如下所示:(3) 作出反馈函数表,如表所示,由迁移关系可看出移存器只进行左移操作,因此S1=1, S0=0。将F(SL)的卡诺图填入图(a)中,选用四选一实现F(SL)函数,其逻辑图如图(b)所示。表4 反馈函数真值表Q1Q2Q3F(SL)0OO10011011111101101101001001000图4 00011101 序列信号发生器方法二:设计一个产生 100111序列的反馈移位型
27、序列信号发生器。具体解决方法:(1) 确定移存器位数n。因M=6,故n3;(2) 确定移存器的六个独立状态:将序列码100111按照移位规律每三位一组,划分六个状态为 100、001、011、111、111、110。其中状态111 重复出现,故取n=4,并重新划分六个独立状态为 1001、0011、0111、1111、1110、1100。因此确定n=4,用一片74LS194 即可。 (3) 反馈激励函数表,求反馈函数F的表达式:根据每一状态所需要的移位输入即反馈输入信号,列出反馈函数表如表所示。从表中可见,移存器只需进行左移操作,因此反馈函数F=SL。表也表明了组合反馈网络的输出和输入之间的函
28、数关系,因此可填出F的卡诺图如图(a)所示,并求得: 表5 反馈函数真值表Q0Q1Q2Q3F(SL)100110011101111111101110011001(4) 检查自启动性能。 根据以上结果,作出完全状态图如图(b)所示。可见,它有一个无效循环。为了使电路具有自启动性能,应重新修改设计。其思路就是打破无效循环,引入主有效循环,将01101100,00100100,其完全状态图如图(a)所示卡诺图的圈如图(b)所示,求得F=Q2+Q0Q3。如选用四选一数据选折器实现地址选Q0Q2A1A0,得D0=1,D1=Q3,D2=1,D3=0,则具有自启动能力的电路如图所示。 图5 卡诺图和移存器的
29、全状态图 图6 修正后的状态图和F的卡诺图图7 逻辑电路图 4.1.2. 计数型序列码发生器计数型序列码发生器结构框图如图所示。它由计数器和组合输出网络两部分组成,序列码从组合输出网络输出。设计过程分两步:(1) 根据序列码的长度M设计模M计数器,状态可以自定;(2) 按计数器的状态转移关系和序列码的要求设计组合输出网络。由于计数器的状态设置和输出序列的更改比较方便,而且还能同时产生多组序列码。下面以具体实例来说明:方法一:设计 1101000101 序列信号发生器。具体解决办法:由于给定序列长度P=10,故先用 74LS161 设计一个模10的计数器,我们利用74LS161 的预置端LD,用
30、后 10 个状态,即 01101111。令该 10 个状态中每一个状态的输出符合给定序列的要求,列出其真值表如表所示,对应的输出卡诺图如图 (a)所示。采用八选一数据选择器实现,电路如图 (b) 所示。 待添加的隐藏文字内容2图8 电路原理图表6 真值表SQDQCQBQAF1011012011113100004100115101006101107110008110119111001011111图9 设计过程及逻辑图方法二:设计一个能同时产生两组代码的信号发生器, 这两组代码分别是:F1=110101和F2=010110。具体解决办法: 首先用 74LS194 设计一个具有自校正的模6 扭环型计数器如图 (a)所示,并画出输出序列卡诺图如图(b)所示。然后用一片 3 - 8 译码器和与非门实现图10 设计过程及逻辑图输出组合逻辑。最后画出逻辑图如图(c)所示。 5 移位寄存器 寄存器一般有多个触发器组成,通常有锁存寄存器和移位寄存器。本