Skip to content

🔨 hw: synthesis + flashing + hardware benchmarks (v0.2-igla-fpga Release) #14

Description

@gHashTag

Goal

Запустить полный pipeline на реальном железе и получить измеренные tokens/sec из UART. Всё ПО готово в main (PR #9, #12, #13).

Anchor: φ² + φ⁻² = 3 · TRINITY · REAL HARDWARE


Что готово (в main)

Артефакт Файл Статус
GF16 веса bitstream/igla_champion_gf16.bin BPB=0.1427, SHA de2719b5
VSA matmul fpga/vsa/vsa_matmul.v 64×64, 0 DSP48
Synthesis top fpga/vsa/vsa_matmul_top.v XDC готов
CLI trios-fpga synth-vsa/flash/bench/status Rust, в main
Ring FP-01 OpenXc7Runner Docker regymm/openxc7:latest
Ring FP-02 XvcFlasher TCP/XVC, порт 2542

Hardware setup

XC7A100T (QMTECH board)
  └── JTAG ←── ESP32 XVC bridge (WiFi, порт 2542)
  └── UART TX ──→ хост 115200 baud

Steps

Step 1 — Синтез битстрима

cargo build --release -p trios-fpga
trios-fpga synth-vsa --rtl fpga/vsa/ --constraints fpga/vsa/vsa_matmul_top.xdc

Ожидаемый результат:

  • bitstream/design_v02.bit создан
  • LUT utilization ≤ 80%
  • 0 timing violations
  • SHA-256 записан в bitstream/design_v02.bit.sha256

Step 2 — Прошивка через XVC

trios-fpga flash --xvc <ESP32_IP> --bitstream bitstream/design_v02.bit
trios-fpga verify --xvc <ESP32_IP>   # IDCODE == 0x03631093

Ожидаемый результат:

  • Flash успешен (no errors)
  • IDCODE верифицирован: 0x03631093 (XC7A100T)
  • STATUS=0x401079FC (DONE=1)

Step 3 — Benchmark tokens/sec

trios-fpga bench --xvc <ESP32_IP> --uart /dev/ttyUSB0 --baud 115200

Ожидаемый результат:

Step 4 — Release v0.2-igla-fpga

gh release create v0.2-igla-fpga \
  bitstream/design_v02.bit \
  bitstream/igla_champion_gf16.bin \
  bench/results_v02.json \
  --title "v0.2-igla-fpga: IGLA Champion on XC7A100T" \
  --notes-file release/RELEASE-v0.2.md
  • GitHub Release создан с артефактами
  • design_v02.bit + SHA-256 в релизе
  • Реальные tokens/sec в release notes

Step 5 — arXiv submit

  • Заполнить реальные цифры в docs/arxiv-trinity-stack-draft.md
  • tokens/sec, watts/token, LUT%, timing
  • Отправить на arXiv cs.AR + cs.LG

Acceptance Criteria

- [ ] bitstream/design_v02.bit синтезирован (LUT ≤ 80%)
- [ ] IDCODE = 0x03631093 верифицирован на железе
- [ ] STATUS = 0x401079FC (DONE=1, no errors)
- [ ] tokens/sec ≥ 100 из UART
- [ ] watts/token задокументирован
- [ ] Release v0.2-igla-fpga опубликован
- [ ] arXiv draft отправлен

Debug hints (если упадёт)

Синтез падает

# Проверить Docker
docker pull regymm/openxc7:latest
docker run --rm regymm/openxc7:latest yosys --version

# Проверить RTL
iverilog -o /dev/null fpga/vsa/vsa_matmul_top.v fpga/vsa/vsa_matmul.v

XVC не отвечает

# Проверить ESP32
nc -zv <ESP32_IP> 2542
trios-fpga status --xvc <ESP32_IP>   # IDCODE ping

UART нет токенов

# Проверить baud
stty -F /dev/ttyUSB0 115200
cat /dev/ttyUSB0 | hexdump -C | head
# STATUS регистр
trios-fpga status --xvc <ESP32_IP>

LUT > 80%

  • Уменьшить VECTOR_DIM с 64 до 32 в vsa_matmul_top.v
  • Пересинтезировать

References

Priority: P0 · железо доступно · запускать немедленно

φ² + φ⁻² = 3 · TRINITY · NEVER STOP

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions