% The Potato Processor - Processor Datasheet % (c) Kristian Klomsten Skordal 2015 -2017 % Report bugs and issues on \documentclass[10pt,a4paper]{article} \usepackage[pdftitle={The Potato Processor Datasheet}, pdfauthor={Kristian Klomsten Skordal}]{hyperref} \usepackage{graphicx} \usepackage{multicol} \usepackage{enumitem} \usepackage{titlesec} \usepackage{tabularx} \usepackage[margin=2.0cm,includefoot,footskip=10pt]{geometry} \usepackage[british]{babel} \renewcommand{\familydefault}{\sfdefault} \titleformat{\section}[block]{}{}{0pt}{\normalfont\large\bfseries} \pagestyle{empty} \setlength{\parindent}{0pt} \setlist[itemize]{leftmargin=*,nosep} \begin{document} \begin{minipage}{0.5\textwidth} \raggedright\huge \textsf{The Potato Project} \end{minipage} \begin{minipage}{0.5\textwidth} \raggedleft\huge \textsf{Processor Datasheet} \end{minipage} \vspace{0.5em} \noindent\rule{\linewidth}{1pt}\\ \begin{minipage}[t]{0.48\textwidth} \section{Architecture} \includegraphics[width=\textwidth]{diagram.png} \section{Features} \begin{itemize} \item Supports the complete 32-bit RISC-V base integer ISA (RV32I) version 2.0 \item Supports machine mode from the RISC-V Privileged Architecture version 1.10 \item Includes a hardware timer with microsecond resolution and compare interrupt \item Up to 8 IRQ inputs that can be individually enabled \item Classic 5-stage RISC pipeline \item Wishbone interface \item Optional instruction cache \item Automatic test suite \end{itemize} \section{Interface} The processor includes a wishbone interface conforming to the B4 revision of the wishbone specification.\\ \begin{tabularx}{\textwidth}{|l|X|} \hline Interface type & Master \\ Address port width & 32 bits \\ Data port width & 32 bits \\ Data port granularity & 8 bits \\ Maximum operand size & 32 bits \\ Endianess & Little \\ Sequence of data transfer & In-order \\ \hline \end{tabularx} \section{Specifications} \center\includegraphics[width=0.7\textwidth]{riscv.png} \url{http://riscv.org/specifications/} \center\includegraphics[width=0.7\textwidth]{opencores.png} \url{http://opencores.org/opencores,wishbone} \end{minipage}\hfill \begin{minipage}[t]{0.48\textwidth} \section{Example Application} \includegraphics[width=\textwidth]{example.png} \section{Signals} The processor is provided by a VHDL module named \texttt{pp\_potato}. All signals are active high and the following signals are provided:\\ \begin{tabularx}{\textwidth}{|l|l|X|} \hline \textbf{Name} & \textbf{Width} & \textbf{Description} \\ \hline \texttt{clk} & 1 & Processor clock \\ \texttt{timer\_clk} & 1 & 10~MHz timer clock \\ \texttt{reset} & 1 & Reset signal \\ \hline \texttt{irq} & 8 & IRQ inputs \\ \hline \texttt{wb\_adr\_out} & 32 & Wishbone address \\ \texttt{wb\_sel\_out} & 4 & Wishbone byte select \\ \texttt{wb\_cyc\_out} & 1 & Wishbone cycle \\ \texttt{wb\_stb\_out} & 1 & Wishbone strobe \\ \texttt{wb\_we\_out} & 1 & Wishbone write enable \\ \texttt{wb\_dat\_out} & 32 & Wishbone data output \\ \texttt{wb\_dat\_in} & 32 & Wishbone data input \\ \texttt{wb\_ack\_in} & 1 & Wishbone acknowledge \\ \hline \end{tabularx}\\ An additional output, \texttt{test\_context\_out} is used to provide feedback to testbenches when running automated tests. This port should be left unconnected.\\ \section{Tools and Utilities} Tools for writing applications for the RISC-V architecture are available from the RISC-V project, at:\\[1em] \url{https://github.com/riscv/riscv-gnu-toolchain}\\ \end{minipage} \vfill \noindent\rule{\linewidth}{1pt} {\small Project page: \url{https://github.com/skordal/potato}\\ Report bugs and issues on \url{https://github.com/skordal/potato/issues}} \end{document}