两种利用FPGA产生m序列的算法分析

2014-03-12 18:17陈天成王艳红
现代电子技术 2014年5期

陈天成 王艳红

摘 要: 为了产生性能良好且节省硬件资源的m序列,分别提出了基于现场可编程门阵列(FPGA)的逻辑法和核调用法两种算法,并详细介绍了两种算法的实现步骤。通过在Xilinx公司的NEXYS3开发板上进行设计和编程,对两种算法的可行性进行了检测;并结合ISE编程软件的仿真功能和Matlab对算法的自相关性、硬件占用率和实现难度等性能进行了分析。最终,了解到核调用法在m序列产生中的优越性。

关键词: m序列; FPGA; IP核; ISE

中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2014)05?0058?03

0 引 言

伪随机序列作为一种信号形式,具有良好的相关特性和伪随机性,可应用于扩频通信和信号加密等领域。根据应用场合的不同,可以将伪随机序列设计成具有不同特性的序列,其中,m序列便是应用最广泛的一种伪随机序列[1?2]。

m序列是最长线性反馈移位寄存器序列的简称,由[N]级移位寄存器和模二加法器产生。对于一个[N]级移位寄存器来说,最多可以有[2N]个状态。由于全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为 [2N-1。]当[N]级线性移位寄存器产生的序列[{ai}]的周期为[T=2N-1]时,称[{ai}]为[N]级m序列[3]。

本文采用Xilinx公司的spartan?6开发板来产生m序列。FPGA因其高速的计算速度和简便的编译步骤被越来越广泛的应用于数字信号处理领域。Spartan?6自带100 MHz内部晶振,最高可以提供高达300 MHz的运算速度。

1 m序列的实现算法

1.1 逻辑法

程序的移位寄存器功能模拟部分,根据特征方程,将序列Seq_r的第0、2、3和4位对应数值进行模二运算并将结果作为新的数据输入寄存器的高位。此处应避免初始状态为全零[4]。

程序的m序列输出部分,在每个时钟的上升沿提取Seq_r序列的第0位进行输出,产生的Seq序列即为m序列。

1.2 核调用法

Xilinx芯片配套的ISE编程软件提供了集成的移位寄存器IP核供使用者调用。IP核具有使用方便、操作简单、节省资源等优点。核调用法利用ISE编程软件提供的移位寄存器IP核进行设计,使用者可将IP核视为黑匣子,仅仅通过对其端口进行定义便可实现m序列的产生。

完成对IP核参数的设置后,在顶层文件中对IP核进行声明,将高位的输出信号输入低位的输入端,并取第2,3,4和8位寄存器的输出值进行模二运算,将结果输入第8位寄存器的输入端。将程序编译后,即可在FPGA上实现对m序列的生成。

2 m序列的性能分析

2.1 算法可行性验证

为了验证算法的可行性,确定两种算法是否能够产生满足特征方程的序列,需要对m序列波形进行观察。Xilinx对应的编程软件ISE可以利用软件自带的应用工具ChipScope对产生的波形进行检测。利用逻辑法和核调用法产生的m序列波形如图1所示。

图1中,clk_r为时钟信号,是频率固定的方波,程序在clk_r的上升沿进行运算。seq_r_r为算法产生的m序列,由图1可以看出,两种算法所产生的m序列波形相同,且在短时间内可视为随机序列。经过检测,确定两种算法皆能实现m序列的产生。

2.2 算法性能分析

m序列常常作为扩频序列应用于扩频通信中。扩频通信对扩频序列一般有如下要求:尖锐的自相关特性;足够多的序列数;序列均衡性好;工程上易实现[7]。

在m序列的一个周期中,“1”的个数比“0”的个数值多一个。这表明,序列平均值很小,具有良好的均衡性。为了检测序列的自相关性,可以结合Matlab中的xcorr函数和plot函数绘制序列的自相关函数图像[8?9]。Matlab生成的自相关函数的坐标如图2所示。

由图2可知,m序列的自相关性十分尖锐,可以应用于扩频通信。

3 两种算法的优劣比较

3.1 硬件资源占用

FPGA的硬件资源是有限的,虽然随着科技的进步,芯片中集成的门数已经高达500万门以上,但程序的复杂程度也与日俱增,导致硬件资源供不应求的情况时有发生。m序列常常作为整体程序的一部分出现,如果占用太多资源会导致程序的整体功能难以实现。因此,两种算法硬件资源的占用量是考量算法优劣的重要指标。

