基于FPGA的随机数和伪随机数
1.随机数
:系统函数$random能够返回一个有符号的32位整数的随机数,但它不能被综合即不能下载到硬件中使用,因此只能在testbench测试文件中使用;
常用例子:
$random%100 产生-99——99范围的随机数;
{$random}%100 产生 0——99范围的随机数;
2.伪随机数
:可以被综合,能够在硬件上使用,使用LFSR(线性反馈移位寄存器)产生的伪随机数,实际上是一个周期性的序列,但从应用的角度来说,其随机程度已经足够,故可以应用到需要产生随机数的操作中。LFSR可以分为两类:一类是斐波那契LFSR,是通过外异或的方式产生伪随机数;另一类是伽罗瓦LFSR,是通过内异或的方式产生的伪随机数。
详细的通俗易懂的伪随机数(伽罗瓦LFSR)的讲解见此链接:https://www.cnblogs.com/BitArt/archive/2012/12/22/2827005.html