Skip to content

What Do I Need to Know?

Evolvable hardware sits at the intersection of several fields, but you don't need to be an expert in all of them to get started. Below is an honest breakdown of what background helps, what's optional, and what you can pick up along the way.

Enough to Get Started

The Minimum Viable Background

If you have these three things, you can run your first evolution today:

  • Basic programming (Python) — The Bitstream Evolution toolkit is Python-based. If you can write a loop, call a function, and read a traceback, you're ready.
  • Comfort with the command line — You'll need to navigate directories, run scripts, and occasionally install packages. Linux/macOS terminal or WSL on Windows.
  • Curiosity about hardware — You don't need prior FPGA experience, but you should be willing to plug things in, read a wiring diagram, and troubleshoot connections.

Helpful but Not Required

These topics will deepen your understanding but aren't blockers for getting started:

Topic Why It Helps Where to Learn
Digital logic basics Understand what FPGAs are doing at the gate level Any intro digital design course or textbook
Evolutionary algorithms Understand how the optimization works Evolutionary Computation concept page
FPGA architecture Understand LUTs, routing, and bitstreams Reconfigurable Hardware concept page
Signal processing fundamentals Interpret oscilloscope traces and frequency content Helpful for experiments beyond variance maximization
Basic electronics Voltage, current, ADC readings, breadboard wiring Needed for hardware setup

For Deeper Research

If you're pursuing evolvable hardware as a research topic (thesis, independent study, publication), these areas become more relevant depending on your focus:

  • Dynamical systems & control theory — For understanding evolved circuit behavior as continuous dynamical processes. See Dynamical Systems.
  • Neuroscience-inspired models — CTRNNs, LTCs, and other models that connect to how evolved circuits can implement neural-like computation. See CTRNNs and LTC Networks.
  • Statistics & experimental design — For designing rigorous experiments, analyzing fitness curves, and drawing valid conclusions across stochastic runs.
  • Verilog/VHDL — For understanding or modifying the hardware description layer beneath the bitstream.

Don't Worry About

  • You don't need an EE degree. Many contributors come from CS, math, or biology backgrounds.
  • You don't need to understand every concept page. The advanced topics are there for researchers going deep — they're not prerequisites for running experiments.
  • You don't need expensive equipment. A $50 pico2-ice setup is enough to start.

You already have the programming skills. Focus on:

  1. Concepts for Makers — Quick conceptual grounding
  2. Hardware Setup — The unfamiliar part for most CS students
  3. Variance Maximization — Your first experiment

You already understand the hardware. Focus on:

  1. Evolutionary Computation — How the optimization works
  2. Software Setup — Python environment and toolchain
  3. Pulse Oscillation — Connects to familiar signal concepts

The biological metaphors in evolvable hardware are real, not just marketing. Focus on:

  1. Biologically Inspired Computing — See the connections to your field
  2. Concepts for Makers — Practical grounding without assuming hardware background
  3. Variance Maximization — See evolution happen in real time