Methods, systems, apparatus and devices to provide autonomous self-repair
for programmable logic. Using Competitive Runtime Reconfiguration, an
initial population of functionally identical, yet physically distinct
individual programmable logic configurations are produced at design time.
During operation, individuals compete for selection based on a fitness
function favoring fault-free behavior and any physical resource
exhibiting an operationally-significant fault decreases the fitness of
those configurations which use it. Through runtime competition, the
presence of the fault becomes occluded from the visibility of subsequent
operations. Offspring formed through crossover and mutation of faulty and
viable configurations are reintroduced into the population to enable
evolution of a customized fault-specific repair, realized as new
configurations using normal throughput processing operations. In an
embodiment, the error detection circuit is also checked for errors.