An improved Ziggurat-based hardware Gaussian random number generator

The Ziggurat algorithm is an efficient way for building a Gaussian random number generator (GRNG), which is useful in many scientific and engineering applications. As the classic ziggurat-based GRNG includes nonlinear operations in judging the wedge and tail regions, which is complicated and resource consuming. An improved ziggurat algorithm is proposed by optimizing the accepting model with piecewise linear fitting, replacing the nonlinear operations with linear ones. The improved GRNG works with a 33% decrease of resource and has no significant performance loss. In addition, the uniform random number generator (URNG) in GRNG is implemented by metastability-based ring oscillators with XOR trees, which is the state-of-the-art technique for generating true random numbers in fully digital ways. FPGA results show that the proposed GRNG generates good normal distribution samples with a smooth power spectrum.

[1]  Wayne Luk,et al.  A hardware Gaussian noise generator using the Box-Muller method and its error analysis , 2006, IEEE Transactions on Computers.

[2]  Wayne Luk,et al.  Ziggurat-based hardware Gaussian random number generator , 2005, International Conference on Field Programmable Logic and Applications, 2005..

[3]  G. Marsaglia,et al.  The Ziggurat Method for Generating Random Variables , 2000 .

[4]  Wayne Luk,et al.  A hardware Gaussian noise generator using the Wallace method , 2005, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[5]  Wayne Luk,et al.  Gaussian random number generators , 2007, CSUR.

[6]  Piotr Zbigniew Wieczorek,et al.  An FPGA Implementation of the Resolve Time-Based True Random Number Generator With Quality Control , 2014, IEEE Transactions on Circuits and Systems I: Regular Papers.

[7]  Pierre L'Ecuyer,et al.  Tables of maximally equidistributed combined LFSR generators , 1999, Math. Comput..