Tafel I
LIBELLULA
Oliver Hockenhull  ·  OhMedia / Moksha  ·  Sooke, BC, Canada
Synthesizable Verilog-2001  ·  Bio-inspired neuromorphic RTL  ·  2026
7 modules  ·  26 testbenches  ·  FPGA-implemented at 200 MHz
§0
Work Statement

The subject

is the dragonfly’s visual interception reflex — a neural circuit that has computed predictive motion since the Carboniferous period. Its medium is synthesizable Verilog RTL. Its output, produced in 25 nanoseconds, is a coordinate: where a moving object will be.

The architecture does not interpret. It does not learn. It measures, delays, correlates, and predicts through a fixed seven-stage pipeline. This determinism is the work’s central property.

The biological model — the Hassenstein-Reichardt correlator, the T4/T5 dendritic mechanism, the confidence-gated burst encoding — is not metaphor. It is the specification. The distance between the dragonfly’s optic lobe and this RTL is a translation, not an interpretation.

The work exists in three simultaneous registers. As engineering: a functional, FPGA-implemented hardware core.

§1
Source Material

The biological model

The dragonfly

The dragonfly’s aerial hunting strategy is predictive. It computes an intercept. Flight paths recorded in laboratory conditions are consistent with a constant-bearing, decreasing-range pursuit geometry — the geometry of prediction rather than reaction. The neural substrate responsible, target-selective descending neurons (TSDNs), projects from the optic lobe directly to flight motor circuits. Observation, computation, and action are one continuous process.

The Hassenstein-Reichardt detector, 1956

Hassenstein and Reichardt derived a model of directional motion detection from purely behavioural experiments on walking beetles. No electrophysiology. A logical argument from stimulus to response. The model specifies: delay the signal from one photoreceptor, multiply it with the instantaneous output of an adjacent one, subtract the mirror-symmetric subunit. The result is direction-selective. Confirmed without modification in electrophysiology decades later. It remains the governing framework.

T4 and T5 neurons

T4 neurons (ON edges) and T5 neurons (OFF edges) in the Drosophila optic lobe each come in four subtypes tuned to one of four cardinal directions. Directional sharpness arises from a dual mechanism on the same dendritic tree: preferred-direction enhancement via GluCl-α receptors at the dendritic tips, null-direction suppression via GABA-A receptors at the base. Mi9, Mi1, and Mi4 provide excitatory and inhibitory inputs at precisely mapped spatial locations. The geometry of the dendrite performs the computation. No learning. No weights. Fixed physics.

Architecture as translation

RPhotoreceptors R1–R6 — polarity-coded luminance changeaer_rx
LLamina monopolar cells — contrast encoding, bufferingaer_rx (REQ/ACK)
MiMedulla intrinsic neurons (Mi1, Mi4, Mi9) — temporal filtering, ON/OFF separationlif_tile_tmux
DLSpatial offset & temporal delay — inter-column delay latticedelay_lattice_rb
T4T4/T5 direction-selective multiplication — preferred-direction enhancement + null-direction suppressionreichardt_ds
LPLobula plate interneurons — opponent subtraction, noise gatingburst_gate + conf_gate
HSTangential cells / TSDN — wide-field integration, predictive pursuit vectorab_predictor
Hassenstein B. & Reichardt W. — Zeitschrift für Naturforschung, 1956
Borst A. — T4/T5 circuit characterisation, Max Planck Institute of Neurobiology, 2009–2022
Wiederman S.D. et al. — Predictive gain modulation in dragonfly target-tracking neurons, eNeuro, 2024
Fabian J.M. et al. — Spike bursting in a dragonfly target-detecting neuron, Sci. Rep., 2021
Mauss A.S. et al. — Neural circuit to integrate opposing motions in the visual field, Cell, 2015
§2
Verification

Validation & implementation

FPGA implementation — out-of-context results

Out-of-context implementation was completed on Xilinx UltraScale+ VU9P at 200 MHz for both the bare core and an AXI-integrated evaluation shell. Both builds achieved positive setup and hold slack with zero routing errors. These are out-of-context results: materially stronger than simulation-only evidence, but not equivalent to full board-level timing closure. That distinction is stated explicitly here and in the package documentation.

