您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 学号--PN码的产生基于VHDL仿真
《通信原理》课程专题实验及研究报告-1-PN码发生器的设计及CPLD芯片的仿真实现姓名:__专业及年级:_电子2009__学号:_______一.课题目标研究PN码的基本原理,以及CPLD数字可编程逻辑芯片下的编程仿真实现。二.基本原理1、伪随机序列产生原理及作用:伪随机噪声具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的应用。目前广泛应用的伪随机序列都是由数字电路产生的周期序列得到的,我们称这种周期序列为伪随机序列。对与伪随机序列有如下几点要求:①应具有良好的伪随机性,即应具有和随机序列类似的随机性;②应具有良好的自相关、互相关和部分相关特性,即要求自相关峰值尖锐,而互相关和部分相关值接近于零。这是为了接收端准确检测,以减少差错;③要求随机序列的数目以保证在码分多址的通信系统中,有足够的地址提供给不同的用户;④要求设备简单,易实现,成本低。通常产生伪随机序列的电路为一反馈移存器。它又分为线形反馈移存器和非线形反馈移存器两类。由线形反馈移存器产生出的周期最长的二进制数字序列称为最大长度线形反馈移存器,通常称为m序列。由于它的理论比较成熟,实现比较简便,实际应用也比较广泛,故在这里以m序列发生器为例,设计伪随机序列发生器。m序列是由带线形反馈的移存器产生的周期最长的一种序列。线形反馈移位寄存器由时钟控制若干个串接的存储器所组成。在时钟信号的控制下,寄存器的存储信号由上一级向下一级传递。如果让某些寄存器的输出反馈回来进行运算,运算结果作为第一级寄存器的输入,则我们可以得到一个移位寄存器序列。如果移位寄存器的反馈函数和初始状态不同,那么可得到不同的移位寄存器序列。线性移位寄存器的一般形式《通信原理》课程专题实验及研究报告-2-⊕如图1所示,总共有1,2,3,…,N个寄存器,他们的状态为Xi(i=1,2,3,…,n),经Ci(I=1,2,3,…,n)相乘后模2加,再反馈。这里Ci∈(0,1),且乘法规则是0·0=0·1=1·0=0,1·1=1。实际上Ci=0表示断开,Ci=1表示连接。因此这个N阶移位寄存器的反馈函数为:F(X1,X2,…,Xn)=∑in=1CiXi特征多项式是:f(x)=∑in=1CiXi=C0+C1X1+C2X2+…+CnXn特征多项式中的Xi(i=0,1,2...n)与移位寄存器的第i个触发器相对应。c0c1c2c3cn-1cn输出图1线形移位寄存器的一般形式上述的反馈函数是一个线形递归函数。当级数(n)和反馈系数一旦确定,则反馈移位寄存器的输出序列就确定了。反馈移存器的级数n不同,则m序列的反馈系数也不同,表1列出了部分的m序列发生器的反馈系数。表中给出的是八进制数值,经转换成二进制数值后,可求出相应的反馈系数。图2n=7的反馈移位寄存器的结构模型伪随机信号在雷达、遥控、遥测、通信加密和无线电测量系统领域有着广泛的应用。利用VHDL语言进行软件编程,通过EDA设计软件对程序编译、优化、综合、仿真、适配,最后将生成的网表文件配置于制定的目标芯片中,可以实现不同序列长度的伪随机信号发生器。输出1234567+ak-1ak-2ak-3……ak-n-1ak-n《通信原理》课程专题实验及研究报告-3-2、m序列的性质:(1)均衡性m序列在一个周期内“1”和“0”的个数基本相等。具体来说,m序列的一个周期中的“0”的个数比“1”的个数少一个。(2)游程分布我们把伪随机序列中取值(“0”或“1”)相同的一段码位称为一个游程。在一个游程中包含的位数称为游程长度。把取值为“0”的游程称为“0”游程,取值为“1”的游程为“1”游程。在m序列中的一个周期内,游程的总个数等于2n-1,而且“0”游程的数目与“1”游程的数目相等,即各占一半。一般来说,在m序列中,长度为1的游程占游程总数的一半;长度为2的游程占游程总数的2-k,其中1≤k≤(n-2),而且“0”和“1”的游程各占一半。长为n-1的游程只有一个,且为“0”游程,长为“1”。表1.部分m序列发生器的反馈系数级数(n)序列长度反馈系数37134152353145,67,75663103,147,1557127203,211,217,235,277,313,325,345,3678255435,453,537,543,545,551,703,74795111021,1055,1131,1157,1167,11751010232011,2033,2157,2443,2745,34711120474005,4445,5023,5263,6211,736312409510123,11417,12515,13505,14124,1505313819120033,23261,30471,32535,37505141638342103,51761,55753,60153,71147,674011532767100003,110003,120265,133663,142305,1647051665536210013,233303,307572,311405,347433,37521317131071400011,411335,444257,527427,646775,714303182621431000201,1002241,1025711,1703601195242872000047,2020471,2227023,2331067,2570103,36103532010485754000011,4001151,4004515,6000031《通信原理》课程专题实验及研究报告-4-三.课题方案设计1、伪随机码发生器的VHDL实现(方案一)基于m序列的性质,我利用EDA技术,目前常用的可编程逻辑器件有CPLD(ComplexProgrammableLogicDevice)和FPGA(FieldProgrammableGateArray),常用的EDA软件包括VHDL,VerilogHDL,ABEL等硬件描述语言。其中,VHDL作为IEEE的工业标准硬件描述语言,又受到众多EDA工具厂家的支持,在电子工程领域,已成为事实上的通用硬件描述语言。(1)PN码(m序列,n=7)发生器的VHDL源程序:libraryieee;useieee.std_logic_1164.all;entityPNis——实体名为“PS7”port(clk:instd_logic;load:instd_logic;Q:outstd_logic);——定义实体接口endPN;architecturebehavofPNissignalc0,c1,c2,c3,c4,c5,c6,c7:std_logic;beginprocess(clk,load)beginifclk’eventandclk=’1’then——定义时钟上升沿触发if(load=’1’)thenc7=’0’;c6=’0’;c5=’0’;c4=’0’;c3=’0’;c2=’0’;c1=’0’;c0=’1’;Q=c7;ELSEc1=c0;c2=c1;c3=c2;c4=c3;c5=c4;《通信原理》课程专题实验及研究报告-5-c6=c5;c7=c6;c0=c7xorc4xorc3xorc2;——设置反馈方式Q=c7;endif;endif;endprocess;endbehav;(2)实验仿真结果n=7的伪随机序列产生器的时序仿真波形如下图所示。图中的“load”在“1”电平期间对伪随机序列发生器置初始信号,在“0”电平期间伪随机序列发生器进行移位操作;“CLK”表示移位寄存器的位同步信号;“Q”表示串行伪随机序列信号输出。2、伪随机码发生器的VerilogHDL实现(方案二)(1)Veriloghdl源程序modulepn1(clk,load,Q);inputclk,load;outputQ;reg[7:0]c;regQ;always@(posedgeclk)if(load)beginc[7]=0;c[6]=0;c[5]=0;c[4]=0;c[3]=0;《通信原理》课程专题实验及研究报告-6-c[2]=0;c[1]=0;c[0]=1;Q=c[7];endelsebeginc[1]=c[0];c[2]=c[1];c[3]=c[2];c[4]=c[3];c[5]=c[4];c[6]=c[5];c[7]=c[6];c[0]=c[7]^c[4]^c[3]^c[2];//设置反馈方式Q=c[7];endendmodule(2)实验仿真结果四.总结:设计心得。。。。。。。。。。。。。
本文标题:学号--PN码的产生基于VHDL仿真
链接地址:https://www.777doc.com/doc-2520728 .html