step by step cpu design using altera fpga

Started by SNFEDOGAN January 26, 2011
Hi everyone i am quite new to fpga, cpu design and group as well ...

I am sure its asked zillion of times in this group but I need urgent help

is there any book, internet page, tutorial etc, which starts from scratch and goes up to design a simple cpu, including features such as, registers, in. sets, alu etc....

I am trying to prepare "Computer Architecture" class for computer engineers and planning to use alteras fpga to design a very simple cpu.

I am not interested with ready codes or ip's , I would like to let my students and ta to follow single book for this purpose.

Kind regards.
People go for Michael D. Celitti's book.

Hennesy and Peterson's Computer Architercture.. which uses MIPS is also
good.

You can find online manuals related to this.
--
Muhammad Yasin
Lecturer,
Department of Electrical Engineering
COMSATS Institute of Inforamtion Technology
M-A Jinnah Campus, Lahore
There are a lot of different aspects of CPU design to teach. What are you trying to teach exactly? Do you have a list of topics you wish to cover or are you looking for the book to guide you in that?

What level do you assume for your students? Do they understand digital logic design? Do they know an HDL? When you say starts from "scratch", how basic is that?

There are tons of books on computer architecture. The question is where do you want to start, what do you want to cover and how detailed do you want to get?

Rick
HelloYou can use the OpenCores cpu lecture.It is well documented core, also includes a compiler.http://opencores.org/project,cpu_lecture .Also you can try the mu0 which have been developed for educational purposes. ( better but lacks of step by step description)http://www.ece.uah.edu/~lacasa/tutorials/mu0/mu0tutorial.htmlKind regards.

Hasan Erdem Yant
Istanbul Yeditepe University
Department of Computer Engineering
Department of Electrical & Electronics Engineering
Hi,

On Wed, 2011-01-26 at 12:39 +0000, SNFEDOGAN wrote:

> I am trying to prepare "Computer Architecture" class for computer
> engineers and planning to use alteras fpga to design a very simple
> cpu.
>
> I am not interested with ready codes or ip's , I would like to let my
> students and ta to follow single book for this purpose.

there is a single book which covers everything from gates,
combinational logic design, sequential logic design, and
digital building blocks, up to instruction set architecture
and its implementation by computer microarchitecture:

"Digital Design and Computer Architecture" by David Money Harris
and Sarah L. Harris (Morgan Kaufman, 2007).

This book is in many aspects a condensation of two other
good books, which I took some years ago to design a course
similar to the one you describe:

J. Wakerly: Digital Design
D.A. Patterson, J.L. Hennessy: Computer Organization & Design

In this course the students design an alphanumeric terminal,
an interface for a PC keyboard, an interface to a Flash-ROM,
and finally a 32-bit CPU with a reduced instruction set. They
have to implement the whole system on a Spartan-3 FPGA, which
is mounted on a board designed by XESS ( http://www.xess.com ).

Hellwig
On 26/01/2011 12:39, SNFEDOGAN wrote:
> Hi everyone i am quite new to fpga, cpu design and group as well ...
>
> I am sure its asked zillion of times in this group but I need urgent help
>
> is there any book, internet page, tutorial etc, which starts from scratch and goes up to design a simple cpu, including features such as, registers, in. sets, alu etc....
>
> I am trying to prepare "Computer Architecture" class for computer engineers and planning to use alteras fpga to design a very simple cpu.
>
> I am not interested with ready codes or ip's , I would like to let my students and ta to follow single book for this purpose.

Rapid Prototyping of Digital Systems by Hamblen et al is very good. I
got my copy cheap via Amazon, it's normally an expensive book.

Leon
--
Leon Heller
G1HSM
I've been teaching a similar course to second year undergraduates for a
number of years and have been using Computer Systems, Organization &
Architecture, John D Carpinelli as the core text. He doesn't offer an
implementation in HDL but provides very clear explanations of the basic
structures that are straghtforward to implement.

His 'Relatively Simple CPU' forms an excellent base on which the students
can extend the design. He provides both hard-wired and micro sequencer
control units, discusses pipelines, interrupts etc.

It runs well in an Altera FPGA although I had to add wait states into the
load accumulator instruction.

Other texts worth considering, covering both VHDL and providing a simple
CPU example are

Digital Design with VHDL, Mark Zwolinski
and
Digital Design, An Embedded Systems Approach Using VHDL, Peter J Ashenden.

The latter book is available in a Verilog version as well.

Regards,
Nigel.
--- In f..., "SNFEDOGAN" wrote:
>
> Hi everyone i am quite new to fpga, cpu design and group as well ...
>
> I am sure its asked zillion of times in this group but I need urgent help
>
> is there any book, internet page, tutorial etc, which starts from scratch and goes up to design a simple cpu, including features such as, registers, in. sets, alu etc....
>
> I am trying to prepare "Computer Architecture" class for computer engineers and planning to use alteras fpga to design a very simple cpu.
>
> I am not interested with ready codes or ip's , I would like to let my students and ta to follow single book for this purpose.
>
> Kind regards.
>

There is a very old book "Computer Architecture" by Caxton Foster that has a VERY complete description of an elementary computer called BLUE - the color of the box. In subsequent chapters the design is expanded with index registers and such.

There are some 'front panel' details that won't translate directly to VHDL but these are easily modified.

A modern implemntation by Al Williams complete with an assembler is described here:
http://blue.hotsolder.com/wiki/Main_Page

There is a video here:
http://www.youtube.com/watch?v=dt4zezZP8w8

All of the code is available at OpenCores and the instruction set (and hardware) has been expanded greatly. I haven't implemented it but it looks like an interesting project.

Porting to the Altera platform should be straightforward.

I have the second edition of the book (c) 1976. It is worthwhile to note that the original book was written in 1970 so MUCH of the material is seriously obsolete. The book is available from www.alibris.com for about $1.

Richard
All:

An old book on CPU design that I have found useful is "Bit-Slice Microprocessor Design" by John Mick and Jim Brick. (c) 1980 ISBN 0-07-041781-4.

As the title says, it is about Bit-Slice designs. which are a pre-FPGA technology. However, there are a lot of similarities with VHDL/FPGA and it may be worth the trouble to converting to FPGA.

The book covers general CPU design, and has lots of details. And it is well-written.

When I was doing bit-slice in the late 1980's , we considered it the "bible" of the field.

-Steve Younger
I know I will sound rude. Or even very rude, but:

>(...)i am quite new to fpga, cpu design (...)

together with:

>(...)I am trying to prepare "Computer Architecture" class for
> computer engineer (...) my students (...)

makes me strongly surprised. I do have a strong feeling that You are NOT a right person to teach future engineers about CPU design.

As I'm not a right person to teach about modern sculpture.

Regards,
Tomasz Sztejka