I. Simple-CPU project's objectives
The Simple-CPU project is done to create a free RISC processor (delivered under GPL). It will be based on :
- A simple architecture and a reduced instruction set for an easy use for teaching.
- A full software suite for a reduced time to market target for industrial applications.
This processor is written in VHDL and the target development component is a Xilinx FPGA. Initialy it is based on a Spartan-3 starter kit. All development tools run under Linux.
Simple-CPU is based on a 32bits RISC architecture using load store mémory access. Communication is mainly based a Wishbone bus for a total connectivity with free IP distributed by OpenCores project.
A full software suite is delivred with that processor:
- Java written assembly program
- Java written simulator and debugger
- A C compiler based on GCC
- Debugger
- Loader
- Operating system : Xinu, eCos, Linux ...
II. Project status
February 2006 :
I have a lot of work to do in my job, plus lots of hours to preparre lessons and some personal projects. So Simple-cpu still live slower
but IUT students are finishing assembly compiler and start simulator. Gcc project is in stand by as this task is too much for there
projects hours. I'm gonna publish some Gcc porting description pages soon with the main elements of that sub-project.
December 2005 :
Not a lot of activity on the CPU core during the last month. However, a lot of things apends : first of all, Wilfrid and Michel join
me to realize a GCC compiler adaptation for SC91. More over, Bacem, Jing and Guillaume, start to realize an assembly compiler. All these
code will be commited into the CVS space.
November 2005 :
Simple-CPU is now written, mainly, interruptions and test still have to be done. During November, assembly compiler and
simulator sub-project should start ; these task will help during the testing phase. This month, GCC porting project has
started too. Alpha version of SC91-A code is ready to be downloaded in the associated zone.
October 2005 :
Processor actually runs 7 simple instructions, w/o RAM on a small ROM. Devlopment still running with
the objectiv of quicky commit a source code first version with the entire instruction set coverage.
September 2005 :
Registers file implementation is done, test looks nice and Linux development suite is smart. Implementation
will so contiune !
July 2005 :
Planning is really short but, instruction set is now defined and related documentation written. I'm so able to start the hardware
implementation soon.
June 2005:
Idea are more and more precises so I can start to write on that project on the web. Summer is gona be a nice period for development
and documentation will be a key point for that project as target is industy and educational.
May 2005 :
Xilinx starter kit is myne, compilation suite is installed on my linux desktop ... I have now to think more on that project !
III. Project Phases
Phase | Starting Date | Ending Date | Status |
Creating instruction set and documentation | 07/01/2005 | 08/02/2005 | Ending |
General architecture document | 07/10/2005 | 07/30/2005 | Running |
CPU core coding and tests | 08/01/2005 | 11/01/2005 | Running |
CPU interfaces and wishbone | 11/01/2005 | 01/01/2006 | To do |
Adding peripherical | 02/01/2006 | 05/01/2006 | To do |
Assembly compiler | 10/15/2005 | 01/30/2006 | Running |
Java simulator | 10/15/2005 | 03/15/2006 | Soon |
Loader coding | 03/01/2006 | 06/01/2006 | To do |
GCC porting | NA | NA | Starting |
XINU porting | NA | NA | To plan |
eCos porting | NA | NA | To plan |
Linux porting | NA | NA | To plan |
IV. Project sources
This project was born from different ideas, first my own wish to work on an hardware project as my proffesionnal activity drive me on
software since the two last years. Next,since a lot of years, I really like to realize a complete computer system starting from scratch
as pioneer did during sixtees (with help of modern technilogy). This to learn and explain how digital systems works.
I hope this project will help some of you to understand how a computer works internaly. I'd like to offer to community some materials
for lessons and practicles. More over, I hope some other else will realize and sell well products based on it.
That project is element as many other in free computing world, this one where you don't only buid things for the return on assets. This
world where you can do it for fun and to offer it to the community. I hope this work will help some of you to create more complex and
society usefull applications.
Any kind of contributor is welcomed on that project as I can't realized it totaly myself, so contact me to help me to keep it alive.
Disk91