OpenCores
URL https://opencores.org/ocsvn/ion/ion/trunk

Subversion Repositories ion

[/] [ion/] [trunk/] [doc/] [src/] [tex/] [intro.tex] - Blame information for rev 210

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 210 ja_rd
\clearpage
2
This file contains usage instructions and notes about the Ion CPU core project.
3
The core structure is briefly explained in sections 1 to 4. The rest of this
4
doc describes other aspects of the project: code samples, utility scripts,
5
etc.\\
6
 
7
This document is not yet a full reference on the Ion core. Instead, it should be
8
taken as a companion and commentary to the source code.\\
9
 
10
This document assumes you know in some depth the MIPS-I architecture. Terms and
11
concepts from \cite['See MIPS Run']{see_mips_run} and
12
\cite['IDT R3K Reference Manual']{r3k_ref_man} are used throughout the text.\\
13
 
14
Last modified: \today
15
\clearpage
16
 
17
\chapter{Introduction}
18
 
19
\section{Features}
20
\label{features}
21
 
22
This is a MIPS-I compatible CPU, aiming at compatibility with IDT's R3000
23
MIPS derivative:\\
24
 
25
\begin{framed}
26
\subsection{Key features}
27
\begin{enumerate}
28
    \item Binary compatible to R3000 series of CPUs.\\
29
        Can use regular R3000 toolchains despite a few unimplemented opcodes
30
        listed below.
31
    \item Kernel/user mode operation as per the architecture definition.
32
    \item Exception handling compatible to MIPS-I standard.
33
    \item 4KB direct-mapped code cache.
34
    \item 4KB direct-mapped, writethrough data cache.
35
    \item Simplified CP0, mostly compatible to R3000.
36
    \item All unimplemented opcodes trigger the proper traps.
37
    \item Includes minimalistic memory handler with interfaces for external
38
          SRAM (or FLASH) on 8- and 16-bit data bus.
39
    \item Size and speed compares favorably to other free MIPS cores.
40
    \item Fully sinchronous (rising clock edge only). No latches.
41
    \item Source HDL is vendor independent (Though it has only been tested on
42
          Xilinx and Altera synthesis tools).
43
\end{enumerate}
44
\end{framed}
45
 
46
 
47
The implementation departs from the standard R3000 in some points:
48
 
49
\begin{framed}
50
\subsection{Non-standard features}
51
\begin{enumerate}
52
    \item No MMU and no TLB -- meaning no memory address translation at all.
53
    \item Cache management simplified in an incompatible way.
54
    \item A number of R3000 opcodes are unimplemented or implemented in an
55
          incompatible way:\\
56
        Unaligned load/store instructions (formerly patented).\\
57
        All CPA instructions.\\
58
        All CP0 instructions related to TLB and the cache.
59
    \item Some other R3000 CP0 features have been omitted.\\
60
        This includes the CP0 timer.
61
    \item Interrupt mask handling simplified in an incompatible way.
62
\end{enumerate}
63
\end{framed}
64
 
65
Finally, there are some flaws and missing features meant to be fixed in
66
subsequent versions:
67
 
68
\begin{framed}
69
\subsection{Missing features to be implemented eventually}
70
\begin{enumerate}
71
    \item Hardware interrupts not implemented.
72
    \item Memory handler does not support dynamic RAM.
73
    \item Caches are not configurable or parametrizable.
74
    \item Documentation is disastrously inadequate.
75
\end{enumerate}
76
\end{framed}
77
 
78
 
79
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.