编程软件ISE会在程序编译结束时自动生成程序占用硬件资源的数据,其中Slice Registers和Slice LUTs分别表示芯片中的两种主要硬件资源,通过对比表1列出的资源占用情况可以了解两种算法在资源占用上的优劣[5]。

通过分析数据可得,虽然两种算法的资源占用率数值相近,但随着m序列特征方程阶数的增加,程序所占用的资源会越来越多,两种算法在资源占用上的差距也会增大。可见两种算法中,核调用法在两种主要资源的占用上都小于逻辑法。因而,在实现高阶m序列时,核调用法更具优势。

3.2 实现的难易度

FPGA以其强大的功能被越来越多的应用于实现极为复杂的程序,在保证性能满足要求的基础上,如何降低开发难度,缩短开发周期也是考量算法优劣的又一重要因素。

IP核是ISE软件已经集成好的程序模块,经过优化,使得其中的程序性能更加优越。而且在生成IP核时只需要对参数进行修改即可,其中各参数的功用可以在IP核提供的DataSheet文档中查看,因此利用IP核可以最大限度的缩短程序开发所需的时间。

相对而言,逻辑法需要在逻辑层面进行描述,需要花费较多的时间。

4 结 语

经过以上的论证,可得在利用FPGA进行算法实现时,充分利用软件自带的IP核不但能节省硬件资源,更能极大的缩短开发周期,降低算法实现的难度。本文提供的两种算法皆能产生性能良好的m序列,但核调用法更加节省资源,并且在开发难度上相比于逻辑法更简单快捷,在缩短开发周期,降低开发成本上更有优势。

参考文献

[1] 王昆,陈昕智.m序列产生和性能的Matlab仿真[J].水利电力机械,2007,29(12):170?171.

[2] 张雪峰,范九伦.基于线性反馈移位寄存器和混沌系统的伪随机序列生成方法[J].物理学报,2010,59(4):2289?2297.

[3] 樊昌信,曹丽娜.通信原理[M].6版.北京:国防工业出版社,2009.

[4] 段颖妮.基于FPGA的m序列发生器实现[J].电子元器件应用,2009,11(7):45?47.

[5] 何宾.Xilinx FPGA设计权威指南[M].北京:清华大学出版社,2012.

[6] 田耘,胡彬,徐文波,等.ISE Design Suite 10.x[M].北京:人民邮电出版社,2008.

[7] 陈海龙,李宏.基于Matlab的伪随机序列的产生和分析[J].计算机仿真,2005,22(5):98?100.

[8] 吴盼望,张善从.基于移位寄存器的伪随机序列改进算法[J].计算机工程,2012,38(18):265?267.

[9] 马根,孙浩茗,孙静.自编码扩频序列的性能研究[J].山东轻工业学院学报:自然科学版,2008,22(3):72?74.

摘 要: 为了产生性能良好且节省硬件资源的m序列,分别提出了基于现场可编程门阵列(FPGA)的逻辑法和核调用法两种算法,并详细介绍了两种算法的实现步骤。通过在Xilinx公司的NEXYS3开发板上进行设计和编程,对两种算法的可行性进行了检测;并结合ISE编程软件的仿真功能和Matlab对算法的自相关性、硬件占用率和实现难度等性能进行了分析。最终,了解到核调用法在m序列产生中的优越性。

关键词: m序列; FPGA; IP核; ISE

中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2014)05?0058?03

0 引 言

伪随机序列作为一种信号形式,具有良好的相关特性和伪随机性,可应用于扩频通信和信号加密等领域。根据应用场合的不同,可以将伪随机序列设计成具有不同特性的序列,其中,m序列便是应用最广泛的一种伪随机序列[1?2]。

m序列是最长线性反馈移位寄存器序列的简称,由[N]级移位寄存器和模二加法器产生。对于一个[N]级移位寄存器来说,最多可以有[2N]个状态。由于全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为 [2N-1。]当[N]级线性移位寄存器产生的序列[{ai}]的周期为[T=2N-1]时,称[{ai}]为[N]级m序列[3]。

