Wed May 7 18:43:54 CEST 2008

simulator problem definition: generalized interaction mode

   1. (assembler) source code
   2. cpu (functional) and memory/port (state) model

   1. binary support code to upload, possibly incrementally
   2. a toplevel driver function that starts the simulation

work with assembler source code to keep the machine model simple:
source code simulation is never going to be accurate enough to be
generalized: you want the nitty gritty. this also enables the
decoupling of the compiler and the simulator: external compilers can
be used.

so, should the memory model be destructive or not? this boils down to
the question: what is more important: speed or the ability to have
non-straight line execution? what about going for the cleanest
solution, and have EACH memory location be a port, with memory being a
simple loopback port? so the only state related to memory model would
be the configuration "patch", which is static for a certain
simulation. all other state could be task-local.