Yellow Star (2001)

The submitted report and appendix are available along with some pdf files of the schematics: CPU, MMU and shifter
NEWS:Do you have experience in schematics? Would you like to convert the schematics to another package? (Cadence for example?) Please help.
Yellow Star was my third year project as a part
of my B.Sc. degree from Manchester University. Yellow Star is an implementation
of the 32 bit R2000/R3000 processor.
I got all the information about the MIPS architecture
I needed from"Mips
RISC Architecture" By Gerry Kane and Joe Henrich
I wish I could recommend the book but after months
of working with it I have become tired of it and the whole MIPS architecture.
I also used several web sites to find extra information not covered by
the book.
I started off by finding a good pipeline to fit the
instruction set. Finally settling on this
one.
As you can see it uses both sides of the clock which
must be how the original MIPS processors were made. I have implemented
every feature of the non interlocked pipeline like branch shadowing and
load delays. A lot of the 'features' were a big clue as to the structure
of the pipeline.
The R3000 isn't just a simple processor. It also
includes exception handling, up to 3 Coprocessors, Memory management with
a 64 entry fully associative TLB, independent instruction and data caches,
6 external interrupt lines, a kernel mode and a multiplyer/divider (not
yet implemented). All enough to run a full operating system.
I have now finished the first beta version of the processor and tested it on this XESS Xilinx Vertex Board. As you can see it has a host of devices. I am hoping to implement an MP3 player loading the data from the Serial port and decoding it then playing using the Stereo Codec on board. Other ideas were to compile Linux to un on the board. As you can see there is a VGA port and a PS/2 port for the mouse. Unfortunately I have very little experience in this and I will probably start small.
This
is a picture of the data path. You can see the data forwarding at the bottom
and the Program Counter circuits at the top. The register bank is made
from two copies of two phase (Write/Read) RAM banks to allow dual read
and write access. The Shifter is constructed from 5 32bit multiplexers
and a mask.
The
MMU Is constructed from a 64 entry CAM. Unfortunately CAM is expensive
on vertex devices so I created a 8x8 grid and placed a wired OR if any
of the locations match then the address is reconstructed from the grid
coordinates and passed to the RAM. This way only 27 bits need to be stored
in the CAM rather than 64. This uses only 128 tristates rather than 4096.
The
full processor looks like this:
As you can see its quite a mess as I like to see the control on top
level. Currently its just about to be tested running some code. An earlier
version of the CPU was tested and run at 50MHz without errors. I am hoping
to make a 100MHz version. The project is available at OpenCores.
It is freely available to any person or company for any use but as a request
could anyone using it please inform me of its application. There are instructions
which are patented by MIPS and have been removed. Reimplementing them will
break patents owned by MIPS. MIPS have noticed this project and have sent
me threatening letters like this one. I advise
you to set your compiler to not use them as MIPS will be very aggresive
over their patent rights.
If you have any comments then E-Mail me at: CB at CS.MAN.AC.UK
Red
Star 2003 is the processor I am currently working on. It is partly
based on yellow star but asynchronous. It is created by taking the synchronous
design and using direct translation to convert it to asynchronous form.
*Yellow Star is not a MIPS processor and is not MIPS processor compatible.
MIPS(R), R2000(R)and R3000(R) are registered trademarks of MIPS Technologies,
Inc. in the United States and other countries. OpenCores and Charles Brej
are not affiliated in any way with MIPS Technologies, Inc.