Files
FPGA-Neural-Datasheet/files/docs/datasheet/v2-en/chapters/12-roadmap.tex
T
micheleandClaude Sonnet 5 0e73eb4726 docs: bring datasheet/ into the main repo under hardware/v2/docs
Was a separate, untracked directory (DataSheet/) outside the repo.
Renamed to lowercase and moved in as hardware/v2/docs/datasheet/, with
its own .gitignore for LaTeX build byproducts (compiled PDFs stay
tracked, .aux/.log/.toc/etc do not). Now versioned and shares this
repo's own remote instead of living untracked on disk.

Content: IT+EN LaTeX chapter sources, reference manufacturer PDFs, and
compiled datasheet PDFs including the 2026-09-07 SDRAM upgrade
addendum (AS4C32M16SB-7BIN part/pinout/timing) in the v2-en chapters.

Note: hardware/v2/docs/DatasheetLatex/ (and the v1 sibling) is a
separate, already-tracked, differently-structured LaTeX document that
predates this move -- left untouched, not merged, since its chapter
set and content differ and merging was not requested.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
2026-09-07 05:09:14 +02:00

63 lines
4.2 KiB
TeX

\chapter{Roadmap and development status}
\label{ch:roadmap}
\section{Milestones M1--M10}
\begin{tabularx}{\textwidth}{C{1.0cm} L{3.6cm} C{1.3cm} Y}
\toprule
\rowh \thd{M} & \thd{Title} & \thd{Status} & \thd{Content} \\
\midrule
1 & Neural Processor & \OK & Bit-exact 8-stage pipeline vs.\ V1, 7/7 tests; 183.12~MHz isolated. \\
\rowa 2 & Processor Array & \OK & 1/2/4/8 processors, real concurrent-slot simulation; DSP (not LUT/FF) found to saturate first. \\
3 & Buffers & \OK & \code{activation\_buffer}/\code{weight\_buffer}/\code{result\_buffer}, real \code{DP16KD} inference --- superseded in the real datapath by the Activation Cache (\S\ref{sec:roadmapcache}). \\
\rowa 4 & Memory Manager & \OK & Double-buffered prefetch, real V1 PSRAM chain, 3 real RTL bugs found/fixed. \\
5 & Neural Director & \OK & First-free dispatch, real backpressure, 4/4 tests. \\
\rowa 6 & Dependency Manager & \OK & Multi-dependency/shared-producer wake-up, 4/4 tests. \\
7 & Dataflow Core & \OK & Full M1--M6 integration, wake-up loop closed end-to-end. \\
\rowa 8 & PSRAM integration & \OK & Real, shared PSRAM across concurrent slots; 1 real arbiter bug found/fixed (dropped request under contention). \\
9 & Full benchmark & \OK & V1 vs.\ V2 comparison, every number classified. \\
\rowa 10 & Optimization & \OK & N\_SLOTS ceiling (DSP), ACC\_WIDTH 6-seed sweep, real stall/utilization instrumentation. \\
\bottomrule
\end{tabularx}
\section{Post-campaign: user-requested optimizations}
\label{sec:roadmapcache}
Following M9/M10's own final benchmark campaign
(\code{hardware/v2/docs/benchmarks/final-benchmark.md}), two concrete
optimizations were implemented and measured against the real toolchain:
\begin{enumerate}
\item \textbf{Word-level burst reads} (ch.~\ref{ch:mem}, \S\ref{sec:burst}):
real 2.24--2.37$\times$ wall-clock speedup, negligible Fmax cost.
\item \textbf{Shared activation cache} (ch.~\ref{ch:mem},
\S\ref{sec:cache}): a further real 1.66--2.00$\times$ cycle
reduction, at a real, steep Fmax cost that makes
\code{N\_SLOTS}=4 fail 80\,MHz outright.
\end{enumerate}
Combined: \textbf{2.45$\times$} real wall-clock speedup at
\code{N\_SLOTS}=2 (recommended) over the pre-optimization baseline, which
was itself already 2.6$\times$ faster than V1.
\section{Open work items (real, not hidden)}
\begin{tabularx}{\textwidth}{L{3.6cm} Y}
\toprule
\rowh \thd{Item} & \thd{Why it is open} \\
\midrule
Activation cache pipelining & The concrete fix for \code{N\_SLOTS}=4's Fmax failure: register the hit-detection/broadcast logic to break its single-cycle combinational path. Not attempted this round --- \code{N\_SLOTS}=4 delivers no real throughput benefit anyway (memory-bound), so this protects \code{N\_SLOTS}=2's own margin rather than making 4 useful. \\
\rowa Dependency Manager node-slot reclamation & \code{ST\_DISPATCHED} is terminal; a real long-running system will eventually exhaust \code{N\_NODES}. \\
Scheduler fairness & Fixed lowest-index priority shows real, measured per-slot imbalance under sustained contention (ch.~\ref{ch:sched}); no fairness-aware alternative has been measured yet. \\
\rowa Second physical PSRAM bank & The only real way to raise the memory-bandwidth ceiling itself, rather than use existing bandwidth more efficiently --- a board-level change, not attempted this round. \\
Real host driver \& pinout & No physical transport or placed pin assignment exists for the node-registration bus (ch.~\ref{ch:host}, ch.~\ref{ch:hw}). \\
\rowa Per-node bias/activation & Every job currently hardcodes \code{bias=0}/\code{ACT\_RELU}; not yet exposed by the Dependency Manager's own job descriptor. \\
Power/energy characterization & No ECP5 power estimator available in this toolchain; honestly reported as \textsc{Not measured}, not invented. \\
\bottomrule
\end{tabularx}
\begin{fnnote}[Every claim in this datasheet traces to a log entry]
\code{hardware/v2/logs/}: \code{development.log}, \code{simulation.log},
\code{synthesis.log}, \code{timing.log}, \code{benchmark.log},
\code{decisions.log} (\code{DEC-\textit{NNNN}}), \code{experiments.log}
(\code{EXP-\textit{NNNN}}), \code{errors.log} (\code{ERR-\textit{NNNN}}).
IDs are never reused, past results are never overwritten, even failed
ones --- the same discipline V1's own \code{docs/validation/} campaign
followed.
\end{fnnote}