本文采用Xilinx公司的spartan?6开发板来产生m序列。FPGA因其高速的计算速度和简便的编译步骤被越来越广泛的应用于数字信号处理领域。Spartan?6自带100 MHz内部晶振,最高可以提供高达300 MHz的运算速度。

1 m序列的实现算法

1.1 逻辑法

程序的移位寄存器功能模拟部分,根据特征方程,将序列Seq_r的第0、2、3和4位对应数值进行模二运算并将结果作为新的数据输入寄存器的高位。此处应避免初始状态为全零[4]。

程序的m序列输出部分,在每个时钟的上升沿提取Seq_r序列的第0位进行输出,产生的Seq序列即为m序列。

1.2 核调用法

Xilinx芯片配套的ISE编程软件提供了集成的移位寄存器IP核供使用者调用。IP核具有使用方便、操作简单、节省资源等优点。核调用法利用ISE编程软件提供的移位寄存器IP核进行设计,使用者可将IP核视为黑匣子,仅仅通过对其端口进行定义便可实现m序列的产生。

完成对IP核参数的设置后,在顶层文件中对IP核进行声明,将高位的输出信号输入低位的输入端,并取第2,3,4和8位寄存器的输出值进行模二运算,将结果输入第8位寄存器的输入端。将程序编译后,即可在FPGA上实现对m序列的生成。

2 m序列的性能分析

2.1 算法可行性验证

为了验证算法的可行性,确定两种算法是否能够产生满足特征方程的序列,需要对m序列波形进行观察。Xilinx对应的编程软件ISE可以利用软件自带的应用工具ChipScope对产生的波形进行检测。利用逻辑法和核调用法产生的m序列波形如图1所示。

图1中,clk_r为时钟信号,是频率固定的方波,程序在clk_r的上升沿进行运算。seq_r_r为算法产生的m序列,由图1可以看出,两种算法所产生的m序列波形相同,且在短时间内可视为随机序列。经过检测,确定两种算法皆能实现m序列的产生。

2.2 算法性能分析

m序列常常作为扩频序列应用于扩频通信中。扩频通信对扩频序列一般有如下要求:尖锐的自相关特性;足够多的序列数;序列均衡性好;工程上易实现[7]。

在m序列的一个周期中,“1”的个数比“0”的个数值多一个。这表明,序列平均值很小,具有良好的均衡性。为了检测序列的自相关性,可以结合Matlab中的xcorr函数和plot函数绘制序列的自相关函数图像[8?9]。Matlab生成的自相关函数的坐标如图2所示。

由图2可知,m序列的自相关性十分尖锐,可以应用于扩频通信。

3 两种算法的优劣比较

3.1 硬件资源占用

FPGA的硬件资源是有限的,虽然随着科技的进步,芯片中集成的门数已经高达500万门以上,但程序的复杂程度也与日俱增,导致硬件资源供不应求的情况时有发生。m序列常常作为整体程序的一部分出现,如果占用太多资源会导致程序的整体功能难以实现。因此,两种算法硬件资源的占用量是考量算法优劣的重要指标。

编程软件ISE会在程序编译结束时自动生成程序占用硬件资源的数据,其中Slice Registers和Slice LUTs分别表示芯片中的两种主要硬件资源,通过对比表1列出的资源占用情况可以了解两种算法在资源占用上的优劣[5]。

通过分析数据可得,虽然两种算法的资源占用率数值相近,但随着m序列特征方程阶数的增加,程序所占用的资源会越来越多,两种算法在资源占用上的差距也会增大。可见两种算法中,核调用法在两种主要资源的占用上都小于逻辑法。因而,在实现高阶m序列时,核调用法更具优势。

3.2 实现的难易度

FPGA以其强大的功能被越来越多的应用于实现极为复杂的程序,在保证性能满足要求的基础上,如何降低开发难度,缩短开发周期也是考量算法优劣的又一重要因素。

IP核是ISE软件已经集成好的程序模块,经过优化,使得其中的程序性能更加优越。而且在生成IP核时只需要对参数进行修改即可,其中各参数的功用可以在IP核提供的DataSheet文档中查看,因此利用IP核可以最大限度的缩短程序开发所需的时间。

相对而言,逻辑法需要在逻辑层面进行描述,需要花费较多的时间。

4 结 语

