EDN China > 设计实例 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于Logistic映射PN序列的FPGA实现

张波 王光义 韩春艳?? 2009年05月31日 ?? 收藏0

  4 PN序列随机性分析

  为了对硬件输出的PN序列进行性能测试,首先通过一个串口通信模块电路对FPGA输出的数字PN序列进行采样,然后利用计算机对其进行随机性能分析。这里采用的FPGA开发板其内核为CycloneⅡ的EP2(235F484C8,外围电路提供了USB口、并行I/O以及串口等一系列可供用户选择的端口。抽取Xn二进制表示的小数部分的第9位作为比特序列,并通过串口来实时获得该位在一定时间段t内的所有值,其串口通信模块电路如图6所示。

串口通信模块电路

  为了确保计算机在接收该序列时不出现比特丢失现象,可预先向计算机发送一组周期序列来保证数据的可靠性。假设串口传输波特率为9 600,系统晶振为20 MHz,为了得到整数倍的分频,可根据公式:

n=(20×106×k)/9600

  令k=3,则可得出n为6 250。其中,比例因子k可通过锁相环来获得。上述两步骤可通过在QuartusⅡ中添加锁相环代码与分频器代码实现。此时,让系统时钟T=1/9 600再经过二分频后通过串口输出,如果在接收端收到“01010”的周期序列,则表明FPGA与计算机之间的通信无问题。

  5 PN序列随机性能分析

  5.1 频率测试(Frequency Test)

  该测试可用来判断序列当中0和1的个数是否近似相等,若近似相等,则符合随机序列的必要条件。令n0,n1分别代表0与1的个数;n代表序列s的长度。

  该统计方程为:

T1=(n0-n1)2/n

  若n≥lO,则T1近似符合1维自由度的x2分布。

  对采集到的PN序列进行自由度为l的x2检验,取显著性水平α=0.05,可以从标准表中查到显著性水平a=O.05的x2值为3.84。如果T1值小于3.84,则该序列通过测试。n0,n1和T1的测试值如表l所示,由此可知,该序列的T1值远小于3.84,通过测试。