How to design a processor

Advice: Keep it simple

The most reliable part is the part that is not in the design !
 
Instruction set
Microarchitecture
Control unit
Microprogramming
Tools
Reading


This page aims to promote "how to" in processor design.  Promoting  the National IC Design Contest (hosted by National Electronics and Computer Technology of Thailand) for the digital design part.

  1. Design an instruction set
  2. Design a microarchitecture
    1.   Draw functional blocks
    2.   Write microsteps
  3. Write a simulator
  4. Write an assembler
  5. Implement the microarchitecture
  6. Implement the control unit
  7. Test and Debug (the most time consuming task)
Try to design a "minimum" instruction set, the set that covers the intended applications.  The number of instruction effects the complexity of the design and the testing, especially the testing.

Instruction Set

  Examples
  8-bit      Z80     Z8     6809    2650     AVR
  16-bit    S1    PDP-11     CompactRISC  (  ref  )     32016
  32-bit    32032     S2      ARM
  My collection    CPU3     FRIDAY
 

Microarchitecture

  S1   FRIDAY

Control unit

  hardwired
  microprogrammed

Microprogramming

  S1 microprogramming
 

Tools

  Assembler     a3 (for CPU3)    as2  (for S2)
  Simulator     CPU3    S1 (see tools section)     S2
  Microprogramming     S1 microprogram  (see tools section)
  S2 processor tools
 

Reading

My papers on intruction set design


last update 9 Oct 2003
P. Chongstitvatana