The simulation engine presented in this report provides extensible support for a variety of circuits each of which may be described at different levels of abstraction. The class structure is particularly amenable towards the specification of high-level functional blocks that can be easily described in C++ -- the language used as the basis for hardware simulation by the implementation described herein. A user-defined library consisting of high- and low-level components can be designed and integrated easily with the core library components. Subsequent chapters discuss all aspects of the simulator in detail. These details include implementation concerns with respect to the graphical user interface, the simulator engine core as well as the means by which these two major components communicate with one another.