Files
FPGA-Neural/hardware/v2/docs/OPEN_ITEMS.md
T
micheleandClaude Sonnet 5 8e014d8d49 V2.0.0 hardware freeze - single SDRAM
FASE #1 hardware freeze for FPGA-Neural V2, N4/P8, single external
SDRAM (Alliance Memory AS4C4M16SA-6TIN) serving weights, activations,
and results through one physical sdram_controller.v instance. Removes
the PSRAM dependency (hardware/v1/rtl/psram_controller.v +
memory_interface.v) from the V2 physical path entirely -- V1 itself
remains fully unmodified, the golden reference.

New RTL: sdram_unified_backend.v (2-way W/AR arbitration over one
SDRAM controller, real per-byte DQM write masking added to
sdram_controller.v for correct single-byte result writes with no
read-modify-write), nms_neural_multiprocessor_sdram_unified.v (the
frozen top-level). Two real bugs found and fixed via full-system
testing before being accepted (ERR-0023): a deadlock and an off-by-one
data-shift bug in the new arbitration logic.

Real results: N=4 and N=2 D-Stress bit-exact (256/256 neurons), 40
real AUTO REFRESH events interleaved with zero corruption, real
Yosys+nextpnr-ecp5 synthesis/P&R for LFE5U-45F-8CABGA381 (149/245
TRELLIS_IO, a real 45-pin reduction from the prior dual-memory
design). Timing is MARGINAL (1/8 P&R seeds >=80MHz), reported honestly
rather than masked by the best seed.

Real, sourced ball-level pinout for the SDRAM bus + clk/rst (39/149
signals, P&R-verified) using the official Lattice ECP5U-45 pinout CSV
found on disk during this step's own pre-commit review -- corrects an
earlier draft that wrongly assumed no real pinout data was available.

Chip readiness: NO. Real, disclosed blockers remain (no physical host
interface exists yet -- the RTL's own reg_* ports are a 110-pin raw
test-harness bus; clock source/PLL decision; power/configuration
component selection) -- see hardware/v2/docs/{HARDWARE_FREEZE,
CHIP_READINESS,OPEN_ITEMS}.md for the complete, itemized status.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
2026-09-06 13:39:55 +02:00

89 lines
4.5 KiB
Markdown
Raw 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.
# FPGA-Neural V2 — OPEN ITEMS
Consolidated from HARDWARE_FREEZE.md, PINOUT.md, CLOCK_ARCHITECTURE.md,
POWER_ARCHITECTURE.md, SCHEMATIC_READINESS.md. Classified per the
governing spec's own rule: BLOCKER / CRITICAL / WARNING / OPEN /
FUTURE.
## BLOCKER (impede la realizzazione o il funzionamento del chip)
1. **No physical host interface exists.** The RTL's own "host" ports
are a 110-pin raw parallel job-registration bus
(`reg_valid`/`reg_node_id`/`reg_required`/`reg_producer_ids`/
`reg_x_base`/`reg_w_base`/`reg_n_tiles`/`reg_result_addr`) — a
simulation/testbench convenience, not a real board protocol. No
RTL exists to serialize it (e.g. SPI, matching V1's own
`spi_neuron_top.v` precedent).
2. **The 110-pin host/registration bus has no real ball assignment**
(deliberately — it is not yet a real physical protocol, see item 1).
The SDRAM bus (37 signals) and clk/rst (2 signals) now DO have a
real, sourced, P&R-verified assignment (`hardware/v2/constraints/
v2_unified.lpf`, from the real Lattice pinout CSV found at
`~/Downloads/FPGA-SC-02034-3-0-ECP5U-45-Pinout.csv` during this
step's own pre-commit review) — this item is narrower than
originally scoped.
3. **No schematic exists; no PCB has been started.**
## CRITICAL (rischio elevato, deve essere risolto prima del freeze)
1. **Timing closure is MARGINAL, with an unfavorable pass rate.** 8
real P&R seeds for the frozen N=4 single-SDRAM design: only 1/8
reach ≥80MHz (66.9781.84MHz range). This is WORSE than STEP18's
own dual-memory design (5/8 pass). The critical path itself is
unchanged (still `dependency_manager.v`'s own pre-existing
`first_ready_idx`/`reg_ready` chain) — the regression is attributed
to added overall die/routing pressure from consolidation, not a new
RTL defect, but it is real and unresolved.
2. **Clock source/oscillator gap.** The RTL requires a direct ≥80MHz
clock (no PLL exists anywhere in the hierarchy — confirmed via
`EHXPLLL: 0/4` in every real synthesis run). Prior project memory
records a 16MHz board oscillator. Neither "source an 80MHz+
oscillator" nor "add a real PLL to the RTL" has been decided.
3. **Two physical memories were required through STEP18** — RESOLVED
this round (DEC-0034): the V2 physical path no longer instantiates
`hardware/v1/rtl/psram_controller.v` at all. Kept here only as a
closed CRITICAL item for the historical record.
## WARNING (non blocca il prototipo ma deve essere documentato)
1. N=2's real Fmax (86.04MHz in STEP18's own dual-memory design) and
the STEP19 single-SDRAM N=2 config were not both measured with the
same best-of-N-seed rigor as N=4 — a real, disclosed gap in
measurement thoroughness, not a functional issue.
2. `W_ENTRIES`/cache sizing in the weight-fetch path was set to match
`N_SLOTS` (4) by construction reasoning, not swept for optimality.
3. I/O standard (LVCMOS33 assumed for all 149 signals) has not been
verified per real VCCIO bank once ball assignment becomes possible.
## OPEN (decisione ancora da prendere)
1. Configuration-flash part number / SPI-flash-boot vs JTAG-only
bring-up.
2. Power regulator topology and part numbers (the previously-recorded
`../basic-ecp5-pcb` reference design is not accessible this
session to confirm as a concrete plan).
3. Real current budget (requires running a real power-estimation tool
against the actual synthesized netlist — not done this round).
4. Decoupling/bulk capacitance values (depend on regulator selection).
5. Reset synchronization to a real external POR/supervisor source.
6. Real per-bank VCCIO/I-O-standard verification once ball data is
available.
## FUTURE EVOLUTION (miglioramento post-freeze — explicitly deferred)
1. N=8 evaluation.
2. A smarter W/AR priority scheme in `sdram_unified_backend.v` to
recover some of the +10.8% (N=4) / +5.1% (N=2) cycle-count cost of
single-SDRAM unification (STEP18 EXP-0046's own packing win is
still present — this is about the NEW W-vs-AR contention specifically).
generic
3. Page-mode / keep-row-open SDRAM controller redesign (STEP18's own
identified next bottleneck for raw memory bandwidth, independent of
the single-vs-dual-memory question).
4. True multi-outstanding SDRAM request pipelining (STEP18 Part E's
own documented, deliberately out-of-scope boundary).
5. A real physical host-interface RTL bridge (SPI or similar),
resolving BLOCKER #1 above.
6. Floorplanning / seed-pinning work to convert the current MARGINAL
timing result into a reliable PASS.