lcytms
发表于 2018-7-2 08:03:10
1039
马上我就来做这个电路,我们通过仿真来看一下。
这边输出的是ms5,它是五阶的。
它是从这个本原多项式得到的。
五阶嘛,它有多少种数呢?
2的5次方,是32。
但是呢,我们看到,如果复位的时候是全0怎么样?
无论是哪一拍,输出一定是0。
这个排除掉。
lcytms
发表于 2018-7-2 08:03:48
1040
循环出来的数值却是一张洗乱了的牌。
32张牌,去掉了全0的这张牌,剩下31张牌,它会给你洗牌。
所谓洗牌,就是满足随机分布的规律,一张牌不多,一张牌不少。
所以称之为PN,伪随机数。
lcytms
发表于 2018-7-2 08:04:06
1041
下面我来做一下黑板上这个电路模型。
lcytms
发表于 2018-7-2 08:05:40
1042
打开Quartus。
新工程向导。
做ms5的伪随机数。
选一款器件。
lcytms
发表于 2018-7-2 08:06:46
1043
新建ms5_pn.v文件。
时钟、复位。
输出是ms5。
我们用五阶的本原多项式来做。
lcytms
发表于 2018-7-2 08:08:02
1044
编写ms5_pn.v代码。
串行,单比特。
Ctrl+S、Ctrl+K。
然后呢,我们为它准备5个寄存器。
初始值。
lcytms
发表于 2018-7-2 08:09:11
1045
编写ms5_pn.v代码。
5个比特。
不是什么时候复位都为0的。
这时候复位要给初始值,全0永远得不到伪随机数了,无论哪一拍出来就是全0了。
lcytms
发表于 2018-7-2 08:10:07
1046
编写ms5_pn.v代码。
描述这段电路。
R捕获的是r,r捕获的是r。
移位寄存器嘛。
R捕获的是r,r捕获的是r。
lcytms
发表于 2018-7-2 08:10:53
1047
编写ms5_pn.v代码。
r得到的是什么呢?
r的输出,和r的输出异或。
lcytms
发表于 2018-7-2 08:12:25
1048
编写ms5_pn.v代码。
1049
编写ms5_pn.v代码。
1050
编写ms5_pn.v代码。