}
+\frame{\frametitle{What options are available (at time of writing)?}
+
+ \begin{itemize}
+ \item Commercial licensed. Cost: unknown. Flexibility: unknown.
+ Language: unknown. Capability for auto-generation of Docs:
+ unknown. Capability for auto-generation of ancillary
+ resources: unknown.
+ Suitability for wide range of systems: unknown.
+ \vspace{4pt}
+ \\
+ Suitability for saving RISC-V ecosystem money: { \bf NONE }\\
+ Suitability for collaboration: {\bf ZERO} (i.e. don't bother)
+ \item SiFive IOF. License: Good! Flexibility: not so good.
+ Language: chisel3. Capability for auto-generation of Docs:
+ none. Capability for auto-generation of ancillary resources: partial.
+ Suitability for wide range of systems: not so good.
+ \vspace{4pt}
+ \\
+ Suitability for saving RISC-V ecosystem money: { \bf Low }\\
+ Suitability for collaboration: {\bf GOOD} (but: written in Chisel3)
+ \item \bf{Summary: NO suitable Libre-licensed pinmux code exists}
+
+ \end{itemize}
+}
+
+
\frame{\frametitle{Associated Extras}
\begin{itemize}
- \item Design Specification
- \item Scenario analysis (whether the chip will fit "markets")
+ \item Design Specification (what markets to target)
+ \item Scenario analysis ({\bf whether} the chip will fit "markets")
\item Documentation: Summary sheet, Technical Reference Manual.
\item Test suites
\item Control Interface (AXI4 / Wishbone / TileLink / other)
}
+
+\frame{\frametitle{Example: 7 banks, 4-way mux, 160 pins}
+ \begin{center}
+ \includegraphics[height=1.5in]{example_pinmux.jpg}\\
+ 7 "banks" with separate VCC. Each no more than 32 bits
+ \end{center}
+ \begin{itemize}
+ \item { \bf 17,500 lines of auto-generated HDL (and climbing)}
+ \item { \bf 12,500 lines of auto-generated Summary/Analysis}
+ \item Technical Reference Manual expected to be 100+ pages
+ \end{itemize}
+}
+
+
\frame{\frametitle{Reduce workload, reduce duplication, reduce risk and cost}
\begin{itemize}
\frame{\frametitle{Design Spec and Scenario Analysis}
\begin{itemize}
- \item Analyse the target markets that the chip will sell in\\
+ \item Analyse the target markets (scenarios) that the chip will sell in\\
(multiple markets increases sales volume, reduces chip cost)
\vspace{4pt}
+ \item Scenarios represent target markets: ICs to be connected\\
+ (GPS, NAND IC, WIFI etc. May require prototype schematics
+ drawn up, or client-supplied schematics analysed).
+ \vspace{4pt}
\item Create a formal (python-based) specification for the pinmux
\vspace{4pt}
- \item Add scenarios then check that they meet the requirements\\
+ \item Add scenarios (in python), check that they meet requirements\\
{ \bf (before spending money on hardware engineers!) }
\vspace{4pt}
- \item Scenarios represent target markets: ICs to be connected\\
- (GPS, NAND IC, WIFI etc. May require draft schematics
- drawn up, or client-supplied schematics analysed).
- \vspace{4pt}
\item Analyse the scenarios: if pins are missing, alter and repeat.\\
\vspace{4pt}
\item Eventually the pinmux meets all requirements...\\
-\frame{\frametitle{Example: 7 banks, 4-way mux, 160 pins}
- \begin{center}
- \includegraphics[height=1.7in]{example_pinmux.jpg}
- \end{center}
- \begin{itemize}
- \item { \bf 17,500 lines of auto-generated HDL (and climbing)}
- \item { \bf 12,500 lines of auto-generated Summary/Analysis}
- \item Technical Reference Manual expected to be 100+ pages
- \end{itemize}
-}
-
-
\frame{\frametitle{Muxer cases to handle (One/Many to One/Many) etc.}
\begin{itemize}
\item GPIO FN's input muxer is nothing more than an AND gate\\
(you never route more than one pin to one GPIO)
\vspace{6pt}
- \item Any other FN with only 1:1 In also an AND gate \\
+ \item Any other FN with only 1:1 on its IN also just an AND gate \\
(this just always happens to be true for GPIO)
\vspace{6pt}
\item Not all FNs have input capability: clearly they will not
\frame{\frametitle{Summary}
\begin{itemize}
- \item Actual muxing, like SRAM cells, is deceptively simple
- \vspace{10pt}
+ \item Value of Libre/Open pimux dramatically underestimated\\
+ (and does not presently exist: SiFive's IOF not suitable as-is)\\
+ {\bf Only current option: license a commercial Pinmux }
+ \item Actual muxing (like SRAM cells) is deceptively simple
\item Actual pinmuxes are enormous: auto-generation essential
- \vspace{10pt}
\item HDLs completely unsuited to auto-generation task\\
- (TRM, docs): { \bf Modern OO language features needed}
- \vspace{10pt}
- \item Verification and auto-generation of different HDLs far
- easier in a Modern OO language
- \vspace{10pt}
+ (TRM, docs): {\bf Modern OO language needed i.e. python}
+ \item Scenario Analysis / Verification and auto-generation of
+ different HDLs far easier in a Modern OO language\\
+ (better libraries, more developers)
\item Standardisation for RISC-V saves implementors from huge
duplication cost (HDL, firmware, docs, maintenance)
- \vspace{10pt}
\item { \bf Ultimately it's about saving money and reducing risk }
\end{itemize}
}