I've implemented a simple simulator of combinatorial and sequential digital systems in C#.
The user can create his own networks using a specific language for the definition of multi-input/multi-output components. The components can be reused in the definition of other components, allowing the creation of libraries and the quick definition of complex networks. Moreover the generation of input waves during the simulations can be automated using scripts written in any of the main .Net languages.
You can find the program here:
If you have any question feel free to answer to this post or contact me.
Lorenzo Castelli