This is a very simple example to show how a user can
randomize data. This example builds on examples 1-3, which
showed how to create user-defined data types.

This example uses the static scv_random::set_global_seed()
method to force the initial seed value. This method ensures
that two simulation runs will produce the same results, as
long as the number of random objects and order of random
object creation is unchanged. There are more sophisticated
methods for ensuring reproducibility, but we use the
simplest form for this example.

The following source files are part of this example:

  data.h      The definition of a user-defined structure
  data_ext.h  Extensions for the user-defined data types.
  test.cc     A test that uses the introspection interface to
              randomize the data objects
  Makefile    Targets for sun-gnu, hppa-native and linux

In order for a structure to have introspection capability, a
user must define a scv_extensions<> template specialization
for the particular struct.

A makefile for use with SystemC is provided with targets for
three different platforms:

  make sun-gnu        # Gnu C++ compiler on Sun
  make hppa-native    # HP C++ compiler on HP
  make linux          # Gnu C++ compiler on Linux


%%CATEGORIES            notebook examples introspection randomization
%%TBARGS        ncsc    --stop hdl_elab --sconly sctop
%%LinePrefix    all
%%Files         none    %%REGSRC/test.cc %%REGSRC/test_reg.cc
%%Files         osci    %%REGSRC/test.cc
%%Files         schdl   %%REGSRC/test.cc
%%Files         ncsc    %%REGSRC/test_reg.cc
%%CheckTest     all     %%REGSRC/checktest.sh %%TBLOG %%REGSRC/tb_log.au
%%REALCLEAN             %%REGBLD/logfile.diff
