A hardware Gaussian noise generator using the Box-Muller method and its error analysis

We present a hardware Gaussian noise generator based on the Box-Muller method that provides highly accurate noise samples. The noise generator can be used as a key component in a hardware-based simulation system, such as for exploring channel code behavior at very low bit error rates, as low as 10-12 to 10-13. The main novelties of this work are accurate analytical error analysis and bit-width optimization for the elementary functions involved in the Box-Muller method. Two 16-bit noise samples are generated every clock cycle and, due to the accurate error analysis, every sample is analytically guaranteed to be accurate to one unit in the last place. An implementation on a Xilinx Virtex-4 XC4VLX100-12 FPGA occupies 1,452 slices, three block RAMs, and 12 DSP slices, and is capable of generating 750 million samples per second at a clock speed of 375 MHz. The performance can be improved by exploiting concurrent execution: 37 parallel instances of the noise generator at 95 MHz on a Xilinx Virtex-II Pro XC2VP100-7 FPGA generate seven billion samples per second and can run over 200 times faster than the output produced by software running on an Intel Pentium-4 3 GHz PC. The noise generator is currently being used at the Jet Propulsion Laboratory, NASA to evaluate the performance of low-density parity-check codes for deep-space communications

[1]  Wayne Luk,et al.  MiniBit: bit-width optimization via affine arithmetic , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[2]  Earl E. Swartzlander,et al.  Hardware Designs for Exactly Rounded Elemantary Functions , 1994, IEEE Trans. Computers.

[3]  B. Jung,et al.  Langevin dynamics simulations of macromolecules on parallel computers , 1997 .

[4]  Jean-Michel Muller,et al.  Elementary Functions: Algorithms and Implementation , 1997 .

[5]  Chris S. Wallace Fast pseudorandom generators for normal and exponential variates , 1996, TOMS.

[6]  M. E. Muller,et al.  A Note on the Generation of Random Normal Deviates , 1958 .

[7]  Michael J. Schulte,et al.  Design alternatives for barrel shifters , 2002, SPIE Optics + Photonics.

[8]  Arnaud Tisserand,et al.  Toward Correctly Rounded Transcendentals , 1998, IEEE Trans. Computers.

[9]  Robert G. Gallager,et al.  Low-density parity-check codes , 1962, IRE Trans. Inf. Theory.

[10]  Donald E. Knuth Son of seminumerical algorithms , 1975, SIGS.

[11]  Vojin G. Oklobdzija,et al.  An algorithmic and novel design of a leading zero detector circuit: comparison with logic synthesis , 1994, IEEE Trans. Very Large Scale Integr. Syst..

[12]  Philip Heng Wai Leong,et al.  Compact FPGA-based true and pseudo random number generators , 2003, 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 2003. FCCM 2003..

[13]  Wayne Luk,et al.  A Gaussian noise generator for hardware-based simulations , 2004, IEEE Transactions on Computers.

[14]  V.C. Gaudet,et al.  ASIC implementation of a high speed WGNG for communication channel emulation [white Gaussian noise generator] , 2004, IEEE Workshop onSignal Processing Systems, 2004. SIPS 2004..

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

[16]  Marion Kee,et al.  Analysis , 2004, Machine Translation.

[17]  De Figueiredo,et al.  Self-validated numerical methods and applications , 1997 .

[18]  M. Musiela,et al.  The Market Model of Interest Rate Dynamics , 1997 .

[19]  Wolfgang Hörmann,et al.  Continuous random variate generation by fast numerical inversion , 2003, TOMC.

[20]  A. Glavieux,et al.  Near Shannon limit error-correcting coding and decoding: Turbo-codes. 1 , 1993, Proceedings of ICC '93 - IEEE International Conference on Communications.

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

[22]  R. Tausworthe Random Numbers Generated by Linear Recurrence Modulo Two , 1965 .

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

[24]  Pierre L'Ecuyer,et al.  Maximally equidistributed combined Tausworthe generators , 1996, Math. Comput..

[25]  Jean-Luc Danger,et al.  Design of High Speed AWGN Communication Channel Emulator , 2003 .

[26]  S. Walther A unified algorithm for elementary functions , 1899 .