hardware/v1/ was created (dc0b331) as a frozen snapshot of the V1
project that then lived at the repo root (rtl/, sim/, synth/, tools/,
docs/). Root received zero further commits to those files after the
freeze -- confirmed byte-identical to the hardware/v1/ copy for every
file removed here. Root was the "before", hardware/v1/ is the
curated, canonical "after".
Removed (all verified exact-hash duplicates of hardware/v1/ content):
- rtl/ (20 files, 100% covered by hardware/v1/rtl/)
- tools/{netasm,pinout,run_regression.py,flash_catalog,validation,
fpga_benchmark.py} (19 files, 100% covered by hardware/v1/tools/;
tools/neural_sim/ kept -- unique, post-freeze, no counterpart)
- sim/*.v (47 testbenches, 100% covered by hardware/v1/sim/; the
~38 remaining sim/ entries are compiled binaries and .vcd
waveform dumps, left as a separate cleanup decision)
- synth/ecp5/{p2,p4,p8,post_fix_verify} (25 files, exact duplicates
of hardware/v1/synthesis/; the other ~84 synth/ecp5/* experiment
build directories are historical artifacts never carried into the
freeze, left as a separate decision)
- WORKLOG.md (duplicate of hardware/v1/docs/WORKLOG.md)
- docs/{FPGA-Neural-Datapatch-Benchmark,FPGA-Neural-Hardware-Design,
FPGA-NeuralNetwork-Engine}.md, docs/validation/*.md (18 files),
docs/FPGA-Neural-Datasheet-{EN,IT}.pdf -- all exact duplicates of
hardware/v1/docs/ content
- hardware/v1/docs/DatasheetLatex/ (24 files) -- exact duplicate of
hardware/v2/docs/datasheet/files/docs/datasheet/en/ (discovered
during this audit; not the same DatasheetLatex already removed
from hardware/v2/docs/ in an earlier commit)
Moved (genuine, unique, post-freeze V2 content -- not duplicated
anywhere, just living in the wrong/legacy root docs/ location):
- docs/architecture/*.md -> hardware/v2/docs/architecture/
- docs/pinouts.md, docs/FPGA_NEURAL_V2_DATASHEET.md,
docs/FPGA_NEURAL_V2_SCHEMATIC.md,
docs/FPGA-Neural-V2-Datasheet-EN.pdf -> hardware/v2/docs/
Left untouched (separate decisions, not part of this cleanup):
- docs/FPGA-Neural-Flash-Subsystem-Verification.md, docs/
v2-description.md -- orphaned root-only content, no duplicate
found anywhere, but also not part of the reviewed plan
- synth/ecp5/* experiment dirs and sim/*_sim + sim/*.vcd build
artifacts -- not literal duplicates, flagged as candidates for a
future, separate cleanup pass
Verified no functional breakage: grepped all remaining scripts/docs
for references to every removed path -- only prose/comment mentions
found, no executable imports or build-script paths broken.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
161 lines
6.7 KiB
Markdown
161 lines
6.7 KiB
Markdown
# FPGA-Neural V2 — Reference Schematic (textual)
|
|
|
|
**No KiCad schematic was generated this session.** No RTL-to-schematic
|
|
or netlist-to-KiCad automation tool is available in this environment,
|
|
and the project's own separate, pre-existing KiCad PCB directory
|
|
(`FPGA-Neural/FPGA-Neural/FPGA-Neural/`) is an unrelated, independently
|
|
tracked project (its own nested `.git`, near-empty as of last check) —
|
|
it was not touched, and this document does not assume its contents.
|
|
This is a textual/ASCII reference schematic: a real starting point for
|
|
PCB capture, not a substitute for one. All ball assignments below are
|
|
the real, P&R-verified ones from `hardware/v2/constraints/
|
|
v2_unified.lpf` (STEP19) unless marked otherwise.
|
|
|
|
## 1. Top-level block diagram
|
|
|
|
```
|
|
+---------------------------+
|
|
| HOST MCU |
|
|
| SPI |
|
|
+------------+----------------+
|
|
|
|
|
v
|
|
+----------------------------------------------------------+
|
|
| ECP5 FPGA (LFE5U-45F-8BG381) |
|
|
| |
|
|
| +--------------+ +---------------------------+ |
|
|
| | SPI Host |---->| Register / Control | |
|
|
| | Bridge | | (job registration) | |
|
|
| +--------------+ +-------------+-------------+ |
|
|
| | |
|
|
| +-------------v-------------+ |
|
|
| | Neural Accelerator (N=4) | |
|
|
| | Processor 0..3 | |
|
|
| +-------------+-------------+ |
|
|
| | |
|
|
| +-------------v-------------+ |
|
|
| | Unified SDRAM Backend | |
|
|
| +-------------+-------------+ |
|
|
+----------------------------------------------------------+
|
|
|
|
|
16-bit SDRAM bus
|
|
v
|
|
+----------------------------+
|
|
| AS4C4M16SA-6TIN |
|
|
| Weights / Activations / |
|
|
| Results |
|
|
+----------------------------+
|
|
|
|
16 MHz osc --> ECP5 PLL (EHXPLLL) --> 64 MHz system clock
|
|
Power rails --> POR/supervisor --> FPGA reset, SDRAM init
|
|
Configuration flash + JTAG connector (see 5/6)
|
|
```
|
|
|
|
## 2. SDRAM connection table (real, P&R-verified balls)
|
|
|
|
| Signal | Ball | Bank | I/O std (assumed) | Direction |
|
|
|---|---|---|---|---|
|
|
| CLK (shared w/ system clk) | H5 | — | LVCMOS33 | FPGA -> SDRAM |
|
|
| CKE | B5 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| CS_N | C5 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| RAS_N | C4 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| CAS_N | A3 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| WE_N | B3 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| BA[0] | E4 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| BA[1] | C3 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| A[0..11] | D5,D3,F4,E5,E3,F5,A2,B1,C2,C1,D2,D1 | 7 | LVCMOS33 | FPGA -> SDRAM |
|
|
| DQ[0..15] | E1,G5,H3,J5,K3,K2,H1,J1,K1,K4,L4,L5,M5,M4,N4,N5 | 7/6 | LVCMOS33 | bidirectional |
|
|
| DQM[0..1] | P5,N3 | 6 | LVCMOS33 | FPGA -> SDRAM |
|
|
|
|
Full source: `hardware/v2/constraints/v2_unified.lpf`. LVCMOS33 is
|
|
assumed to match the SDRAM's own real 3.3V requirement and matches
|
|
banks 6/7's real VCCIO range per `docs/pinouts.md` — not yet
|
|
independently cross-checked at the schematic/PCB level (WARNING, not
|
|
BLOCKER).
|
|
|
|
## 3. Clock schematic
|
|
|
|
```
|
|
16MHz OSC ---> CLKI (H5, reused from V1's own real LPF)
|
|
|
|
|
+-----v------+
|
|
| EHXPLLL | CLKI_DIV=1, CLKFB_DIV=4, CLKOP_DIV=9
|
|
| (hard IP) | FEEDBK_PATH=CLKOP, VCO=576MHz
|
|
+-----+------+
|
|
| CLKOP = 64MHz
|
|
v
|
|
FPGA system clock (feeds compute, SDRAM ctrl, SPI bridge)
|
|
|
|
|
+-----v------+
|
|
| reset_sync | <-- ext POR (active-low) + PLL LOCK
|
|
+-----+------+
|
|
v
|
|
rst (sync-deassert, feeds every synchronous block)
|
|
```
|
|
|
|
Oscillator part number: **TBD** (not selected this session — a real
|
|
16MHz, 3.3V HCMOS clock oscillator in a standard SMD package is the
|
|
intended class of part; no specific manufacturer/part number is
|
|
claimed without a real datasheet lookup performed this session).
|
|
|
|
## 4. Power schematic (rails only — no regulator parts selected)
|
|
|
|
```
|
|
3.3V/1.1V/2.5V rails (regulators: TBD)
|
|
| | |
|
|
v v v
|
|
VCCIO VCC(core) VCCAUX
|
|
(banks (real ball (real ball
|
|
6/7=SDRAM cluster, cluster,
|
|
I/O, etc) see see
|
|
POWER_ARCH POWER_ARCH
|
|
.md) .md)
|
|
|
|
|
v
|
|
SDRAM VDD/VDDQ (3.3V, DATASHEET VALUE per AS4C4M16SA-6TIN)
|
|
```
|
|
|
|
Full rail table, decoupling guidance, and current-budget status:
|
|
`hardware/v2/docs/POWER_ARCHITECTURE.md` (unchanged this step — no new
|
|
power work performed).
|
|
|
|
## 5. Configuration / JTAG schematic
|
|
|
|
```
|
|
FPGA
|
|
|-- TDI/TDO/TCK/TMS --> JTAG connector (standard pinout, always
|
|
| available regardless of boot mode)
|
|
|-- PROGRAMN/INITN/DONE/CCLK --> configuration flash (part: TBD) or
|
|
JTAG-only bring-up (decision: OPEN)
|
|
```
|
|
|
|
No configuration-flash part has been selected; JTAG-only bring-up
|
|
remains a valid fallback and is documented as such in
|
|
`hardware/v2/docs/CONFIGURATION.md`-equivalent content inside
|
|
`OPEN_ITEMS.md` (a dedicated `CONFIGURATION.md` was not created this
|
|
round — tracked as an open item, not silently dropped).
|
|
|
|
## 6. Host interface schematic
|
|
|
|
```
|
|
Host MCU --SPI--> FPGA: spi_sclk, spi_mosi, spi_miso, spi_cs_n
|
|
```
|
|
|
|
No ball assignment exists yet for these 4 signals (the board-level
|
|
top was not run through P&R this session — see the datasheet's own
|
|
§11 Limitations). Pull-up on `spi_cs_n` (idle-high) is the standard,
|
|
expected design decision for a single-master SPI bus; not yet placed
|
|
in any real LPF.
|
|
|
|
## 7. What this schematic deliberately does NOT claim
|
|
|
|
- No KiCad artifact. No PCB. No fabricated board.
|
|
- No ball assignment for the new SPI/oscillator/reset pins (P&R not
|
|
run against the new board-level top this session, since the design
|
|
has a known, unresolved functional defect — see errors.log
|
|
ERR-0025 Part B).
|
|
- No regulator, flash, or connector part numbers.
|
|
|
|
This document is a real, honest starting point for PCB capture, not a
|
|
finished schematic.
|