The object-oriented programming paradigm appears to be better suited for hardware description and simulation than the structured programming paradigm. As shown throughout the report, the concepts of encapsulation, inheritance and runtime binding are indispensable when attempting to describe and simulate hardware using the same language. Since C++ can be used for the modelling and testing of hardware designs, the language creates a uniform environment for hardware description and simulation.
The concept of distributed event queues in the form of wires as opposed to a global event queue seems more natural and less prone to error. The distributed event queue also appears to rectify most of the problems associated with the unintuitive global event queue. The use of distributed queues in conjunction with the concept of local time for hardware modules is a feasible method for simulating inherently parallel devices using a sequential language. It should be noted that while this dissertation dealt exclusively with the description and simulation of hardware, the concept of distributed queues and local time may also be used to simulate hierarchical software modules in parallel as well.
The code written to date appears to simulate relatively small combinational and sequential components correctly; however, more extensive testing is required. Further work required on the current implementation includes providing support for the dequeuing of signals from wires when they have been used by all the relevant components. Support should also be provided for signals which are generated spontaneously during a simulation such as the internal clocks or resetable timers and one-shots. In addition, the creation of a Bus class would make circuit descriptions more powerful and less cumbersome.
The C++ language is much more modular and powerful than traditional structured programming languages. The source code for the description and simulation consisted of only about 800 lines, with the most complicated method requiring less than a dozen lines of code. As was shown earlier, C++ also permits new components to be added to the library quickly and easily with little threat of error. This makes C++ and the object-oriented programming paradigm very amicable to the fields of hardware design and simulation.