You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Closes#1395
- Add live XADC operating point theorems in TernaryFPGABoot.lean
- Add Rust regression test for live XADC → PVT context rounding
- Extend fpga/HARDWARE_SSOT.md with live XADC validation recipe
- Refresh competitor and gen-verilog defect baselines for W434
- Add W434 report, evidence note, and W435 cooperation variants
- Update .trinity/experience.md, NOW.md, current-issue.md
- Create GitHub issue #1398 and branch wave-loop-435 for next wave
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
-**P12 is still unwired** (no logic-analyzer channel on the CCLK pin), so **Variant A** (real cold-POR CCLK capture) remains infeasible.
14
+
-**No relay / remote-power gate** exists, so automated cold-POR sweeps are still manual.
15
+
-**No DLC10 cable** (VID=0x03FD), so in-repo `dlc10` driver cannot be used; the reachable cable is the Digilent FTDI (`0x0403:0x6014`), which works with `openFPGALoader`.
16
+
- The FPGA **is reachable** over JTAG and live XADC readout succeeds (`tri fpga read-xadc` returns temp≈41 °C, VCCINT≈1.00 V, VCCAUX≈1.81 V).
17
+
18
+
### Tooling gaps discovered this wave
19
+
-`tri fpga read-xadc` emits `temp_c` / `vccint_v` / `vccaux_v` as `f64`, but `tri fpga pvt-envelope --pvt-context` expects integer `temp_c` (`i64`) and `vccint_mv` / `vccaux_mv` (`u64`). The conversion (`to_pvt_context`) is implemented internally but not exposed as a standalone `--to-pvt-context <file>` export, so the user must round the values by hand.
20
+
-`tri fpga measured-to-lean --pvt-context` generates a `decide` theorem for the exact rounded point, but it does **not** automatically reference the W433 quantified theorem `xadc_envelope_justifies_cclk_variant_raw_ns_pvt`. The formal bridge exists in the library but is not wired into the generator.
21
+
22
+
### Strategic / competitive
23
+
- The 7 residual `gen-verilog` yosys smoke failures (#1245) are unchanged. A master-merge of the full fix set is still too risky for a wave whose primary goal is FPGA boot-evidence formalization.
24
+
- Competitor `Sparkle / Verilean` remains the closest Lean-native threat; its PR #66 is still open, PR #65 (RV32 divider proof) demonstrates IP-level depth, and the July 2026 Functional Matsuri talk positions Lean 4 as an RTL core. Other signals: `firtool-1.152.0` published; `Clash 1.11.0` still a Hackage candidate; `Aria-HDL` retiming/PCIe BAR updates; `CktFormalizer` and ternary-compute projects (`TernaryCore`, `BitNet-RISCV-Multicore`) validate the ternary direction.
25
+
26
+
---
27
+
28
+
## 2. Competitor scan summary
29
+
30
+
| Competitor | Update for W434 | Implication for t27 |
31
+
|---|---|---|
32
+
|**Sparkle / Verilean**| PR #66 open, last public push 2026-07-03; PR #65 divider proof is a concrete IP-level correctness milestone; public talk July 11 2026. | Closest structural competitor; t27's differentiation is the sealed spec→bitstream loop + physical boot evidence. |
33
+
|**Clash**| 1.11.0 still a Hackage candidate (no final release); 1.10 remains latest official. | Functional-HDL maturity but external proof; no physical evidence loop. |
34
+
|**Chisel / FIRRTL / CIRCT**|`firtool-1.152.0` published July 2026; LTL/Verif dialects and ChiselTest formal compatibility layer advancing. | Industry adoption; formal reasoning still RTL/SVA/external, not source-level dependent types. |
35
+
|**Aria-HDL**| Rust meta-compiler with `--emit-lean4` and `--emit-sby`; retiming + PCIe BAR test added. | Validates spec→proof→bitstream pipelines but no ternary focus or sealed hashes. |
36
+
|**CktFormalizer**| arXiv 2605.07782; LLM-to-circuit autoformalization in Lean 4 with Yosys/OpenROAD flow. | Another signal that Lean 4 as HDL proof backend is crowded. |
37
+
|**TernaryCore / BitNet-RISCV-Multicore**| Ternary inference and multicore RISC-V ternary PEs simulating; no formal proofs yet. | Confirms ternary compute hardware is visible; t27 must keep formal ternary IP ahead. |
38
+
39
+
---
40
+
41
+
## 3. Variant selection
42
+
43
+
**Selected: Variant B** — board is reachable over JTAG, live XADC readout works, but P12 / relay are still blocked, so real CCLK capture is not possible. Use the live XADC operating point as the PVT context and a synthetic CCLK fixture for proof-of-pipeline.
44
+
45
+
---
46
+
47
+
## 4. Decomposed tasks
48
+
49
+
### Task 1 — Live XADC operating point → PVT context (tooling)
-[ ] Add a hand-written theorem in `proofs/lean4/Trinity/TernaryFPGABoot.lean` that applies the W433 quantified theorem `xadc_envelope_justifies_cclk_variant_raw_ns_pvt` to the live XADC point and OSCFSEL=6, closing the formal loop.
60
+
61
+
### Task 3 — Rust test coverage for live XADC → PVT conversion
62
+
-[ ] Add a unit test in `cli/tri/src/fpga.rs` asserting `XadcContext::to_pvt_context` rounds the captured live values (41.4422 °C → 41, 1.00049 V → 1000 mV, 1.80688 V → 1807 mV) correctly.
63
+
64
+
### Task 4 — Competitor and defect refresh
65
+
-[ ] Refresh `docs/reports/T27_VS_FORMAL_HDL_2026.md` date/header and W434 note.
66
+
-[ ] Update `docs/reports/GEN_VERILOG_DEFECTS_REPRO.md` with W434 triage entry: 7 residual failures remain; master-merge deferred; no new narrow defect.
67
+
68
+
### Task 5 — Documentation
69
+
-[ ] Update `fpga/HARDWARE_SSOT.md` §3.6 with the W434 live XADC validation recipe and the synthetic-CCLK proof-of-pipeline note.
-[ ] Write `docs/reports/FPGA_LOOP_COOPERATION_W435_2026-07-01.md` with three variants for W435.
75
+
-[ ] Update `docs/NOW.md` and `.trinity/current-issue.md` for W435.
76
+
-[ ] Create GitHub issue #1397 and branch `wave-loop-435`.
77
+
78
+
### Task 7 — Verification
79
+
-[ ]`lake build Trinity.TernaryFPGABoot` passes.
80
+
-[ ]`cargo test -p tri --bin tri fpga::` passes.
81
+
-[ ]`./scripts/tri test` passes with the documented 7 pre-existing gen-verilog yosys smoke failures.
82
+
83
+
---
84
+
85
+
## 5. Definition of done
86
+
87
+
-[ ] Variant B acceptance criteria met: live XADC validated in PVT envelope; at least one `measured-to-lean` theorem generated from the live XADC context; W433 quantified theorem referenced in the formal library for the live point.
88
+
-[ ] New unit test for live XADC → PVT context rounding passes.
89
+
-[ ] Competitor snapshot and gen-verilog baseline updated.
90
+
-[ ]`lake build Trinity.TernaryFPGABoot` passes.
91
+
-[ ]`cargo test -p tri --bin tri fpga::` passes.
92
+
-[ ]`./scripts/tri test` passes with documented 7 residual failures.
93
+
-[ ] Close-out report and W435 cooperation variants written.
Copy file name to clipboardExpand all lines: .trinity/current_task/session_log.jsonl
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -291,3 +291,7 @@
291
291
{"ts":"2026-07-05T06:47:22Z","branch":"wave-loop-423","msg":"docs(issue): set current issue to Wave Loop 423","files":".trinity/current-issue.md,.trinity/experience.md,cli/tri/src/fpga.rs,docs/NOW.md,docs/reports/FPGA_LOOP_COOPERATION_W424_2026-07-05.md,docs/reports/FPGA_LOOP_EVIDENCE_W423_2026-07-05.md,docs/reports/T27_VS_FORMAL_HDL_2026.md,docs/reports/WAVE_LOOP_423_REPORT.md,fpga/HARDWARE_SSOT.md","notebook":"b83263109fb055dc"}
0 commit comments