docs: add architecture diagram
This commit is contained in:
parent
de4ca8fdb6
commit
9a2ec11a4c
2 changed files with 36 additions and 2 deletions
30
README.md
30
README.md
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue