《基于FPGA的m序列发生器要点.pdf》由会员分享,可在线阅读,更多相关《基于FPGA的m序列发生器要点.pdf(27页珍藏版)》请在三一文库上搜索。
1、基于 FPGA的序列发生器 基于 FPGA 的序列发生器 摘要 序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于 FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得 产生该序列的移位寄存器反馈逻辑式,结合FPGA 芯片结构特点,在序列算法实现中 采用元件例化语句。算法运用VHDL 语言编程,以 A1tera 的 Quartus 软件为开发平 台,给出了序列的仿真波形。 序列的统计特性分析表明: 该方法产生的序列符合序 列的伪随机特性,验证了算法的正确性。 关键词:序列;移位寄存器理论;VHDL 语言 基于 FPGA的序列发生器 1 m 序列 m 序
2、列是伪随机序列的一种 , 结构简单 , 实现方便。在现代工程实践中 , m 序 列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。例如 , 在 连续波雷达中可用作测距信号 , 在遥控系统中可用作遥控信号 , 在多址通信中可 用作地址信号 , 在数字通信中可用作群同步信号 , 还可用作噪声源及在保密通信中 起加密作用等。伪噪声发生器在测距、通信等领域的应用日益受到人们重视。目前, m序列产生实现方法主要有3 种: (1) 门电路实现 该方法设计简单, 但随移位寄存器级数的增长, 电路装调困难, 且占用的印制板 面积较大。 (2)DSP 编程实现 该方法专业性过强,不适合一般用户。
3、(3)VHDL与 CPLD 实现 由于 CPLD 的高集成度, 而且 VHDL 语言编程较为方便, 故可以大大减少电路的装 调的困难。文章提出VHDL 语言实现,l 序列电路是周期、初相位可编程变化的,其 应用较为灵活, 通过微处理器对其进行适当的初始化,即可产生用户所需周期、 初相 位的 m序列输出。用软件方式构成的特点是采用灵活的数据查询方式可以获得任意级 数 n 的本原多项式系数 , 从而实现 m 序列的产生 , 但速度受到单片机工作速度的 限制。而 FPGA 具有硬件电路实现的优点 , 又具有设计上的灵活性 , 并且由于 FPGA 便于实现大规模的数字系统。 1.1 理论基础 m 序列
4、是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器 产生的周期最长的一种序列。 。m 序列发生器的结构主要分为两类,一类称为简单型 码序列发生器,另一类称为模块型码序列发生器。原理图如图 1 所示。 图 1-1 m列原理图 基于 FPGA的序列发生器 扰码的目的是使短周期输入序列变为长周期的信道序列。从原则上看,就可以用 将一个长周期序列叠加在输入序列上的方法来实现,并且叠加序列的周期越长越好。 从理论上说,一个真正的随机(二进制)序列的“周期”是无限长的,但是,采用这 种序列时在接收端将无法产生相同的序列与之同步。所以,人们就不得不企图用简单 电路来产生尽量长的序列。 同时随机
5、噪声在通信技术中, 首先是作为有损通信质量的 因素受到人们重视的。 信道中存在的随机噪声会使模拟信号产生失真,或使数字信号 解调后出现误码;同时,它还是限制信道容量的一个重要因素。因此,最早人们是企 图设计消除或减小通信系统的随机噪声,但是,有时人们也希望获得随机噪声。 例如, 在实验室中对通信设备或系统进行测试时,有时要故意加入一定的随机噪声,这时则 需要产生它。 20 世纪 40 年代末,随着通信理论的发展,仙农(Shannon )就曾指出,在某种情况 下,为了实现最有效的通信,应采用具有白噪声的统计特性的信号。另外,为了实现 高可靠的保密通信, 也希望利用随机噪声。 然而,利用随机噪声的
6、最大困难是它难以 产生和处理。直到60年代,伪随机噪声的出现才使上述困难得到解决。 伪随机噪声具有类是与随机噪声的一些统计特性,同时又便于重复产生和处理。 由于 它具有随机噪声的优点, 又避免了它的缺点, 因此获得了日益广泛的实际应用。目前 广泛应用的伪随机噪声都是由数字电路产生的周期序列(即滤波等处理后)得到的。 今后我们将这种周期序列称为伪随机序列。 通常产生伪随机序列的电路为一反馈移存器。他又可分为线性反馈移存器和非线性反 馈遗存器两类。 由线性反馈遗存器产生出的周期最长的二进制数字序列,称为最大长 度线性反馈遗存器序列, 通常简称为 m序列。由于它的理论比较成熟, 实现比较简便, 实际
7、应用也比较广泛 7 。 m序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最 长的一种序列。图 2-2 中示出了 n 级移位寄存器,其中有若干级经模2 加法器反馈 到第 1 级。不难看出,在任何一个时刻去观察移位寄存器的状态,必然是 n 2 个状态 之一,其中每一状态代表一个n 位的二进制数字;但是,必须把全0 排斥在外,因为 如果一个进入全 0,不论反馈线多少或在哪些级,这种状态就不会再改变。所以,寄 存器的状态可以是非全0 的 12 n 状态之一。这个电路的输出序列是从寄存器移出的, 尽管移位寄存器的状态每一移位节拍改变一次,但无疑地是循环的。 如果反馈线所分 基于
8、FPGA的序列发生器 布的级次是恰当的,那么, 移位寄存器的状态必然各态历经后才会循环。这里所谓“各 态历经”就是所有 12 n 个状态都经过了。由此可见,应用n 级移位寄存器所产生的 序列的周期最长是 12 n 。同时由于这种序列虽然是周期的,但当n 足够大时周期可 以很长,在一个周期内0 和 1 的排列有很多不同方式,对每一位来说是0 还是 1,看 来好像是随机的,所以又称为伪随机码;又因为它的某一些性质和随机噪声很相似, 所以又称为伪噪声码( PN码) 。 基于 FPGA的序列发生器 1.1.1 线性反馈移位寄存器 图 1-2 线性移位寄存器 由于带有反馈, 因此在移位脉冲作用下, 移位
9、寄存器各级的状态将不断变化,通常移 位寄存器的最后一级做输出,输出序列为 输出序列是一个周期序列。其特性由移位寄存器的级数、初始状态、反馈逻辑以及时钟 速率 ( 决定着输出码元的宽度) 所决定。当移位寄存器的级数及时钟一定时,输出序列就由移位寄 存器的初始状态及反馈逻辑完全确定。当初始状态为全零状态时,移位寄存器输出全 0 序列。 为了避免这种情况,需设置全 0 排除电路。 (1)线性反馈移位寄存器的递推关系式 递推关系式又称为反馈逻辑函数或递推方程。设图 10-1 所示的线性反馈移 位寄存器的初始状态为 ( a0a1an-2an-1), 经一次移位线性反馈,移位寄存器左端第 一级的输入为 若
10、经 k 次移位,则第一级的输入为 基于 FPGA的序列发生器 其中, l =n+k- 1n, k=1,2,3, (2) 用多项式 f (x) 来描述线性反馈移位寄存器的反馈连接状态: 若一个 n 次多项式 f ( x) f(x)为既约多项式 ( 即不能分解因式的多项式 ) f (x) 可整除 (x p+1), p=2n- f (x) 除不尽 (x q+1), q-Z.); end if; end process; end feedTable; 5.2 移位存储器设计 为实现级数 n 值在 329可调的 m序列, 先生成一个 29 级的 Galois 型移位寄存器 , 该结构的第 29 位 D触
11、发器的输出是否反馈取决于级数n。可用一个信 号 X 来表征相应级数的Galois型结构中的反馈特征,X 在移位寄存器状态输出 (S(1), S(28)中取值。通过输入5 位二进制信号 addr 4, 0来确定末位反馈 信号 X的取值。如当输入addr 4, 0为 00000时, 反馈信号 X-1.); ELSIF (CLKevent and CLK=-1.) THEN CASE addr IS WHEN/000000=XXXX=-0.; END CASE; Q=X; exa: FOR i IN n-1 DOWNTO 1 LOOP if (G (i-1) = (-0.) then S (i) =
12、S (i-1); else S (i) =S (i-1) XOR (G (i-1) AND X); end if; END LOOP exa; S (0) =X; END IF; END PROCESS; 该模块有 4 个输入 (clk, rst, addr 4, 0,G0, 27)、1 个输出 (Q)和 1 个 缓冲口 (S n-1,0)。clk 为器件的工作时钟 ; rst为器件的控制信号 , 为/10 时器 件工作 ;G0, 27是位于地址addr 4, 0的反馈系数表存储器中输出的反馈系 数;Q 为 n 级的 m序列信号的输出。 基于 FPGA的序列发生器 5.3 仿真分析 在 Qua
13、rtusII上对级数 n分别为 329的 m序列发生器进行了仿真 , 给出了级数 n分别 为 3 和 29 的 m序列发生器的仿真结果 ( 图 5-1), 并对系统的延时进行分析。 为便于分 析, 笔者对系统中各寄存器的初始状态都设定为/10, 所以 m序列的输出应该从 /10 开 始。由图 4 可知,m 序列的每一位的宽度均为一个时钟周期;m 序列输出的起始位置为 rst 置/10 后的第一个时钟上升沿是在35ns 处。图 5-1 中 m序列在 571599ns开始输 出, 系统延时 221599ns;图 5-2 中 m序列在 571472ns 开始输出 , 系统延时 221472ns。 由
14、此可见 , 系统延时受级数 n 的影响较小。 用 VHDL 语言描述复杂的数字系统设计效率显著提高, 对于任意级数的 m 序列发生 器, 充分利用 FPGA 芯片内置的 ROM 构建任意级数的 Galois 型反馈系数表 , 极大地简化 了快速 m序列发生器的实现过程。由于其产生的速率快, 且基本不受级数n 的影响 , 因而该 m序列产生方法具有较强的适应性和较广的应用范围, 尤其适用于级数 n 可变 的应用场合。 基于 FPGA的序列发生器 图 5-1 n=3 图 5-2 n=29 基于 FPGA的序列发生器 参考文献 1 周润景 . 基于 Quartus 的 FPGA/CPLD 数字系统设
15、计实例 M. 电子工业出版 社.2007,8 2 邢建平,曾繁泰 .VHDL程序设计教程 (第 3 版)M. 北京:清华大学出版社, 2005 3 蒲海, 陈自力 , 胡玫荣 1 基于 CPLD的高速 m序列码发生器的设计 J1微计算机信 息, 2005, 21 (4): 1721731 4 束礼宝 , 宋克柱 1伪随机数发生器的FPGA 实现与研究 J1 电路与系统学报 , 2003, 8 (3): 1211241 5 邹学玉 , 易国华 1 一类基于 FPGA 的 m序列发生器的设计 J1长江大学学报 ( 自然 科学版 ), 2006, 3 (3): 84861 6 林可祥 , 汪一飞 1 伪随机码的原理与应用 M1 北京: 人民邮电出版社 , 19981 7 梅文华 , 杨义先 1 跳频通信地址编码理论 M1 北京: 国防工业出版社 , 19961 8 段颖妮,吕虹基于全状态伪随机序列的BIST设计J 电子器件, 2006,(4) : 12631266 9 樊昌信通信原理 ( 第五版 )M 北京:国防工业出版社,2001 基于 FPGA的序列发生器 附录 图 5-1 n=3 图 5-2 n=29
链接地址:https://www.31doc.com/p-5207595.html