docs: add architecture diagram

This commit is contained in:
randogoth 2026-10-26 16:06:05 +02:00
parent de4ca8fdb6
commit 9a2ec11a4c
2 changed files with 36 additions and 2 deletions

View file

@ -21,6 +21,36 @@ Entropy comes from FPGA ring oscillators whose sampled timing jitter is XOR-comb
- Per-second trials in Global Consciousness Project format (200-bit XOR-masked sums per generator, plus full-rate sums), with Stouffer Z and network variance
- Raw ring captures and frequency measurement for characterization
```mermaid
flowchart LR
subgraph FPGA["FPGA: Cyclone 10 LP, 120 MHz from a PLL on the SAMD21's 48 MHz clock"]
direction LR
subgraph GEN["4 generators"]
direction TB
RO["90 ring oscillators<br/>3 taps XORed per ring"] --> SMP["2-flip-flop sampling"]
SMP --> SX["spatial XOR<br/>of all rings"]
SX --> TX["temporal XOR<br/>of 1-8 bits"]
end
SMP --> HM["health monitors<br/>repetition count, adaptive<br/>proportion, dead rings"]
SX --> HM
TX --> SEL["healthy generators<br/>g0-g3 and combined XOR"]
HM -->|healthy| SEL
SEL --> ST["entropy stream<br/>4 KB FIFO"]
SEL --> STATS["statistics<br/>per-trial counts"]
SEL --> AMP["bias amplifier<br/>2 paths, 3 stages"]
SEL --> GCP["GCP trials<br/>per second"]
GEN -.-> CAP["raw capture,<br/>frequency counter"]
ST & STATS & AMP & GCP & CAP & HM --> REG["SPI registers"]
PT["WiFi module<br/>pin pass-through"]
end
REG <-->|SPI 8 MHz| MCU["SAMD21 firmware"]
MCU <--> PT
PT <--> NINA["NINA-W102<br/>WiFi and BLE"]
MCU --> USB["USB serial"]
NINA --> HTTP["HTTP on its own<br/>access point"]
NINA --> BLE["BLE GATT service"]
```
The USB, HTTP and BLE API is documented in [arduino/strix/API.md](arduino/strix/API.md).
## Command-line client