Glossary¶
Key terms used throughout this site. Terms are grouped by topic for easier navigation.
Hardware & FPGAs¶
- FPGA (Field Programmable Gate Array)
- A reconfigurable integrated circuit whose logic and routing can be reprogrammed after manufacturing. FPGAs are the primary substrate for intrinsic evolvable hardware experiments.
- Bitstream
- The binary configuration file (composed of 1s and 0s) that programs an FPGA's logic cells, routing interconnects, and I/O blocks. In evolvable hardware, the bitstream is the genotype — the thing that evolves.
- LUT (Look-Up Table)
- The basic programmable logic element inside an FPGA. A k-input LUT can implement any Boolean function of k variables by storing the truth table in SRAM.
- CLB (Configurable Logic Block)
- A higher-level FPGA building block containing one or more LUTs, flip-flops, and local routing. CLBs are the repeated tiles that make up the FPGA fabric.
- Reconfiguration
- The process of loading a new bitstream onto an FPGA to change its function. Full reconfiguration replaces the entire design; partial reconfiguration changes only a region.
- iCE40
- A family of low-power (hence 'ice' in the name) FPGAs by Lattice Semiconductor. The iCE40 HX1K (on the iCEstick) and iCE40 UP5K (on the pico2-ice) are the primary platforms used in this project.
- iCEstick
- The Lattice iCEstick Evaluation Kit — a USB-form-factor development board with an iCE40 HX1K FPGA. One of the two supported hardware platforms for Bitstream Evolution (~$190).
- pico2-ice
- A compact development board combining an RP2350 microcontroller with an iCE40 UP5K FPGA. The lower-cost hardware platform for Bitstream Evolution (~$50).
Evolution & Optimization¶
- Intrinsic Evolution
- Evolution performed directly on physical hardware, where each candidate circuit is configured on a real FPGA and its behavior is measured in the physical world. This exploits device-specific characteristics including analog effects, manufacturing variation, and parasitic properties.
- Extrinsic Evolution
- Evolution performed in simulation, where candidate circuits are evaluated in a software model. Results may optionally be transferred to physical hardware afterward.
- Fitness Function
- The objective function that evaluates how well a candidate circuit meets the design goal. In Bitstream Evolution, fitness is computed from real analog measurements (e.g., ADC samples) taken from the physical FPGA.
- Genetic Algorithm (GA)
- An optimization method inspired by natural selection that maintains a population of candidate solutions, selects the fittest, and produces new candidates through crossover and mutation.
- Genotype
- The encoded representation of a candidate solution. In evolvable hardware, the genotype is the bitstream — the binary configuration of the FPGA.
- Phenotype
- The expressed behavior of a candidate solution. In evolvable hardware, the phenotype is the resulting circuit's electrical behavior — the analog signals it produces.
- Mutation
- A genetic operator that introduces random changes to a candidate's genotype. In bitstream evolution, this means flipping bits in the FPGA configuration file.
- Crossover
- A genetic operator that combines portions of two parent genotypes to produce offspring. In bitstream evolution, this swaps segments of two bitstreams.
- Population
- The set of candidate solutions maintained during an evolutionary run. Typical population sizes in Bitstream Evolution experiments range from 10 to 50 individuals.
- Generation
- One cycle of the evolutionary loop: evaluate all candidates, select parents, produce offspring through crossover and mutation, and replace the population.
Experiments & Analysis¶
- Variance Maximization
- The simplest evolvable hardware experiment — evolving a circuit to maximize the variance (dynamic range) of its analog output signal. Serves as the "Hello World" for the field.
- Pulse Oscillation
- An experiment that evolves a circuit to produce a periodic output signal at a target frequency.
- Tone Discriminator
- An advanced experiment that evolves circuits to produce different outputs depending on the frequency of an input signal.
- Transferability
- The degree to which an evolved circuit maintains its functionality when moved to a different physical FPGA chip. A key open question in evolvable hardware.
- Robustness
- The ability of an evolved circuit to maintain its functionality under varying conditions (temperature, voltage, time, etc.).
Infrastructure¶
- Bitstream Evolution
- The open-source Python toolkit developed by this research group for conducting intrinsic evolvable hardware experiments on iCE40 FPGAs.
- iCEFARM
- iCE40 FPGA Array Resource Manager — infrastructure for providing remote access to physical FPGA hardware for evolution experiments.
- Project IceStorm
- The open-source reverse-engineered toolchain for Lattice iCE40 FPGAs, including
icepack/iceunpackfor bitstream manipulation. Essential for bitstream-level evolution since it provides access to the raw configuration format. - ADC (Analog-to-Digital Converter)
- A device that converts continuous analog voltage signals into discrete digital values. Used to measure the output behavior of evolved FPGA circuits for fitness evaluation.