S3 processor on Nexys2 / Nexys3 boards

This book is in public access. You can read it, print it, use it for your lessons or leisure. Nevertheless copyright respect is appreciated- Creative Commons License BY-NC 4.0 - and it would be appreciated to contact me for:

Special thanks to Chadi ALJUNDI for his traduction from french to english :-) corrections are always welcome!

French touch

In the design, some french words are still present. I'll give you a translation in this kind of window!

    • Identification of bugs of all kinds:-(
    • Use in your classes, tutorials
    • Extension to other platforms, other environments
    • Extension of S3 processor (you can encode up to 2048 different ALU functions)
    • Exercises with or without corrections,
    • ...

All your contributions will be, if you agree, published on this site.

As in the great restaurants, if you enjoy or if it is indigestible, a guestbook is available to deposit your comments.

But above all, have fun in the discovery of computer architecture !!!

Constantly, in computer science education, few modules concerning computer architecture are proposed. Many students, even enthusiast programmers, video game designers are wondered of the interest of such a course. Yes millions if not billions of people are actually using computers without knowing what's going on "inside" and it's not so bad for them! But a computer scientist is not a user like the others, he will in one way or another be applied in hiding the functionality of a complex electronic system for average users while ensuring proper exploitation of available resources. What is more natural when you want to hide something than to know what it is!

Understanding the functionality of a modern processor is a challenging task which requires regular updating. The design of such a processor is done by research teams and highly specialized engineers who are indeed quite rare in the labor market. On the other side, the evolution of architectural foundations are very slow. Since the postwar period, a functional model derived from Von Neumann’s architecture is used. Building a mini processor that follows this model becomes realistic for a beginner student with no specific initial knowledge. What are the outcomes he can acquire?

    • Understand that a program exists and works only because there is an electronic system that provides a number of elementary operations. Without processor, there would be no computer science.
    • Master the level difference between a program written in a language and an executable program on a processor. Compilers are designed by computer scientists.
    • When writing programs, the programmer must think about the execution on the machine. Nothing is free on a processor.
    • Realise the importance of the timing concept, the duration in any computer system. Nothing is instantaneous on a processor.

Here's the challenge of this book! You will build a mini processor step by step. When I say “build” this is the right word: you will be able to test all the results of your design for each step of the twelve lessons on an electronic board. Without the board you can still use a simulator that accurately reproduces the behavior.

What is this board? Once a processor is designed, it must pass to a "foundry" to produce large sets of identical copies. This is an heavy and expensive industrial process that is suitable for a manufacturer like Intel, but not for a group of students. There are on the market manufacturers of programmable microchips. A piece of silicon where you can instantiate your design without going through the foundry. This is what you need here. The selected board using a Xilinx chip will be presented at the first lesson.

Designing your processor requires a “design” environment. The environment itself is a computer program that runs on your PC and thus on a processor. The purpose of this environment is to produce the program of the programmable chip. Therefore, we use the Xilinx ISE environment. Each manufacturer offers its own programmable chip design environment. ISE offers a free version that will be discovered during lesson one and as you progress in your developments.

There is a number of books on computer architecture, this is not the direction I wanted to give to this book / website but I suggest you read at least one. Here, I offer you 12 lessons (one semester) based solely on practical work. The first five lessons will allow you to become familiar and implement the ABC combinatorial and sequential logic in ISE. Subsequently you can, step by step, build the necessary features for your S3 processor (the name comes from semester 3, undergraduate students who discover computer science in second year). At each step the simulation and actual implementation on programmable chip will validate your developments. To conclude the project, programs can be written and run on your S3 processor instantiated on Xilinx and/or simulated with Isim, the ISE simulator. Finally to conclude these twelve lessons extension directions for S3 processor will allow you to keep yourself developing your own processor.

Consider this as an educational game where you build your own processor. Have fun!


S3 processor synthesized by ISE after 12 lessons!