经过以上的论证,可得在利用FPGA进行算法实现时,充分利用软件自带的IP核不但能节省硬件资源,更能极大的缩短开发周期,降低算法实现的难度。本文提供的两种算法皆能产生性能良好的m序列,但核调用法更加节省资源,并且在开发难度上相比于逻辑法更简单快捷,在缩短开发周期,降低开发成本上更有优势。

参考文献

[1] 王昆,陈昕智.m序列产生和性能的Matlab仿真[J].水利电力机械,2007,29(12):170?171.

[2] 张雪峰,范九伦.基于线性反馈移位寄存器和混沌系统的伪随机序列生成方法[J].物理学报,2010,59(4):2289?2297.

[3] 樊昌信,曹丽娜.通信原理[M].6版.北京:国防工业出版社,2009.

[4] 段颖妮.基于FPGA的m序列发生器实现[J].电子元器件应用,2009,11(7):45?47.

[5] 何宾.Xilinx FPGA设计权威指南[M].北京:清华大学出版社,2012.

[6] 田耘,胡彬,徐文波,等.ISE Design Suite 10.x[M].北京:人民邮电出版社,2008.

[7] 陈海龙,李宏.基于Matlab的伪随机序列的产生和分析[J].计算机仿真,2005,22(5):98?100.

[8] 吴盼望,张善从.基于移位寄存器的伪随机序列改进算法[J].计算机工程,2012,38(18):265?267.

[9] 马根,孙浩茗,孙静.自编码扩频序列的性能研究[J].山东轻工业学院学报:自然科学版,2008,22(3):72?74.

摘 要: 为了产生性能良好且节省硬件资源的m序列,分别提出了基于现场可编程门阵列(FPGA)的逻辑法和核调用法两种算法,并详细介绍了两种算法的实现步骤。通过在Xilinx公司的NEXYS3开发板上进行设计和编程,对两种算法的可行性进行了检测;并结合ISE编程软件的仿真功能和Matlab对算法的自相关性、硬件占用率和实现难度等性能进行了分析。最终,了解到核调用法在m序列产生中的优越性。

关键词: m序列; FPGA; IP核; ISE

中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2014)05?0058?03

0 引 言

伪随机序列作为一种信号形式,具有良好的相关特性和伪随机性,可应用于扩频通信和信号加密等领域。根据应用场合的不同,可以将伪随机序列设计成具有不同特性的序列,其中,m序列便是应用最广泛的一种伪随机序列[1?2]。

m序列是最长线性反馈移位寄存器序列的简称,由[N]级移位寄存器和模二加法器产生。对于一个[N]级移位寄存器来说,最多可以有[2N]个状态。由于全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为 [2N-1。]当[N]级线性移位寄存器产生的序列[{ai}]的周期为[T=2N-1]时,称[{ai}]为[N]级m序列[3]。

本文采用Xilinx公司的spartan?6开发板来产生m序列。FPGA因其高速的计算速度和简便的编译步骤被越来越广泛的应用于数字信号处理领域。Spartan?6自带100 MHz内部晶振,最高可以提供高达300 MHz的运算速度。

1 m序列的实现算法

1.1 逻辑法

程序的移位寄存器功能模拟部分,根据特征方程,将序列Seq_r的第0、2、3和4位对应数值进行模二运算并将结果作为新的数据输入寄存器的高位。此处应避免初始状态为全零[4]。

程序的m序列输出部分,在每个时钟的上升沿提取Seq_r序列的第0位进行输出,产生的Seq序列即为m序列。

1.2 核调用法

Xilinx芯片配套的ISE编程软件提供了集成的移位寄存器IP核供使用者调用。IP核具有使用方便、操作简单、节省资源等优点。核调用法利用ISE编程软件提供的移位寄存器IP核进行设计,使用者可将IP核视为黑匣子,仅仅通过对其端口进行定义便可实现m序列的产生。

完成对IP核参数的设置后,在顶层文件中对IP核进行声明,将高位的输出信号输入低位的输入端,并取第2,3,4和8位寄存器的输出值进行模二运算,将结果输入第8位寄存器的输入端。将程序编译后,即可在FPGA上实现对m序列的生成。

2 m序列的性能分析

2.1 算法可行性验证

为了验证算法的可行性,确定两种算法是否能够产生满足特征方程的序列,需要对m序列波形进行观察。Xilinx对应的编程软件ISE可以利用软件自带的应用工具ChipScope对产生的波形进行检测。利用逻辑法和核调用法产生的m序列波形如图1所示。

