Runtime_Component(): The constructor for the
Runtime_Component class simply initializes its base class
by invoking the Component constructor with the arguments
CKT_TIME_NULL and with the identifying string
"Runtime". The CKT_TIME_NULL parameter signifies
that the runtime component has no delay; its delay is determined by the
transport delays of its subcomponents.
void create_input(Wire *wire, const char *name): This
member function simply creates a new input port for the runtime
component. The wire parameter is a pointer to the wire that
feeds the input port and the name parameter is the unique
string that identifies the port.
void create_output(Wire *wire, const char *name):
This member function, like create_input(),
creates a new output port for the runtime component. The
wire parameter is a pointer to the wire to which the newly
constructed output port sends its signals and the name
parameter is the unique string that identifies the port.
void create_internal(Wire *wire): The runtime
component may contain internal netlists which are not connected to any
of its input or output ports. This constructor will add the specified
wire pointer to a linked list which stores all the internal
netlists contained within the runtime component.
Connector *find_connector(const char *name): This is
a helper function that searches for the specified connector name amongst
the input and output ports and the internal netlists of the runtime
component. If the search is successful, then a pointer to the
corresponding connector is returned. This method is used to determine
which wires and ports are to be connected to the ports of the
subcomponents of the encompassing runtime component.
int create_subcmp(const char *t, const char *n,
List<char *>io): In order to create a subcomponent inside the runtime
component, this method must be used. After instantiating the
subcomponent, this function connects it to the specified input and
output ports and to the internal netlists of the runtime component
created earlier. The t parameter indicates what type of
subcomponent to create (for example, a NAND gate,
XOR gate, and so on). The n parameter gives the
name of the component which is passed to the component's
constructor. Finally, the io parameter is a
list containing the names of the connectors to which the subcomponent is
connected.