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
95 lines
6.9 KiB
Markdown
95 lines
6.9 KiB
Markdown
# FPGA-Neural V2 — CHIP READINESS
|
|
|
|
**SUPERSEDED.** See `PRE_PCB_VERIFICATION.md` for the current,
|
|
consolidated PRE-PCB VERIFIED release gate (this document's own
|
|
checklist predates the SPI host bridge, PLL, and SDRAM datasheet
|
|
audit). Left in place as a historical record.
|
|
|
|
Precise, non-vague criteria per the governing spec's own definition:
|
|
V2 hardware is READY only when EVERY box below is checked. If even one
|
|
fundamental item is missing, **HARDWARE READY = NO** — no OPEN ITEM is
|
|
masked.
|
|
|
|
```
|
|
[x] RTL frozen -- nms_neural_multiprocessor_sdram_unified.v,
|
|
zero V1 dependency, strict lint clean
|
|
[x] regression PASS -- 461/461 (isolated controller, 9 configs),
|
|
40/40 (isolated unified backend)
|
|
[x] bit-exact PASS -- 256/256 neurons, N=2 AND N=4, single SDRAM
|
|
[x] SDRAM validation PASS -- init/refresh/read/write/burst/masked-write,
|
|
40 real refresh events, zero corruption
|
|
[x] N4 synthesis PASS -- real Yosys 0.68+post, zero errors
|
|
[ ] N4 timing >= 80 MHz -- MARGINAL: only 1/8 real P&R seeds pass
|
|
[ ] constraints complete -- v2_unified.lpf exists, REAL and P&R-verified
|
|
for 39/149 signals (clk/rst + full SDRAM bus);
|
|
110-signal host bus still unassigned
|
|
[ ] pinout complete -- 149-signal inventory complete; SDRAM+clk/rst
|
|
(39 signals) REALLY assigned from the official
|
|
Lattice CSV and P&R-confirmed; host bus (110
|
|
signals) deliberately unassigned (see below)
|
|
[ ] clock defined -- real EHXPLLL RTL now exists (STEP20,
|
|
ecp5_pll_sys_clk.v, 16MHz->64MHz), NOT yet
|
|
confirmed by synthesis/P&R of the board top
|
|
[ ] power defined -- rail voltages known; regulators NOT selected
|
|
[ ] FPGA configuration defined -- standard pins identified; flash NOT chosen
|
|
[x] host interface defined -- STEP20: real SPI protocol engine
|
|
(spi_host_bridge.v), verified correct
|
|
end-to-end (11/11, board-level smoke test),
|
|
zero regression to the STEP19 baseline
|
|
[x] schematic requirements complete -- SCHEMATIC_READINESS.md's own block diagram
|
|
and interconnection list are complete
|
|
[x] first-power-on test defined -- FIRST_POWER_ON.md's own 12-step procedure
|
|
[ ] bitstream reproducible -- NOT verified: no ball-assigned LPF exists to
|
|
produce a REAL, board-usable bitstream from;
|
|
the free-placement bitstreams used for
|
|
verification this round are reproducible
|
|
AS SIMULATION/FIT PROOFS ONLY, not as a
|
|
real board-programmable artifact
|
|
```
|
|
|
|
**8 of 14 items checked. HARDWARE READY = NO.**
|
|
|
|
**STEP20 update:** a real SPI host interface (`spi_host_bridge.v` +
|
|
`fpga_neural_v2_top.v`) now exists AND is verified correct end-to-end
|
|
(errors.log's "ERR-0025 Part B — RESOLUTION": a registered- vs
|
|
combinational-read SRAM timing bug, found via the board-level smoke
|
|
test, root-caused, fixed with zero regression to the STEP19 baseline)
|
|
— "host interface defined" is now checked. A real EHXPLLL clock
|
|
wrapper also now exists (`ecp5_pll_sys_clk.v`) but has not yet been
|
|
through synthesis/P&R of the board-level top, so "clock defined"
|
|
remains unchecked for that specific, narrower reason. The STEP19 core
|
|
(raw `reg_*` interface) remains bit-exact verified and was reconfirmed
|
|
fresh this session via Verilator after an unrelated Icarus Verilog
|
|
v13.0 toolchain regression was found and ruled out (ERR-0024).
|
|
|
|
## Why each unchecked item is unchecked (no vague language)
|
|
|
|
| Item | Why NOT checked |
|
|
|---|---|
|
|
| N4 timing ≥80MHz | 8 real P&R seeds measured; only 1 (81.84MHz) clears 80MHz. This is a real MARGINAL result, not a PASS, per the governing spec's own explicit classification rule (some seeds pass, most do not). |
|
|
| Constraints complete | `v2_unified.lpf` real and P&R-verified for 39/149 signals (clock frequency + clk/rst + the full 37-signal SDRAM bus, sourced from the real Lattice pinout CSV found at `~/Downloads/` during this step's own pre-commit review). The 110-signal host bus is deliberately left unassigned. |
|
|
| Pinout complete | Signal inventory is complete (149, exactly matching real P&R); SDRAM+clk/rst (39 signals, 26%) are now really assigned and P&R-confirmed; the 110-signal host bus is unassigned, not because pin data is missing, but because that bus is not yet a real physical protocol (see below) — assigning it balls now would be premature. |
|
|
| Clock defined | A real EHXPLLL wrapper now exists (`ecp5_pll_sys_clk.v`, STEP20, real Project Trellis `ecppll`-generated parameters, 16MHz->64MHz) and is instantiated in the board-level top, but has NOT yet been confirmed by synthesis/P&R of that top — deliberately deferred until ERR-0025 Part B was resolved (decisions.log DEC-0037). |
|
|
| Power defined | Rail VOLTAGES are known from real datasheets; regulator SELECTION, CURRENT budget, and decoupling are not — no real power-estimation tool was run, and the previously-referenced board power-tree design is not accessible this session to confirm as a concrete plan. |
|
|
| FPGA configuration defined | Standard ECP5 config pins (TDI/TDO/TCK/TMS/PROGRAMN/INITN/DONE/CCLK) are correctly identified as existing and standard, but no configuration-flash part number or SPI-vs-JTAG-only bring-up approach has been chosen for V2 specifically. |
|
|
| Bitstream reproducible | Every P&R run this project has performed used free (unconstrained) I/O placement — a real, valid way to prove the design FITS the package, but not a way to produce a bitstream a real board's own fixed wiring could actually use. |
|
|
|
|
## What this means, precisely
|
|
|
|
The V2 hardware architecture itself — SDRAM device, controller,
|
|
memory subsystem, compute datapath, N4/P8 configuration — is **real,
|
|
validated, and correct**: bit-exact simulation, real synthesis, real
|
|
place-and-route all confirm this. What remains is **entirely physical-
|
|
integration work**: a real host interface, a real ball-level pinout, a
|
|
real clock source decision, and real power/configuration component
|
|
selection. None of these are memory-architecture, datapath, or
|
|
correctness questions anymore — they are the next, concrete, well-
|
|
defined engineering tasks, precisely enumerated in OPEN_ITEMS.md.
|
|
|
|
## Final answer
|
|
|
|
```
|
|
HARDWARE FREEZE: PASS (architectural decision + RTL correctness)
|
|
CHIP READY: NO
|
|
```
|