Evolutionary Algorithms
Our evolvable hardware system - FPTA - is working on transistor level. Configurable CMOS transistors are arranged in an array of 16 x 16 cells. Each transistor terminal can be connected to one of the cells outside connections (N S W E), vdd or gnd. Additionally, it is possible to directly connect the nodes (N S W E) to each other which provides flexible routing capabilities. The array is enclosed by IO cells that can apply voltages to the border cells or measure the output voltages of the evolved circuit.
Therefore our individuals contain the configuration data of how the terminals and connections of the transistor array are set up. A Genetic Algorithm (GA) is used to control the evolution of the transistor circuits. According to the working principles of Evolutionary Algorithms (EA) a mutation operator and a crossover operator are defined to modify the individuals that make up a population. Each individual represents a genotype -> the configuration string for the FPTA. For testing and evaluating, the genotype is mapped to the phenotype that describes a circuit in the FPTA's format.
Mutation operator:
The mutation operator randomly enables or disables connections between nodes and terminals of a selected individual. As an example, two partly configured transistor cells are shown that turn into a running inverter circuit by mutating one connection.
Crossover operator:
The crossover operator selects two individuals that become the parents of a new one. This is done by randomly choosing a variable block of cells of one parent and exchanging it with the corresponding block of the second. Again an inverter circuit serves to visualize how things work.
As shown on the picture, two useful parts that were spread over two individuals happened to merge and again a running inverter circuit is formed.


