This is a very simple example to show how a user can disable
randomization for certain elements in a structure.  This
example builds on example 4, which showed how to randomize
simple user data.

In this example, three of the payload words are not
randomized, while the other two are.

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 structures
  data_ext.h  Extensions for the user-defined structures
  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 capabilities, a user 
must define a scv_extensions<> 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
