Generating HDL from a Random Number Generator

 Accepted Answer

The mask on the uniform generator has sample time and seed parameters.
  1. The uniform generator produces uint32 values.
  2. There is a different algorithm for 128bit numbers. http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/ARTICLES/sfmt.pdf
  3. One can try concatenate 4 of these with different seeds but the quality is not guaranteed.
  4. The normal generator produces N~(0,1) distribution using Box-Mueller. Due to log and multiplication with 2*pi, some precision loss occurs that may not be significant.
load_system('hdl_rng.slx');
% generate 10000 random integers
sim('hdl_rng.slx',10000);
% plot the histogram
subplot(1,2,1);
histogram(uniform_random_numbers,linspace(0,2^32,21));
title('Histogram of uniform random numbers');
subplot(1,2,2);
histogram(normal_random_numbers,linspace(-4,4,21));
title('Histogram of normal random numbers');

More Answers (0)

Categories

Find more on Code Generation in Help Center and File Exchange

Products

Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!