Final project for digital systems  2004 

(Feb 2005)

The final project aims to demonstrate the working system of your design of a processor running the NOS operating system with your demo program on top.

The demo program should shows the following:

1)  multi-task
2)  shared resource such as accessing shared variables
3)  real-time:  use timer.

The final submission composed of:

1)  a complete report                        50%
2)  a source code with documents             30%
3)  demonstration of your working system      20%

You should make effort to make your system demonstrable.  Non-working system will leave a bad impression on the quality of your work.

The report should include the following topics:

1   description of your processor
1.1)  general description
1.2)  data path
1.3)  instruction set: semantic of each instruction, with instruction encoding and format.

2   processor simulator
2.1)  description of how your simulator work (not how to use it)
2.2)  a test program to show that the processor in simulation is working properly.
2.3)  some kind of performance measurement, such as, how many instruction it use to run the test program. (some meaningful program).

3  description of NOS: what is it? how it work?
3.1)  pseudo code to describe the interrupt of NOS
3.2)  pseudo code to describe three main functions: switchp, wait, signal

4  extension of NOS to do: message passing (mail-box) and timer
4.1)  describe your implementation of them (in Nut)
4.2)  show some test program that it works.

5  description of your demo program
5.1)  what does it do?
5.2)  how it works?
5.3)  some measurement of performance, such as, how many instruction it use to switch a  task (or how many task switching per second) etc.

6   description of your system software: code generator
6.1)  what is your strategy to generate code?
6.2)  show some code sequence that is tricky (or interesting) in your output with some explanation how it does it.

7   conclusion
7.1)  discuss your processor, is it good?  what you want to do to improve the next version? (after all these activities that you go through).
7.2)  discuss the NOS.  Can you think of a simple extension to it to make it more useful?
7.3)  really a final word, what do you learn in this course?  what do you wish you have learned in this course?  Any improvement for the future class is most welcome.

the deadline for hand-in is  18 Feb 2005

If you have any question, or any emergency (such as you cannot hand-in by the deadline), please contact me, or email

prabhas at chula dot ac dot th

Prabhas Chongstitvatana
1 Feb 2005