Build A — Bare Core
libellula_top
LUTs1,008
Registers403
BRAM0
DSPs2
WNS+0.383 ns
Route errors0
Timing met · Fully routed
Build B — AXI Evaluation Shell
libellula_axi_eval_top
LUTs995
Registers445
BRAM0
DSPs2
WNS+0.338 ns
WHS+0.042 ns
Route errors0
Timing met · Fully routed
Target
Xilinx UltraScale+ VU9P  ·  xcvu9p-flgb2104-2L-e
Toolchain
Vivado 2025.2
Clock target
200 MHz (5.000 ns)

Simulation validation — 26 testbenches

ClaimSpecificationResultTestbench
Latency≤ 6 cycles @ 200 MHz5 cycles · 25 nstb_latency
Accuracy±2 px @ 300 Hz0 violationstb_px_bound_300hz
Throughput1 Meps, zero drops2000 / 2000 ACKtb_aer_throughput_1meps
Power scalingActivity-proportionalLow/high confirmedtb_power_lo · tb_power_hi
8-direction motionCardinal + diagonalAll 8 axes exercisedtb_reichardt_ds
Outlier rejectionCoast on bad measurementConfirmedtb_ab_predictor
Hysteresis gatingStable gate behaviourConfirmedtb_burst_gate
Full suite26 testbenches26 / 26make run-once

Status

Validated
✓ Functionally validated in simulation
✓ Synthesized in Vivado 2025.2
✓ Out-of-context implementation on UltraScale+ VU9P at 200 MHz
✓ Positive setup and hold slack, zero routing errors
Not yet claimed
○ Full board-level validation
○ Full system-level timing closure in integrated fabric
○ Production ASIC signoff
○ Application-specific deployment benchmarks
§3
Structure

Processing pipeline

AER → LIF tile → 8-direction delay lattice → Reichardt direction selector → burst gate → α–β predictor → confidence gate. Fixed feed-forward architecture. Click any stage to expand.

01aer_rx
02lif_tile_tmux
03delay_lattice_rb
04reichardt_ds
05burst_gate
06ab_predictor
07conf_gate

aer_rx — Address-Event Receiver

4-phase handshake receiver (REQ↑, ACK↑, REQ↓, ACK↓). Interoperates with Prophesee EVK4/IMX636, iniVation DAVIS346, Samsung DVS. No events dropped under sustained load.

Validated: REQ=2000, ACK=2000 at 1 Meps, zero drops

lif_tile_tmux — Leaky Integrate-and-Fire Array

Time-multiplexed, 14-bit. Filters incoherent events. Analogue to temporal filtering in medulla intrinsic neurons Mi1, Mi4, Mi9.

14-bit accumulator · time-multiplexed · ON/OFF polarity preserved · leak rate configurable

delay_lattice_rb — 8-Direction Retinotopic Delay Lattice

Ring-buffer delay lattice across cardinal (E, W, N, S) and diagonal (NE, NW, SE, SW) axes. Diagonal contributions scaled for geometric equivalence approximation.

8-direction retinotopic · ring buffer · diagonal scaling applied

reichardt_ds — Reichardt Elementary Motion Detector

Implements both preferred-direction enhancement and null-direction suppression — direct analogue of T4/T5 dendritic computation. All eight axes exercised in tb_reichardt_ds.

Dual mechanism · leaky integration of temporal gradients into directional motion vectors

burst_gate — Event Density Filter

Hysteretic density thresholding. TH_OPEN=3, TH_CLOSE=1. Only sustained coherent activity propagates to the predictor.

WINDOW=16 · TH_OPEN=3 · TH_CLOSE=1

ab_predictor — α–β Continuous-Time Predictor

Q8.8 fixed-point. Forward extrapolation: p̂ = p + v·Δt. Outlier rejection above OUTLIER_TH=128; predictor coasts on current velocity estimate.

Q8.8 fixed-point · ≤ ±2 px @ 300 Hz · Δt selectable · outlier rejection

conf_gate — Confidence Scoring

Reliability score from event rate and direction magnitude across all eight axes. Gates output with pred_valid strobe. Downstream: (x̂, ŷ, conf).

confidence = f(event rate × direction magnitude) · pred_valid strobe

RTL modules

aer_rx4-phase AER handshake receiver+

Standard 4-phase AER handshake. Validated at ≥106 events/s with zero drops. Behavioural shell for FPGA bring-up; ASIC integration follows same semantics.

lif_tile_tmuxTime-multiplexed LIF array, 14-bit+

Single accumulator shared across spatial array via time-multiplexing. 14-bit precision. Configurable leak rate. Filters sparse or incoherent events.

