How to generate gaussian random numbers using Verilog?

L

lindberg

Guest
I need to generate gaussian random numbers in Verilog for simulating
AWGN channel. What I want is a method which is synthesizable. I thought
it could be done by adding many uniform random numbers to get a
gaussian-distributed number. Is there any other way to do this? Or any
free code available?
 
First a clarification: "adding" many uniform random numbers does not
generate a gaussian distributed number - "adding" many uniform
distributions (or any other distribution/s) together does.

Having said that, the above proposition applies to only *truly random*
sequences; no pseudo random sequence will pass this test, although you
can come pretty close based on your definition of sample set and
uniformity.

A basic outline for achieving this is to generate a number of random
streams (using, say linear congruential method - google it) and then
pick a stream out of the pool in a round robin manner.

If you are quality conscious, take a look at:
http://www.ee.ucla.edu/~dongu/pub/papers/fpl05_dul98.pdf

- Swapnajit
_____________________________________________________________
SystemVerilog, DPI, Verilog PLI and all other good stuffs.
Project VeriPage: http://www.project-veripage.com
For subscribing to the mailing list:
<URL: http://www.project-veripage.com/list/?p=subscribe&id=1>
 

Welcome to EDABoard.com

Sponsor

Back
Top