Adds hardware/v2/docs/PRE_PCB_VERIFICATION.md as the single authoritative pre-schematic verification record: RTL/ERR-0025/ regression re-verification, clock/reset, synthesis/P&R re-audit, setup/hold timing status, the real SDRAM datasheet-parameter audit table (Alliance Memory AS4C4M16SA-6TIN Table 17), SPI host bridge protocol documentation, FPGA power/pinout tables, first-board bring-up and benchmark status, and cross-domain consistency audit. Freezes the FPGA configuration flash: Winbond W25Q32JVSSIQ (32Mbit, SOIC-8, 2.7-3.6V, standard SPI, ECP5 Master-SPI-boot compatible) -- this was the one section-11 item the governing mandate required not be left OPEN. Marks CHIP_READINESS.md/OPEN_ITEMS.md/PINOUT.md/CLOCK_ARCHITECTURE.md/ POWER_ARCHITECTURE.md/SCHEMATIC_READINESS.md as superseded (they predate the SPI host bridge, PLL, and this session's SDRAM datasheet audit) with pointers to the new consolidated document, rather than rewriting each individually. Updates the V2 LaTeX datasheet's status/roadmap chapter to reflect the SDRAM datasheet audit and configuration-flash decisions, rebuilds the PDF (clean compile, 16 pages). Classification: PRE-PCB VERIFIED. Schematic and PCB implementation remain user-owned and not started. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
6.4 KiB
6.4 KiB
FPGA-Neural V2 — OPEN ITEMS
SUPERSEDED. See PRE_PCB_VERIFICATION.md's own final release-gate
table for the current, consolidated OPEN/PASS status of every item
below — most of the BLOCKER/CRITICAL items here (host interface,
clock/PLL, pinout) are now CLOSED. Left in place as a historical
record.
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)
- RESOLVED (STEP20). A real SPI host interface (
spi_host_bridge.v) is now implemented, protocol-correct in isolation (18/18,tb_spi_host_bridge.v), AND verified correct end-to-end through the full SPI→dependency_manager→compute→SDRAM→result path under both tight and realistic (widely time-separated) job pacing (11/11,tb_fpga_neural_v2_top_smoke.v) — see errors.log's own "ERR-0025 Part B — RESOLUTION" entry for the full root-cause writeup (a registered- vs combinational-read latency mismatch in the shared weight/activation SRAMs, fixed with zero regression to the STEP19 baseline). This item is CLOSED — kept here only for the historical record; item 1 below is likewise no longer a real blocker in the sense of "the RTL doesn't exist" — it remains open only for real pinout/board-connector work (see item 1's own updated text). - RESOLVED (STEP20). The RTL's own internal "host" ports (
reg_valid/reg_node_id/reg_required/reg_producer_ids/reg_x_base/reg_w_base/reg_n_tiles/reg_result_addr) remain a simulation/ testbench-only bus fornms_neural_multiprocessor_sdram_unified.vin isolation, but the board-level top (fpga_neural_v2_top.v) now drives these SAME internal ports fromspi_host_bridge.v, a real, verified SPI protocol engine (WRITE_JOB/WRITE_MEM/READ_MEM/STATUS/ RESET), matching V1's ownspi_neuron_top.vprecedent. The 110-pin bus is no longer exposed as a physical top-level port at all infpga_neural_v2_top.v— only 4 real SPI pins (sclk/mosi/miso/cs_n) are. - The 110-pin host/registration bus has no real ball assignment —
moot now (see item 1): it is an internal signal, not a top-level
port, in the board-level top. The 4 real SPI pins likewise have no
ball assignment yet, since
fpga_neural_v2_top.vhas not been through P&R this round (see the next open item). 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.csvduring this step's own pre-commit review) — this item is narrower than originally scoped. - No schematic exists; no PCB has been started.
CRITICAL (rischio elevato, deve essere risolto prima del freeze)
- 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.97–81.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-existingfirst_ready_idx/reg_readychain) — the regression is attributed to added overall die/routing pressure from consolidation, not a new RTL defect, but it is real and unresolved. - Clock source/oscillator gap -- PARTIALLY ADDRESSED (STEP20). A
real EHXPLLL wrapper (
ecp5_pll_sys_clk.v, real Project Trellisecppll-generated parameters, 16MHz->64MHz) now exists and is instantiated infpga_neural_v2_top.v. NOT YET confirmed by real synthesis/P&R of that board-level top this round (deliberately deferred until ERR-0025 Part B was resolved -- see decisions.log DEC-0037) -- this is the immediate next real step. Prior project memory records a 16MHz board oscillator. Neither "source an 80MHz+ oscillator" nor "add a real PLL to the RTL" has been decided. - Two physical memories were required through STEP18 — RESOLVED
this round (DEC-0034): the V2 physical path no longer instantiates
hardware/v1/rtl/psram_controller.vat all. Kept here only as a closed CRITICAL item for the historical record.
WARNING (non blocca il prototipo ma deve essere documentato)
- 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.
W_ENTRIES/cache sizing in the weight-fetch path was set to matchN_SLOTS(4) by construction reasoning, not swept for optimality.- 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)
- Configuration-flash part number / SPI-flash-boot vs JTAG-only bring-up.
- Power regulator topology and part numbers (the previously-recorded
../basic-ecp5-pcbreference design is not accessible this session to confirm as a concrete plan). - Real current budget (requires running a real power-estimation tool against the actual synthesized netlist — not done this round).
- Decoupling/bulk capacitance values (depend on regulator selection).
- Reset synchronization to a real external POR/supervisor source.
- Real per-bank VCCIO/I-O-standard verification once ball data is available.
FUTURE EVOLUTION (miglioramento post-freeze — explicitly deferred)
- N=8 evaluation.
- A smarter W/AR priority scheme in
sdram_unified_backend.vto 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 - 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).
- True multi-outstanding SDRAM request pipelining (STEP18 Part E's own documented, deliberately out-of-scope boundary).
- A real physical host-interface RTL bridge (SPI or similar), resolving BLOCKER #1 above.
- Floorplanning / seed-pinning work to convert the current MARGINAL timing result into a reliable PASS.