The whole tool has been written in C++. All the classes of the program are showed in appendix A and all the code details can be found in appendix B.
Here are reported the most important classes of the program:
CircuitNetlist
OptimizationAlgorithm
EvaluationAlgorithm
The first class, CircuitNetlist, and its derived Circuit,
contain the graph of the circuit, in which every node is a transistor and
every edge is a connection between two transistor.
The class OptimizationAlgorithm is a virtual base
class from which
every new optimization algorithm should be derived. It provides the
interface between the real class that implements the algorithm and the
core engine. Every derived class should provide the method
Run() that performs the optimizations.
The class EvaluationAlgorithm is again a virtual base class
from which every new simulator should be derived; and again every derived
class should provide the method Run(...) that performs the
evaluation of all the objectives of the circuit, as delay, power consumption
and so on.