Computer Laboratory

Course material 2010–11

Computer Design

Principal lecturer: Dr Simon Moore
Taken by: Part IB
Past exam questions: Computer Design, ECAD
Information for supervisors (contact lecturer for access permission)


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 Cambridge SystemVerilog web based tutor.

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.
  • Exercise sheet (PDF) which whould be completed in full
  • 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


Links used in Lecture 10:

Other links: