CppSim is a free behavioral simulation package that leverages the C++ language to
allow very fast simulation of systems. Users enter designs in a graphical schematic
editor, Sue2, run the simulations using a provided GUI tool, and then view the results
within CppSimView (a custom waveform viewer for CppSim). Users can also run
simulations and plot signals directly within Matlab.

While using C++ is often considered a difficult path for new users, CppSim automates
much of the code generation process and eliminates many of the difficulties often
associated with C++ simulation.  For many systems, the users can simply connect
existing modules within the graphical environment provided by Sue2.  When new
modules need to be created, a template form is provided which the users simply fill in
with code to describe the module behavior.  A rich set of examples is provided
through the many tutorials available on this site, and a powerful and easy-to-use set of
C++ classes is provided to allow straightforward creation of filters, noise generators,
and other common system elements.

Using C++ as the underlying language to describe the system provides a significant
advantage in simulation speed and the ability to simulate very complex systems over
a large number of time steps.  In addition, the auto-generated C++ code provides a
portable description that can leveraged in many other environments.  For instance,
once a CppSim model is created, you can seamlessly turn it into a Matlab mex
function or Simulink S-function using the associated utilities provided in this package.

Since CppSim is free and therefore usable by anyone, users can easily share their
system descriptions with others.  A sophisticated Export tool is provided in this
package that allows seamless transfer of CppSim libraries in a manner that embeds
all dependent modules and scripts associated with the library.  The corresponding
Import tool will compare all such dependent modules against the user's existing
CppSim cells and only import those modules which are new or modified.  The overall
process allows a simple and elegant means of transfering system knowledge
between users.

While CppSim comes with no warranty or support, detailed bug reports to
support@cppsim.com are welcome as the package continues to be actively
developed.