Research-Stack/6-Documentation/docs/specs/CBF_Hardware_Spec.md

261 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Chromatic Braid Field (CBF) Hardware Specification
**Version:** 1.0-CBF
**Status:** Design phase — FPGA Warden Node rewrite
**Date:** 2026-04-17
---
## 1. Overview
The Chromatic Braid Field (CBF) core unifies:
- DIAT local tuple encoding
- Corrected AMMR vector accumulation
- Bracket-based admissibility calculus
- AVMR hierarchical strand aggregation
- CMYK channel decomposition
**Formal identity:**
```
CBF = DIAT ∘ AMMR ∘ Bracket ∘ AVMR ∘ CMYK ∘ Rope/MIMO
```
---
## 2. Processing Pipeline
```
Input bytes / local samples
[Segmenter / Leaf Builder]
build DIATLeaf(a, b, ab, a-b, residue, slot, parity, jitter)
[DIAT Lift]
Φ(DIATLeaf) → PhaseVec(x, y)
[φ-Accumulator + Prime Counter + Void Mask LUT]
deterministic address / resonance basis
proximity / modulation contribution
carrier-local weighting
[AMMR Vector Accumulator]
Σ PhaseVec over active leaves / modes / strands
[Bracket Step]
κ = ||z_φ||
φ = atan2(z_y, z_x)
lower / upper / gap
admissible?
[CMYK Colorizer]
C = coherence
M = modulation
Y = yield
K = constraint
[Braid Cross / AVMR Merge]
merge phaseAcc linearly
merge metadata
recompute bracket
recompute color
[Colored Rope Binder]
bundle all strands for this cycle
[Carrier Encoder / MIMO Projection]
audio projection
video projection
caption projection
timing projection
[Processor / Channel / Detangler]
recover strands for next cycle
```
---
## 3. Core Principles
### 3.1 Linear Accumulation Discipline
All strand and carrier composition occurs by **linear accumulation in vector space**. Only after accumulation is complete does the core perform:
1. Single nonlinear projection to derive magnitude and phase
2. Bracket-shell construction
3. Chromatic channel assignment
**Result:** Nonlinear work moved out of the inner loop; associativity, commutativity, and parallel recombination preserved.
### 3.2 Q16.16 Fixed-Point Arithmetic
All arithmetic uses Q16.16 fixed-point:
- `κ` approximation: octagonal norm
- `atan2`: quadrant-aware polynomial approximation
- Zero-vector handling: `ϕ = 0` when `(x, y) = (0, 0)`
---
## 4. Module Specifications
### 4.1 DIAT Leaf Builder
**Input:** Raw bytes / samples
**Output:** `DIATLeaf` structure
| Field | Type | Description |
|-------|------|-------------|
| `a` | Q16.16 | Primary value |
| `b` | Q16.16 | Secondary value |
| `ab` | Q16.16 | Product a·b |
| `diff` | Q16.16 | Difference a-b |
| `residue` | Q16.16 | Local residue |
| `slot` | UInt32 | Timing slot |
| `parity` | Bool | Strand parity |
| `jitterTolerance` | Q16.16 | Jitter bound |
**Lift function:**
```
Φ(DIATLeaf) → PhaseVec:
x = a - b
y = ab + residue
```
### 4.2 AMMR Vector Accumulator
**Input:** `PhaseVec` contributions
**Output:** Accumulated `PhaseVec`
```
z_φ = Σ Φᵢ
```
**Properties:**
- Associative
- Commutative
- Parallelizable
- No nonlinear operations in-loop
### 4.3 Bracket Step
**Input:** Accumulated `PhaseVec`
**Output:** `BraidBracket`
```
κ = ||z_φ|| (octagonal approximation)
ϕ = atan2(z_y, z_x) (safe, total function)
lower = -κ
upper = κ
gap = upper - lower
admissible = gap ≤ threshold
```
### 4.4 CMYK Colorizer
**Input:** `BraidBracket` + `AVMRMeta`
**Output:** `CMYKWeights`
| Channel | Mapping | Semantics |
|---------|---------|-----------|
| C | `bracket.kappa` | Coherence |
| M | `meta.totalInteraction` | Modulation |
| Y | `half if admissible else quarter` | Yield |
| K | `quarter if admissible else one` | Constraint |
### 4.5 Braid Cross / AVMR Merge
**Input:** Two `BraidStrand` objects
**Output:** Merged `BraidStrand`
**Merge rules:**
```
phaseAcc = l.phaseAcc + r.phaseAcc (linear)
meta = metaMerge(l.meta, r.meta) (hierarchical)
bracket = bracketStep(phaseAcc) (recomputed)
color = colorize(bracket, meta) (recomputed)
```
**Crossing residual:**
```
Rᵢⱼ = Bᵢⱼ - (Bᵢ + Bⱼ)
```
### 4.6 Colored Rope Binder
**Input:** Array of `BraidStrand`
**Output:** `ColoredRope`
Bundles all strands for the current cycle into a multiplexed rope object.
### 4.7 MIMO Carrier Encoder
**Input:** `ColoredRope`
**Output:** Carrier projections
| Carrier | Projection | Channel |
|---------|------------|---------|
| Audio | `rope.audio()` | Φ⁽ᵃ⁾ |
| Video | `rope.video()` | Φ⁽ᵛ⁾ |
| Caption | `rope.caption()` | Φ⁽ᶜ⁾ |
| Timing | `rope.timing()` | Φ⁽ᵗ⁾ |
---
## 5. Target Hardware
### 5.1 Primary Target: Lattice iCE40 HX8K
| Resource | Required | Budget | Utilisation |
|----------|----------|--------|-------------|
| LUT cells (logic) | ~300 | 7,680 | 3.9% |
| LUTRAM (void mask) | 512 bits | 8KB | 6.3% |
| Flip-flops | ~150 | 7,680 | 2.0% |
| Block RAM | 0 | 128KB | 0% |
| DSP slices | 0 | 8 | 0% |
### 5.2 Performance
- **Clock:** 50 MHz (20ns/cycle)
- **Accumulation latency:** N_MODES × 1 cycle
- **Final projection:** 4 cycles (pipelined)
- **Total per attestation:** ~20 cycles = **400ns**
- **Throughput:** **2.5M attestations/second**
---
## 6. Files
| File | Role |
|------|------|
| `Semantics/CBFCore.lean` | Formal core (DIAT, AMMR, Bracket, AVMR, CMYK) |
| `hardware/cbf_warden.v` | Verilog: CBF Warden implementation |
| `hardware/diat_builder.v` | DIAT leaf construction |
| `hardware/ammr_accum.v` | PhaseVec accumulator |
| `hardware/bracket_step.v` | Bracket calculus unit |
| `hardware/cmyk_colorizer.v` | CMYK channel assignment |
| `hardware/braid_cross.v` | Strand merge / crossing |
| `hardware/rope_binder.v` | Colored rope assembly |
| `hardware/mimo_encoder.v` | Carrier projection |
| `hardware/q16_norm.v` | Octagonal norm approximation |
| `hardware/q16_atan2.v` | Safe atan2 implementation |
---
## 7. One-Line Summary
> CBF reduces processing by moving nonlinear work out of the inner loop, preserving associativity through linear AMMR accumulation, and applying bracket calculus only after complete strand state is known.
---
**Attestation Hash:** SHA256(CBF ∘ AMMR ∘ Bracket ∘ CMYK)
**Registry Entry:** `pkg/cbf-hardware/v1.0`
**Tier:** CRYSTALLINE