The core of the discrete-event simulator engine described in this paper was previously designed and implemented as part of an Honours project. Despite the capabilities of the simulator engine, the implementation was limited from an end user perspective. One of the biggest problems of the implementation was the user interface -- or rather, the lack thereof. In order to describe a circuit, the user had to define the entire circuit as well as the input signals in a C++ source module. The circuit description, inputs and simulator engine itself then had to be compiled, linked and executed in order to determine the outputs from the circuit. The output from the simulator consisted of time stamps and signal values which were displayed textually rather than graphically. Consequently, verification of the behaviour of the circuit was often difficult and tedious. In addition, any changes to the circuit description or input signals, regardless of how small, required modification and subsequent recompilation of the source code. Needless to say, this technique for circuit specification and simulation seriously compromised both the evaluation and practicality of the simulator engine itself.
In order to get around these problems, a graphical user interface  (or GUI), called DigiTcl, was designed and implemented for the simulator engine. The benefits of such an interface are multifold. Firstly, due to the graphical representation of such an interface, further investigation into the feasibility, practicality and accuracy of the simulator engine becomes easier. Instead of verifying the reliability of the simulator by examining streams of textual output, waveforms can be generated and studied. Secondly, if the GUI is designed and implemented correctly, it can be used as the front end for a multitude of circuit simulators. This feature would make it significantly easier to compare the performance and capabilities of a variety of different simulator engines. In order to implement this feature, loose coupling  between the simulator engine and the GUI is necessary. Thirdly, a GUI would make the specification of circuits easier for novice end users, thereby making the simulator engine more accessible to people who may not be familiar with relatively esoteric concepts such as source code compilation. An intuitive GUI would facilitate circuit specification and design, hence increasing the academic and even industrial applications of the simulator engine.