基于FPGA的m序列信号发生器设计
2014-09-23姚振东
蒋 权,姚振东,李 建
(成都信息工程学院 四川 成都 610225)
基于FPGA的m序列信号发生器设计
蒋 权,姚振东,李 建
(成都信息工程学院 四川 成都 610225)
m序列是一种伪随机序列(PN码),广泛用于数据白噪化、去白噪化、数据传输加密、解密等通信、控制领域。基于FPGA与Verilog硬件描述语言设计并实现了一种数据率按步进可调、低数据误码率、反馈多项式为f(x)=1+x2+x3+x4+x8的m序列信号发生器。系统时钟为20 MHz,m序列信号发生器输出的数据率为20~100 kbps,通过2个按键实现20 kbps步进可调与系统复位,输出误码率小于1%。
m序列;信号发生器;FPGA;Verilog
m序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种伪随机序列。是由移位寄存器、反馈抽头及模2加法器组成。m序列一旦反馈多项式及移位寄存器初值给定,则就是可以预先确定并且可以重复实现的序列,该特点使得m序列在数据白噪化、去白噪化、数据传输加密、解密等通信、控制领域使用广泛[1-3]。因此,深入学习研究m序列具有重要的实际意义。
1 m序列信号发生器的组成
基于FPGA的m序列信号发生器硬件结构极其简单,仅需两个独立按键(一个是复位按键与另一个控制数据率切换按键)、一个48 MHz的用于提供系统时钟有源晶振、系统电源、一块配置芯片、几个简单的电阻与电容即可实现。按键去抖动、按键复位、按键切换数据率、时钟分频等功能均在FPGA内部编程实现。
图1 信号发生器硬件组成框图Fig.1 Block diagram of the hardware system of signal generator
2 m序列信号发生器的关键设计
本文中m序列信号发生器的反馈多项式为:f(x)=1+x2+x3+x4+x8。其反馈及移位寄存器的关系图如图2所示。
从本设计中的反馈及移位寄存器的关系图可以看出,一个时钟周期,移位寄存器右移一位,最高位输入为x0、x2、x3、x4及x8的异或(模2相加)。m序列的输出是移位寄存器的最低位。图2所示的关系是m序列呈现为随机性、周期性的根本原因。
图2 m序列信号发生器反馈及移位寄存器图Fig.2 Feedback and shift register figure of the M sequence signal generator
为了满足信号发生器输出数据率20 kbps的步进通过按键可调,则生成按步进20 kbps可调的时钟是实现该功能的关键。当按键发生,时钟的输出频率加20 kbps。在实际电路中,按键会有很大抖动,对系统会造成很大的不稳定性[4-5],因此,必须想办法减小这样的不利影响。在FPGA中一般使用硬件描述语言,描述一个延时电路,来实现按键去抖动的目的。该设计中信号发生器的FPGA内部各功能模块及其之间的关系,如图3所示。
图3 FPGA功能模块方案框图Fig.3 Program block diagram of The FPGA function module
3 设计核心之综合与仿真
3.1 时钟模块设计
在所有基于FPGA的设计中,设计满足设计要求的时钟信号对设计成败起着至关重要的作用。满足在本文所设计的m序列信号发生器的时钟信号输出频率为:20 MHz、20 kHz、40 kHz、60 kHz、80 kHz、100 kHz。 输 出 的 时 钟 信 号 在modelsim 6.5f中的仿真波形如图4所示。从图4中可以看出,时钟模块性能满足设计要求,设计正确。
图4 时钟产生模块仿真波形Fig.4 The simulation waveform of the clock produce module
3.2 m序列产生模块设计
m序列产生模块是m序列信号发生器的最核心部分。文中的 序列生气器核心模块的 的代码为
图5 m序列产生模块Synplify综合结果图Fig.5 The Synplify synthesis results of the M sequence produce module
从Verilog代码可以看出,m序列产生模块实现极其容易,只需要一个移位寄存器、一个模2加法器即可实现m序列的产生。
本系统中m序列产生模块在Synplify综合结果图、在modelsim 6.5f中的仿真波形图,分别如图5、6所示。从图5、6中可看出,该模块产生了周期为217的周期序列,设计正确。图7是系统的quartus II顶层模块图。
图6 m序列信号发生器系统仿真波形Fig.6 The system simulation waveform of the M sequence signal generator
图7 系统顶层模块图Fig.7 The module chart of system top-level
4 结论
当信号发生器的移位寄存器A的初值A=9’b1_0000_0000时,m序列的周期 T=217,输出的周期m序列为:0000000011111010110011011111000110100110101110 110000011011011001001110011001111111011110000101010 011110110100010100001100101111010010010100101101010 101111110011101110000001011100100011000011101010001 110001001000010001。
该信号发生器实现了输出数据率在20~100 kbps之间,并实现按20 kbps的步进可调功能;输出数据率仅在输出60 kbps的数据率时有较大误差,数据率偏小约0.2%。该m序列信号发生器性能稳定,实现所有设计功能,符合设计要求。
[1]樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2009.
[2]田耘,徐文波,张延伟.无线通信FPGA设计[M].北京:电子工业出版社,2009.
[3]肖国镇,梁传甲,王育民.伪随机序列及其应用[M].北京:国防工业出版社,1985.
[4]张晶,王立松,李铁才.数控操作面板控制功能的CPLD实现方法[J].组合机床与自动化加工技术,2007(5):51-54.
ZHANG Jing,WANG Li-song,LI Tie-cai.Implementation of Control Functions of the CNC Control Panel with CPLD[J].Combination Machine Toolsand Automatic Processing Technology,2007(5):51-54.
[5]杨泽林,郭中华.一种去抖动延时可调键盘电路的设计[J].电子技术,2004(9):62-63.
YANG Ze-lin,GUO Zhong-hua.Design of A to jitter delay adjustable keyboard circuit[J].Electronic Technology,2004(9):62-63.
[6]彭文剑.q元M序列的生成[J].微处理机,2006,8(4):101-103.
PENG Wen-jian.The generation of an m sequence about qary[J].Microprocessors,2006,8(4):101-103.
Design of an m sequence signal generator based on FPGA
JIANG Quan,YAO Zhen-dong,LI Jian
(Chengdu University of Information Technology,Chengdu 610225,China)
m sequence is a pseudo random sequence(PN code),widely used in whitening and dewhitening of data,encryption and decryption of transmission data in communications,control fields.Based on FPGA and Verilog hardware description language,design and realize an adjustable data rate,low data error m sequence signal generator,the feedback polynomial of which isf(x)=1+x2+x3+x4+x8.System clock of this signal generator is 20 MHz,system output data rate is from 20 to 100 kbps,through two keys can realize 20 kbps step-by-step adjustment and system reset.The value of output data rate error is less than 1%.
m sequence;signal generator;FPGA;Verilog
TN919
A
1674-6236(2014)13-0155-03
2013-10-01 稿件编号:201310003
蒋 权(1987—),男,四川南充人,硕士研究生。研究方向:信号与信息处理、软件无线电。