We can think of signals as having two attributes: a value (for example, high, low or don't care) and a time at which the signal occurred during the simulation. The Signal class is used to aggregate these two attributes into a single entity. Signals are frequently used by classes derived from the Connector class since these classes are responsible for the transmission of signals throughout the circuit during the simulation. Signals are also used by the lowest level components when it comes time for them to process their inputs. These components take their input signals from their input ports and produce appropriate signals which are sent to their output ports.