Customizable FPGA IP core implementation of a general-purpose genetic algorithm engine

  • Authors:
  • Pradeep R. Fernando;Srinivas Katkoori;Didier Keymeulen;Ricardo Zebulum;Adrian Stoica

  • Affiliations:
  • Department of Computer Science and Engineering, University of South Florida, Tampa, FL;Department of Computer Science and Engineering, University of South Florida, Tampa, FL;Jet Propulsion Laboratory, Pasadena, CA;Jet Propulsion Laboratory, Pasadena, CA;Jet Propulsion Laboratory, Pasadena, CA

  • Venue:
  • IEEE Transactions on Evolutionary Computation
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Hardware implementation of genetic algorithms (GAs) is gaining importance because of their proven effectiveness as optimization engines for real-time applications (e.g., evolvable hardware). Earlier hardware implementations suffer from major drawbacks such as absence of GA parameter programmability, rigid predefined system architecture, and lack of support for multiple fitness functions. In this paper, we report the design of an IP core that implements a general-purpose GA engine that addresses these problems. Specifically, the proposed GA IP core can be customized in terms of the population size, number of generations, crossover and mutation rates, random number generator seed, and the fitness function. It has been successfully synthesized and verified on a Xilinx Virtex II Pro Field programmable gate arrays device (xc2vp30-7ff896) with only 13% logic slice utilization, 1% block memory utilization for GA memory, and a clock speed of 50MHz. The GA core has been used as a search engine for realtime adaptive healing but can be tailored to any given application by interfacing with the appropriate application-specific fitness evaluation module as well as the required storage memory and by programming the values of the desired GA parameters. The core is soft in nature i.e., a gate-level netlist is provided which can be readily integrated with the user's system. The performance of the GA core was tested using standard optimization test functions. In the hardware experiments, the proposed core either found the globally optimum solution or found a solution that was within 3.7% of the value of the globally optimal solution. The experimental test setup including the GA core achieved a speedup of around 5.16× over an analogous software implementation.