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.
Recommended Path by Background¶
You already have the programming skills. Focus on:
- Concepts for Makers — Quick conceptual grounding
- Hardware Setup — The unfamiliar part for most CS students
- Variance Maximization — Your first experiment
You already understand the hardware. Focus on:
- Evolutionary Computation — How the optimization works
- Software Setup — Python environment and toolchain
- Pulse Oscillation — Connects to familiar signal concepts
The biological metaphors in evolvable hardware are real, not just marketing. Focus on:
- Biologically Inspired Computing — See the connections to your field
- Concepts for Makers — Practical grounding without assuming hardware background
- Variance Maximization — See evolution happen in real time