How to design a processor Advice: Keep it simple The most reliable part is the part that is not in the design ! Design an instruction set Design a microarchitecture Draw functional blocks Write microsteps Write a simulator Write an assembler Implement the microarchitecture Implement the control unit 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 Tools Assembler Simulator Microprogramming last update 9 Oct 2003 P. Chongstitvatana