图1中,clk_r为时钟信号,是频率固定的方波,程序在clk_r的上升沿进行运算。seq_r_r为算法产生的m序列,由图1可以看出,两种算法所产生的m序列波形相同,且在短时间内可视为随机序列。经过检测,确定两种算法皆能实现m序列的产生。

2.2 算法性能分析

m序列常常作为扩频序列应用于扩频通信中。扩频通信对扩频序列一般有如下要求:尖锐的自相关特性;足够多的序列数;序列均衡性好;工程上易实现[7]。

在m序列的一个周期中,“1”的个数比“0”的个数值多一个。这表明,序列平均值很小,具有良好的均衡性。为了检测序列的自相关性,可以结合Matlab中的xcorr函数和plot函数绘制序列的自相关函数图像[8?9]。Matlab生成的自相关函数的坐标如图2所示。

由图2可知,m序列的自相关性十分尖锐,可以应用于扩频通信。

3 两种算法的优劣比较

3.1 硬件资源占用

FPGA的硬件资源是有限的,虽然随着科技的进步,芯片中集成的门数已经高达500万门以上,但程序的复杂程度也与日俱增,导致硬件资源供不应求的情况时有发生。m序列常常作为整体程序的一部分出现,如果占用太多资源会导致程序的整体功能难以实现。因此,两种算法硬件资源的占用量是考量算法优劣的重要指标。

编程软件ISE会在程序编译结束时自动生成程序占用硬件资源的数据,其中Slice Registers和Slice LUTs分别表示芯片中的两种主要硬件资源,通过对比表1列出的资源占用情况可以了解两种算法在资源占用上的优劣[5]。

通过分析数据可得,虽然两种算法的资源占用率数值相近,但随着m序列特征方程阶数的增加,程序所占用的资源会越来越多,两种算法在资源占用上的差距也会增大。可见两种算法中,核调用法在两种主要资源的占用上都小于逻辑法。因而,在实现高阶m序列时,核调用法更具优势。

3.2 实现的难易度

FPGA以其强大的功能被越来越多的应用于实现极为复杂的程序,在保证性能满足要求的基础上,如何降低开发难度,缩短开发周期也是考量算法优劣的又一重要因素。

IP核是ISE软件已经集成好的程序模块,经过优化,使得其中的程序性能更加优越。而且在生成IP核时只需要对参数进行修改即可,其中各参数的功用可以在IP核提供的DataSheet文档中查看,因此利用IP核可以最大限度的缩短程序开发所需的时间。

相对而言,逻辑法需要在逻辑层面进行描述,需要花费较多的时间。

4 结 语

经过以上的论证,可得在利用FPGA进行算法实现时,充分利用软件自带的IP核不但能节省硬件资源,更能极大的缩短开发周期,降低算法实现的难度。本文提供的两种算法皆能产生性能良好的m序列,但核调用法更加节省资源,并且在开发难度上相比于逻辑法更简单快捷,在缩短开发周期,降低开发成本上更有优势。

参考文献

[1] 王昆,陈昕智.m序列产生和性能的Matlab仿真[J].水利电力机械,2007,29(12):170?171.

[2] 张雪峰,范九伦.基于线性反馈移位寄存器和混沌系统的伪随机序列生成方法[J].物理学报,2010,59(4):2289?2297.

[3] 樊昌信,曹丽娜.通信原理[M].6版.北京:国防工业出版社,2009.

[4] 段颖妮.基于FPGA的m序列发生器实现[J].电子元器件应用,2009,11(7):45?47.

[5] 何宾.Xilinx FPGA设计权威指南[M].北京:清华大学出版社,2012.

[6] 田耘,胡彬,徐文波,等.ISE Design Suite 10.x[M].北京:人民邮电出版社,2008.

[7] 陈海龙,李宏.基于Matlab的伪随机序列的产生和分析[J].计算机仿真,2005,22(5):98?100.

[8] 吴盼望,张善从.基于移位寄存器的伪随机序列改进算法[J].计算机工程,2012,38(18):265?267.

[9] 马根,孙浩茗,孙静.自编码扩频序列的性能研究[J].山东轻工业学院学报:自然科学版,2008,22(3):72?74.