% ====================================================================== % FPGA-Neural V2 -- Neural Multiprocessor / Dataflow Machine % Datasheet / Technical reference manual % Repository: github.com/manvalan/FPGA-Neural % ====================================================================== \documentclass[11pt,a4paper,openany]{report} \newcommand{\datasheetrev}{B2} \newcommand{\datasheetdate}{September 2026} \input{preamble} \begin{document} \sloppy % ====================================================================== % TITLE PAGE % ====================================================================== \begin{titlepage} \thispagestyle{empty} \begin{tikzpicture}[remember picture,overlay] \fill[fnDark] (current page.north west) rectangle ([yshift=-4.3cm]current page.north east); \fill[fnTeal] ([yshift=-4.3cm]current page.north west) rectangle ([yshift=-4.55cm]current page.north east); \node[anchor=north west,text=white,font=\Huge\bfseries] at ([xshift=2.2cm,yshift=-1.15cm]current page.north west) {FPGA\,--\,Neural~V2}; \node[anchor=north west,text=fnLight,font=\large] at ([xshift=2.25cm,yshift=-2.15cm]current page.north west) {Neural Multiprocessor / Dataflow Machine}; \node[anchor=north west,text=fnLight2,font=\normalsize] at ([xshift=2.25cm,yshift=-2.85cm]current page.north west) {N\_SLOTS-way concurrent INT8 accelerator -- Datasheet and reference manual}; \node[anchor=north east,text=white,font=\ttfamily\small] at ([xshift=-2.2cm,yshift=-3.55cm]current page.north east) {Rev.~\datasheetrev~~\textbullet~~\datasheetdate}; \end{tikzpicture} \vspace*{5.0cm} % --- compact block diagram on the title page --- \begin{center} \begin{tikzpicture}[node distance=7mm and 10mm] \node[fnblockD,minimum width=26mm] (host) {HOST\\{\scriptsize graph loader}}; \node[fnblockT,right=14mm of host,minimum width=30mm] (dm) {Dependency\\Manager}; \node[fnblockT,right=14mm of dm,minimum width=28mm] (dir) {Neural\\Director}; \node[fnblock,right=14mm of dir,minimum width=34mm] (slots) {N\_SLOTS $\times$ (Memory\\Manager $+$ Neural Proc.)}; \node[fnblock,right=14mm of slots,minimum width=24mm] (ram) {PSRAM\\{\scriptsize 8\,MB, real V1 chain}}; \draw[fnbus] (host) -- (dm); \draw[fnbus] (dm) -- (dir); \draw[fnbus] (dir) -- (slots); \draw[fnbus] (slots) -- node[fnlbl,above]{16-bit word} (ram); \node[below=1mm of slots,font=\scriptsize\itshape,text=fnGrey] {computation entirely on-chip, dependency graph resolved autonomously}; \end{tikzpicture} \end{center} \vfill \begin{center} \begin{tikzpicture} \node[draw=fnRule,rounded corners=3pt,inner sep=10pt,fill=fnLight,text width=15.5cm]{ \footnotesize \textbf{\color{fnDark}Reference target device:} Lattice ECP5 \code{LFE5U-45F-8BG381C} (speed grade $-8$, CABGA381) --- identical device and board as V1.\\[2pt] \textbf{\color{fnDark}Recommended configuration:} INT8/INT32, \code{P\_IN}=8, \code{N\_SLOTS}=2 (real, measured net win --- see ch.~\ref{ch:impl2}), same real, unmodified V1 PSRAM backend, ISSI \code{IS66WVE4M16EBLL-70BLI}.\\[2pt] \textbf{\color{fnDark}Status:} RTL verified in real Verilator simulation and real synthesis + place\&route (Yosys + nextpnr-ecp5). Full benchmark campaign, two post-campaign memory optimizations, and a full alternative memory-subsystem redesign (the Neural Memory System, ch.~\ref{ch:nms}) complete and measured. Document describing the project as of \datasheetdate. }; \end{tikzpicture} \end{center} \vspace{0.6cm} {\footnotesize\color{fnGrey}\raggedright Project author: Michele Bigi \textbullet{} MIKILAB / manvalan.\\ This datasheet documents V2 of the RTL code, documentation and benchmarks present in the repository \texttt{github.com/manvalan/FPGA-Neural}. V1 remains frozen and unmodified as the project's golden functional/performance reference; it is documented in a separate datasheet.\par} \end{titlepage} % ====================================================================== % "FEATURES" PAGE (datasheet style) % ====================================================================== \input{chapters/00-features} % ====================================================================== % PINOUT SUMMARY (honesty note -- no real ball assignment for V2 yet) % ====================================================================== \newpage \input{chapters/00b-pinout} % ====================================================================== % TABLE OF CONTENTS % ====================================================================== \newpage \pagenumbering{roman} {\color{fnDark}\tableofcontents} \newpage \pagenumbering{arabic} % ====================================================================== % CHAPTERS % ====================================================================== \include{chapters/01-overview} \include{chapters/02-architecture} \include{chapters/03-datapath} \include{chapters/04-parameters} \include{chapters/05-memory} \include{chapters/06-scheduling} \include{chapters/07-hostinterface} \include{chapters/08-toplevel} \include{chapters/09-implementation} \include{chapters/10-hardware} \include{chapters/11-registers} \include{chapters/12-roadmap} \include{chapters/13-nms} \appendix \include{chapters/A-modules} \end{document}