m序列产生器(FPGA学习)

m序列产生器

摘自《Altera FPGA 系统设计实用教程》清华大学出版社

伪随机数在密码邻域的应用无处不在,是很多密码算法和密码协议的基础,常见伪随机数发生器基于线性反馈移位寄存器的伪随机数发生器,简称LFSR(linear feedback shift register)
一个反馈移位寄存器FSR由移位寄存器和反馈函数组成。其中,反馈函数由移位寄存器某些位的组合逻辑构成。
关于移位寄存器的设计方法:
1.基于行为的设计方法:由相应个数的D触发器首位连接而成
2.基于结构的描述方法:通过元件例化语句循环调用触发器
LFSR工作原理:移位寄存器所有位的值右移一位,最右边的寄存器移出的值作为输出,最左边的寄存器输入的值由反馈值填充,此过程称为进动一拍。
进动m拍就产生m个输出。
LFSR的周期定义:输出序列从开始到重复所经历的长度,n级最大周期为2*n-1,此时输出最长周期序列成为m序列,即m序列是最长线性反馈移位寄存器序列。
f(x)=CnXn+C(n-1)X(n-1)… …C2X2+C1X+1 (n阶本原多项式)
Xn第n个触发器
Cn反馈系数,其值为1时表示反馈支路连接

寄存器级数和m序列长 反馈系数(八进制)
2/3 7
3/7 13
4/15 23
5/31 45
6/63 103
7/127 211
8/255 435
9/511 1021
10/1023 2011

例:设计一个5级m序列,反馈为45,即100101
此时C5,C2,C0=1; C4,C3,C1=0
图中非门为避免输出全0 信号。

Altera库中的DFF元件定义如下

m序列产生器(FPGA学习)_第1张图片

m序列产生器(FPGA学习)_第2张图片
m序列产生器(FPGA学习)_第3张图片
m序列产生器(FPGA学习)_第4张图片

供自己fpga学习,如有错误,欢迎指出

你可能感兴趣的:(m序列产生器(FPGA学习))