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
104 lines
5.6 KiB
TeX
104 lines
5.6 KiB
TeX
\thispagestyle{plain}
|
|
\noindent
|
|
\begin{tikzpicture}
|
|
\node[fill=fnDark,text=white,rounded corners=2pt,inner sep=6pt,
|
|
minimum width=\textwidth,anchor=west]
|
|
{\large\bfseries Pinout summary --- pin-by-pin connection};
|
|
\end{tikzpicture}
|
|
|
|
\vspace{6pt}
|
|
\noindent
|
|
{\footnotesize
|
|
Quick-reference table: the \textbf{57 real signals} of the top-level
|
|
\code{spi\_neuron\_top}, each with its own individual \code{CABGA381} ball
|
|
(\textbf{not} a bus range) --- real data from Project~Trellis's device
|
|
database (\code{iodb.json}), \textbf{verified by a complete
|
|
\code{nextpnr-ecp5} place\&route run at 0 errors} (not a planned pinout).
|
|
Full description, per-bank placement rationale and the pin-by-pin
|
|
connection to the ISSI PSRAM: ch.~\ref{ch:hw}.
|
|
}
|
|
|
|
\vspace{4pt}
|
|
\noindent
|
|
\renewcommand{\arraystretch}{1.08}
|
|
\begin{tabularx}{\textwidth}{L{2.7cm} C{1.0cm} C{1.0cm} C{0.9cm} Y}
|
|
\toprule
|
|
\rowh \thd{Signal} & \thd{Ball} & \thd{Bank} & \thd{Dir} & \thd{Corresponding pin / function} \\
|
|
\midrule
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}Clock and reset}}\\
|
|
\code{clk} & H5 & 7 & IN & System clock, pad \code{GR\_PCLK7\_0} (dedicated global clock). \\
|
|
\rowa \code{rst} & B4 & 7 & IN & Global synchronous reset, active high. \\
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}Application SPI (host $\leftrightarrow$ FPGA, Mode~0)}}\\
|
|
\code{sclk} & B5 & 7 & IN & SPI clock (CPOL=0, CPHA=0). \\
|
|
\rowa \code{mosi} & C5 & 7 & IN & Master-Out Slave-In. \\
|
|
\code{miso} & A3 & 7 & OUT & Master-In Slave-Out. \\
|
|
\rowa \code{cs\_n} & B3 & 7 & IN & Chip-select, active low. \\
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}Host attention (active-low, level)}}\\
|
|
\code{data\_ready\_n} & C3 & 7 & OUT & Low while a result is waiting to be read. \\
|
|
\rowa \code{irq\_n} & C4 & 7 & OUT & Low while the graph engine's load-time guard has tripped. \\
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}Flash subsystem --- SPI toward W25Q128JV (boot/persistence)}}\\
|
|
\code{flash\_sclk} & E3 & 7 & OUT & SPI clock toward the flash --- ordinary GPIO, independent (Phase F7, ch.~\ref{ch:hw}). \\
|
|
\rowa \code{flash\_mosi} & D3 & 7 & OUT & Master-Out Slave-In toward the onboard flash. \\
|
|
\code{flash\_miso} & D5 & 7 & IN & Master-In Slave-Out from the flash. \\
|
|
\rowa \code{flash\_cs\_n} & E4 & 7 & OUT & Flash chip-select, active low. \\
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}PSRAM address bus \code{psram\_a[21:0]} --- 22 individual balls (bank 2)}}\\
|
|
\code{psram\_a[0]} & E16 & 2 & OUT & PSRAM A0 \\
|
|
\rowa \code{psram\_a[1]} & F16 & 2 & OUT & PSRAM A1 \\
|
|
\code{psram\_a[2]} & D18 & 2 & OUT & PSRAM A2 \\
|
|
\rowa \code{psram\_a[3]} & E17 & 2 & OUT & PSRAM A3 \\
|
|
\code{psram\_a[4]} & E18 & 2 & OUT & PSRAM A4 \\
|
|
\rowa \code{psram\_a[5]} & F18 & 2 & OUT & PSRAM A5 \\
|
|
\code{psram\_a[6]} & F17 & 2 & OUT & PSRAM A6 \\
|
|
\rowa \code{psram\_a[7]} & G16 & 2 & OUT & PSRAM A7 \\
|
|
\code{psram\_a[8]} & G18 & 2 & OUT & PSRAM A8 \\
|
|
\rowa \code{psram\_a[9]} & H16 & 2 & OUT & PSRAM A9 \\
|
|
\code{psram\_a[10]} & H17 & 2 & OUT & PSRAM A10 \\
|
|
\rowa \code{psram\_a[11]} & H18 & 2 & OUT & PSRAM A11 \\
|
|
\code{psram\_a[12]} & J16 & 2 & OUT & PSRAM A12 \\
|
|
\rowa \code{psram\_a[13]} & J17 & 2 & OUT & PSRAM A13 \\
|
|
\code{psram\_a[14]} & C20 & 2 & OUT & PSRAM A14 \\
|
|
\rowa \code{psram\_a[15]} & D19 & 2 & OUT & PSRAM A15 \\
|
|
\code{psram\_a[16]} & E19 & 2 & OUT & PSRAM A16 \\
|
|
\rowa \code{psram\_a[17]} & E20 & 2 & OUT & PSRAM A17 \\
|
|
\code{psram\_a[18]} & F19 & 2 & OUT & PSRAM A18 \\
|
|
\rowa \code{psram\_a[19]} & F20 & 2 & OUT & PSRAM A19 \\
|
|
\code{psram\_a[20]} & G20 & 2 & OUT & PSRAM A20 \\
|
|
\rowa \code{psram\_a[21]} & H20 & 2 & OUT & PSRAM A21 \\
|
|
\code{psram\_a[22]} & P18 & 3 & OUT & Always 0 (byte$\to$word shift): NC on the board. \\
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}PSRAM data bus \code{psram\_dq[15:0]} --- 16 individual balls (banks 2 and 3)}}\\
|
|
\rowa \code{psram\_dq[0]} & K18 & 2 & IO & PSRAM DQ0 \\
|
|
\code{psram\_dq[1]} & C18 & 2 & IO & PSRAM DQ1 (dual-function ball, used as ordinary GPIO). \\
|
|
\rowa \code{psram\_dq[2]} & D17 & 2 & IO & PSRAM DQ2 \\
|
|
\code{psram\_dq[3]} & D20 & 2 & IO & PSRAM DQ3 \\
|
|
\rowa \code{psram\_dq[4]} & G19 & 2 & IO & PSRAM DQ4 \\
|
|
\code{psram\_dq[5]} & J18 & 2 & IO & PSRAM DQ5 \\
|
|
\rowa \code{psram\_dq[6]} & J19 & 2 & IO & PSRAM DQ6 \\
|
|
\code{psram\_dq[7]} & J20 & 2 & IO & PSRAM DQ7 \\
|
|
\rowa \code{psram\_dq[8]} & K19 & 2 & IO & PSRAM DQ8 \\
|
|
\code{psram\_dq[9]} & K20 & 2 & IO & PSRAM DQ9 \\
|
|
\rowa \code{psram\_dq[10]} & L17 & 3 & IO & PSRAM DQ10 \\
|
|
\code{psram\_dq[11]} & M18 & 3 & IO & PSRAM DQ11 \\
|
|
\rowa \code{psram\_dq[12]} & M17 & 3 & IO & PSRAM DQ12 \\
|
|
\code{psram\_dq[13]} & N16 & 3 & IO & PSRAM DQ13 \\
|
|
\rowa \code{psram\_dq[14]} & N18 & 3 & IO & PSRAM DQ14 \\
|
|
\code{psram\_dq[15]} & P17 & 3 & IO & PSRAM DQ15 \\
|
|
\multicolumn{5}{l}{\textit{\color{fnDark}PSRAM control}}\\
|
|
\rowa \code{psram\_ce\_n} & N17 & 3 & OUT & PSRAM CE\# --- chip enable, active low. \\
|
|
\code{psram\_oe\_n} & R16 & 3 & OUT & PSRAM OE\# --- output enable (read). \\
|
|
\rowa \code{psram\_we\_n} & R17 & 3 & OUT & PSRAM WE\# --- write enable. \\
|
|
\code{psram\_lb\_n} & T16 & 3 & OUT & PSRAM LB\# --- lower-byte enable (DQ[7:0]). \\
|
|
\rowa \code{psram\_ub\_n} & N19 & 3 & OUT & PSRAM UB\# --- upper-byte enable (DQ[15:8]). \\
|
|
\code{psram\_zz\_n} & N20 & 3 & OUT & PSRAM ZZ\# --- sleep/snooze (high during normal operation). \\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
\renewcommand{\arraystretch}{1.25}
|
|
|
|
\vspace{4pt}
|
|
\noindent
|
|
{\footnotesize\color{fnGrey}
|
|
Standard I/O: LVCMOS33 on all 57 signals. Boot config-SPI and JTAG balls (fixed-function
|
|
dedicated pins, no RTL port) do not appear in this table --- see ch.~\ref{ch:hw}
|
|
§``Configuration and programming''. Source: \code{synth/ecp5/spi\_neuron\_top.lpf},
|
|
generated by \code{tools/pinout/gen\_lpf.py} against Project~Trellis's
|
|
\code{iodb.json}.\par}
|