Computer Laboratory > Teaching > Course material 2009–10 > Computer Design


Computer Design

Principal lecturer: Dr Simon Moore
Taken by: Part IB
Past exam questions
Exercise sheet (cam domain only)


This course aims to teach students how to design processors, starting with the Verilog hardware description language and proceeding onto the hardware/software processor interface and processor design implementation issues.


This is a 22 lecture course with 18 of the lectures delivered by Simon Moore and 4 lectures worth of material are delivered via a web based tutor (IVC).

Note that this course is based upon the merger of ECAD (2008) and Computer Design(2008) from last year.

Recommended books

  • Harris, D.M. & Harris, S.L. (2007). Digital Design and Computer Architecture. Morgan Kaufmann.
  • Hennessy, J.L. & Patterson, D.A. (2002). Computer Architecture: A Quantitative Approach. Morgan Kaufmann (3rd ed.).
  • Hennessy, J.L. & Patterson, D.A. (1998). Compuer Organization and Design. Morgan Kaufmann (2nd ed., as an alternative to the above).

Handouts and practicals

  • Copies of the handouts will be made available at the first lecture and subsequently from the Student Administrator at the Computer Laboratory. Please note that the handouts only give an outline of the course. Annotations and additional examples are given in the lectures.
  • If paper copies of the handouts are not available for some reason, the PDF of the notes is here for people inside the domain.
  • ECAD+Architecture workshops (the practical component to this course)

Example code

  • Manchester Baby machine in SystemVerilog and Java: see the EACD+Arch page on the Baby
  • Simplified MIPS processor simulated in Java:
  • Simplified MIPS processor in Verilog: (unzip to U:\simplemips\ since some paths in the project are absolute)
    • Quick start to simulate using ModelSim...Start ModelSim and then:
    • open project simplemips.mpf in the above zip file
    • compile -> compile all
    • simulate -> Start Simulation..., select work.testBench to simulate, click OK
    • simulate -> Run -all
    • For further information see the tutorial on ModelSim


  • Lecture 9 - the numbers for break-points are the assembler line numbers rather than addresses of the instructions.


Links used in Lecture 10:

Other links: