1 |
57 |
skordal |
% The Potato Processor - Processor Datasheet
|
2 |
|
|
% (c) Kristian Klomsten Skordal 2015 <skordal@opencores.org>
|
3 |
|
|
% Report bugs and issues on <http://opencores.org/project,potato,bugtracker>
|
4 |
|
|
|
5 |
|
|
\documentclass[10pt,a4paper]{article}
|
6 |
|
|
|
7 |
|
|
\usepackage[pdftitle={The Potato Processor Datasheet},
|
8 |
|
|
pdfauthor={Kristian Klomsten Skordal}]{hyperref}
|
9 |
|
|
\usepackage{graphicx}
|
10 |
|
|
\usepackage{multicol}
|
11 |
|
|
\usepackage{enumitem}
|
12 |
|
|
\usepackage{titlesec}
|
13 |
|
|
\usepackage{tabularx}
|
14 |
|
|
\usepackage[margin=2.0cm,includefoot,footskip=10pt]{geometry}
|
15 |
|
|
\usepackage[british]{babel}
|
16 |
|
|
|
17 |
|
|
\renewcommand{\familydefault}{\sfdefault}
|
18 |
|
|
|
19 |
|
|
\titleformat{\section}[block]{}{}{0pt}{\normalfont\large\bfseries}
|
20 |
|
|
\pagestyle{empty}
|
21 |
|
|
|
22 |
|
|
\setlength{\parindent}{0pt}
|
23 |
|
|
\setlist[itemize]{leftmargin=*,nosep}
|
24 |
|
|
|
25 |
|
|
\begin{document}
|
26 |
|
|
|
27 |
|
|
\begin{minipage}{0.5\textwidth}
|
28 |
|
|
\raggedright
|
29 |
|
|
\includegraphics[width=0.6\textwidth]{opencores.png}
|
30 |
|
|
\end{minipage}
|
31 |
|
|
\begin{minipage}{0.5\textwidth}
|
32 |
|
|
\raggedleft\Large\bf
|
33 |
|
|
\textsf{The Potato Processor\\Datasheet}
|
34 |
|
|
\end{minipage}
|
35 |
|
|
|
36 |
|
|
\vspace{0.5em}
|
37 |
|
|
\noindent\rule{\linewidth}{1pt}\\
|
38 |
|
|
|
39 |
|
|
\begin{minipage}[t]{0.48\textwidth}
|
40 |
|
|
|
41 |
|
|
\section{Architecture}
|
42 |
|
|
\includegraphics[width=\textwidth]{diagram.png}
|
43 |
|
|
|
44 |
|
|
\section{Features}
|
45 |
|
|
|
46 |
|
|
\begin{itemize}
|
47 |
|
|
\item Supports the complete 32-bit RISC-V base integer ISA (RV32I) version 2.0
|
48 |
|
|
\item Supports machine mode as defined by the RISC-V supervisor extensions version 1.7
|
49 |
|
|
\item Includes a hardware timer with microsecond resolution and compare interrupt
|
50 |
|
|
\item 8 IRQ inputs that can be invidually enabled
|
51 |
|
|
\item Classic 5-stage RISC pipeline
|
52 |
|
|
\item Instruction cache
|
53 |
|
|
\item Wishbone interface
|
54 |
|
|
\item Automatic test suite
|
55 |
|
|
\end{itemize}
|
56 |
|
|
|
57 |
|
|
\section{Interface}
|
58 |
|
|
|
59 |
|
|
The processor includes a wishbone interface conforming to the B4 revision of the
|
60 |
|
|
wishbone specification.\\
|
61 |
|
|
|
62 |
|
|
\begin{tabularx}{\textwidth}{|l|X|}
|
63 |
|
|
\hline
|
64 |
|
|
Interface type & Master \\
|
65 |
|
|
Address port width & 32 bits \\
|
66 |
|
|
Data port width & 32 bits \\
|
67 |
|
|
Data port granularity & 8 bits \\
|
68 |
|
|
Maximum operand size & 32 bits \\
|
69 |
|
|
Endianess & Little \\
|
70 |
|
|
Sequence of data transfer & In-order \\
|
71 |
|
|
\hline
|
72 |
|
|
\end{tabularx}
|
73 |
|
|
|
74 |
|
|
\section{Programming}
|
75 |
|
|
|
76 |
|
|
Tools for writing programmes for the RISC-V architecture are available from the
|
77 |
|
|
RISC-V project, at:\\[1em]
|
78 |
|
|
\url{https://github.com/riscv/riscv-tools}\\
|
79 |
|
|
|
80 |
|
|
Use the \texttt{new\_privileged\_isa} branch to get tools that work with the
|
81 |
|
|
current supervisor extensions.
|
82 |
|
|
|
83 |
|
|
\end{minipage}\hfill
|
84 |
|
|
\begin{minipage}[t]{0.48\textwidth}
|
85 |
|
|
|
86 |
|
|
\section{Application}
|
87 |
|
|
\includegraphics[width=\textwidth]{example.png}
|
88 |
|
|
|
89 |
|
|
\section{Signals}
|
90 |
|
|
|
91 |
|
|
The processor is provided by a VHDL module named \texttt{pp\_potato}. The signals of
|
92 |
|
|
the module are all active high and are as follows:\\
|
93 |
|
|
|
94 |
|
|
\begin{tabularx}{\textwidth}{|l|l|X|}
|
95 |
|
|
\hline
|
96 |
|
|
\textbf{Name} & \textbf{Width} & \textbf{Description} \\
|
97 |
|
|
\hline
|
98 |
|
|
\texttt{clk} & 1 & Processor clock \\
|
99 |
|
|
\texttt{timer\_clk} & 1 & 10~MHz timer clock \\
|
100 |
|
|
\texttt{reset} & 1 & Reset signal \\
|
101 |
|
|
\hline
|
102 |
|
|
\texttt{irq} & 8 & IRQ inputs \\
|
103 |
|
|
\hline
|
104 |
|
|
\texttt{wb\_adr\_out} & 32 & Wishbone address \\
|
105 |
|
|
\texttt{wb\_sel\_out} & 4 & Wishbone byte select \\
|
106 |
|
|
\texttt{wb\_cyc\_out} & 1 & Wishbone cycle \\
|
107 |
|
|
\texttt{wb\_stb\_out} & 1 & Wishbone strobe \\
|
108 |
|
|
\texttt{wb\_we\_out} & 1 & Wishbone write enable \\
|
109 |
|
|
\texttt{wb\_dat\_out} & 32 & Wishbone data output \\
|
110 |
|
|
\texttt{wb\_dat\_in} & 32 & Wishbone data input \\
|
111 |
|
|
\texttt{wb\_ack\_in} & 1 & Wishbone acknowledge \\
|
112 |
|
|
\hline
|
113 |
|
|
\end{tabularx}\\
|
114 |
|
|
|
115 |
|
|
Additional signals are used to implement a host-target interface used in the automatic testing
|
116 |
|
|
environment. These signals have names starting with \texttt{fromhost} and \texttt{tohost} and
|
117 |
|
|
should be left unconnected for normal use.\\
|
118 |
|
|
|
119 |
|
|
\section{Specifications}
|
120 |
|
|
|
121 |
|
|
The base RISC-V instruction set and the privileged extensions are available in the
|
122 |
|
|
specifications published at:\\
|
123 |
|
|
|
124 |
|
|
\url{http://riscv.org/download.html}.
|
125 |
|
|
|
126 |
|
|
\end{minipage}
|
127 |
|
|
|
128 |
|
|
\vfill
|
129 |
|
|
\noindent\rule{\linewidth}{1pt}
|
130 |
|
|
{\small
|
131 |
|
|
Project page: \url{http://opencores.org/project,potato}\\
|
132 |
|
|
Report bugs and issues on \url{http://opencores.org/project,potato,bugtracker}}
|
133 |
|
|
|
134 |
|
|
\end{document}
|
135 |
|
|
|
136 |
|
|
|