
CPU Architecture Evolution
FPGA-Based CPU Architecture Evolution through Genetic Algorithms
A proof of concept system that leverages the NSGA-II (Non-dominated Sorting Genetic Algorithm II) to optimize CPU architectures through multi-objective Design Space Exploration (DSE).
The system evolves NIOS II softcore designs based on performance metrics and physical constraints, with benchmarking performed directly on FPGA hardware. This work was presented as my Graduation Thesis in order to attain the tittle of Bachelor of Science in Computer Engineering at the University of São Paulo, Brazil. Later, it was presented at EUROGEN 2019 (Evolutionary and Deterministic Computing for Industrial Applications Conference) in Guimarães, Portugal, where it received a Best Poster award.
Implementation features:
NSGA-II based multi-objective optimization
FPGA-based performance benchmarking
Automated generation, compilation, and deployment of CPU designs
Three optimization objectives: execution time, logic elements usage (ALM), and memory usage
Design space of 76,800 possible CPU configurations
Support for multiple benchmark profiles:
ADPCM signal encoding
Sobel image border detection
Vector operations (dot product, sum)
Quick sort algorithm
Full NIOS II softcore customization through XML-based configuration
Hardware-based performance measurement through NIOS II timer
Publications and Resources:
[Poster] - EUROGEN 2019 Poster (received a Best Poster award)
[Article] - EUROGEN 2019 Conference Submission
[Thesis] - Original Graduation Thesis
[Publication] - Publication at USP Library
[Code] - Github Repository