delay_lattice_rb8-direction retinotopic delay lattice+

Ring-buffer delay lattice, cardinal and diagonal axes. Diagonal contributions scaled for geometric equivalence. Provides temporal gradient structure for reichardt_ds.

reichardt_dsReichardt elementary motion detector+

Preferred-direction enhancement and null-direction suppression. Direct computational analogue of T4/T5 dendritic physics. All eight axes in tb_reichardt_ds.

burst_gateEvent density filter with hysteresis+

TH_OPEN=3, TH_CLOSE=1. Reduces chatter at threshold boundary. Only sustained activity propagates to the predictor.

ab_predictorα–β predictor, Q8.8 fixed-point+

Trajectory extrapolation in continuous time. Outlier rejection: residuals above OUTLIER_TH=128 cause the predictor to coast on current velocity. ≤ ±2 px @ 300 Hz verified.

conf_gateConfidence scoring, rate × direction magnitude+

Reliability score across all eight axes. Downstream receives (x̂, ŷ, conf) only on pred_valid strobe.

Key parameters

ParameterDefaultDescription
XW / YW10Coordinate width, bits
AW8LIF address width
DW6Delay lattice depth, bits
PW16Predictor output width, bits
WINDOW16Burst gate counting window
TH_OPEN3Events to open burst gate
TH_CLOSE1Events to hold gate open
OUTLIER_TH128Residual threshold; predictor coasts above this

Build & reproducibility

# Full validation sweep
make clean && make run-once

# Individual benches
make latency # spec ≤6 cycles — result: 5 cycles / 25 ns
make px300 # ±2 px @ 300 Hz
make meps # 1 Meps, zero drops
make power # toggle count → power_activity.csv
§4
Context

Relation to adjacent systems

Event-based sensors

LIBELLULA requires DVS cameras. It operates on asynchronous spike events — one per pixel per polarity change, timestamped to the microsecond. Frame-based cameras cannot provide the temporal precision required by the delay lattice and Reichardt correlator. This is a property of the architecture, not a limitation of the implementation.

Relation to AI-based vision

Neural networks operating on event-camera streams batch or accumulate events before inference. Even purpose-built SNN inference takes on the order of 100 µs to several milliseconds to produce a position estimate. LIBELLULA produces a forward-extrapolated coordinate in 25 ns. These are complementary operations. LIBELLULA can supply a stable, direction-confirmed signal to an AI layer rather than raw accumulated events.

LIBELLULA
Event-driven
motion prediction
(x̂, ŷ, conf)
25 ns
AI / Neural Network
Classification
context assessment
decision logic
1–50 ms
Actuator / Control
Motion control
gimbal slew
downstream logic
hardware latency

Comparative context

System-level latency figures used for comparison rows. LIBELLULA figures from simulation and out-of-context implementation. The forward prediction horizon is selectable via Δt and remains a roadmap item beyond the current validated core.

SystemCore latencyForward forecastPower
DJI / Skydio commercialFrame CNN on ARM + GPU20–40 msReactive only3–8 W
ETH-UZH event-camera avoidanceScience Robotics, 20203.5 msNone~10 W
FPGA event-vision acceleratorBonazzi et al., arXiv 2024~2 msNone3–5 W
LIBELLULA — core logicSynthesizable RTL · 200 MHz · UltraScale+ VU9P (OOC)25 ns (5 cycles)2–30 ms (Δt selectable)45–60 mW
§5
Distribution

Evaluator package

A self-contained engineering bundle. Addresses whether the RTL simulates coherently, synthesizes in a mainstream FPGA flow, places and routes cleanly, and provides an evaluator-friendly interface.

RTL source manifest & full synthesizable Verilog-2001 source
Testbench manifest & simulation infrastructure (26 benches: core, power, AXI, hostile conditions)
Verification log
Synthesis reports — bare core and AXI shell
Implementation reports & route status reports — both builds
Hierarchical utilization reports
Vivado Tcl flows for synthesis and OOC implementation
Post-synthesis and post-route design checkpoints (DCPs)
SHA-256 hashes and packaging manifest

Repository & contact

RTL source, testbenches, simulation Makefile, and implementation reports are available on GitHub. Technical engagement and access to the full evaluator package can be arranged directly.

Oliver Hockenhull  ·  East Sooke, BC, Canada
oliver.hockenhull@gmail.com

github.com/vertov/LIBELLULA