Skip to navigation | Skip to main content | Skip to footer

This is an archived syllabus from 2019-2020

COMP22111 Processor Microarchitecture syllabus 2019-2020

COMP22111 Processor Microarchitecture

Level 2
Credits: 10
Enrolled students: 53

Course leader: Paul Nutter

Additional staff: view all staff


  • Pre-Requisite (Compulsory): COMP12111

Additional requirements

  • Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.

Assessment methods

  • 50% Written exam
  • 50% Coursework
Sem 1 Lecture 1.3 Fri 09:00 - 10:00 -
Sem 1 Lecture 1.3 Thu 15:00 - 16:00 -
Sem 1 w3+ Lab Toot 1 Mon 09:00 - 11:00 G
Sem 1 w3+ Lab Toot 1 Thu 13:00 - 15:00 F
Themes to which this unit belongs
  • System-on-Chip


This module aims to develop the two key aspects of COMP12111, namely hardware design and microprocessors. COMP12111 gave an overview of the hardware development process; COMP22111 builds on these skills to introduce and exercise industrially relevant hardware skills with a design flow from concept to implementation. It used microprocessors as design examples to illustrate and reinforce how machine code, output from a compiler, is interpreted and executed by a computer.

Much of the emphasis is on practical work and the laboratories take a microprocessor design through from an instruction set specification to a physical FPGA implementation. The lectures complement this and extend the scope towards the processes necessary to turn this into custom silicon.


The module aims to give a view of the role of a digital hardware designer, taking an idea and implementing it as a silicon chip. A processor is a representative example of logic used in today's chips, also giving further insight into how computers actually work.

Having completed the module you should have developed the confidence to be able to take a concept and realise it in hardware. You should also appreciate the test and verification processes involved so that your chips work efficiently and reliably ... first time, every time!


1. Introduction (1 lecture)
Overview, introduction to the lab, approaches to design and the management of complexity

2. Instruction Set Architectures (2 lectures)
RISC v CISC, recap of MU0, Stump ISA, other architectures

3. Review of sequential systems (2 lectures)
The processor as a sequential system, datapath and control, register transfer level (RTL) design, Mealy and Moore finite state machines.

4. Advanced Verilog (3 lectures)
Verilog recap, tasks and functions, structural Verilog, verification & testing in Verilog, the Verilog simulator.

5. Designing and Implementing Processors (2 lectures)
Implementation of processors from the ISA, architectural design, RTL design, Verilog implementation. 

6. Improving Processor Performance (1 lecture)
Superscalar, multicore and pipelining, examples of processor speedup, hazards.

7. Specialised Processing Architectures (1 lecture)
Examining DSPs, floating-point (and other) coprocessors, SIMD and vector extensions as well as VLIW.

8. Microarchitectural Structures (1 lecture)
Basic building blocks, including register files, FIFOs, RAMs, CAMs, arithmetic circuits (adders and multipliers) and shifters.

9. FPGAs (1 lecture)
FPGA mode of operation and its spatial programming model as well as application examples.

10. Hardware Design Examples (1 lecture)
Investigating a few circuits (e.g., digital filters, sorters, PWMs) and understanding their design factors.

11. Electronics (1 lecture)
Ohm's and Kirchhoff's laws; inverters, NAND and NOR gates; MOS transistors and CMOS technology design factors.

12. Technology (1 lecture)
Standard Cell design methodology, PLA, Multiplexer, look-up table technology.

13. Computer Aided Design (CAD) Tools (1 lecture)
Logic synthesis, constraints, Place & Route, DRCs.

14. Verification and Test (1 lecture)
Analogue and digital simulation, regression testing, production test and yield built-in self-test (BIST).

15. Timing and Clocking (1 lecture)
System performance, setup and hold times, jitter, clock skew, clock distribution networks, propagation delay, signal integrity, static timing analysis (STA), clock domains, synchronisation and meta-stability.

16. Hardware Security (1 lecture) 
Understanding hardware related vulnerabilities (Spectre, Meltdown, RowHammer) and countermeasures. DPA and other forms of side-channel attacks 

17. Future (1 lecture)
Limits of Moores' law, understanding the importance of energy efficiency, new manufacturing techniques, memristor-based computing, exotic technologies (Quantum dots, Graphene, Spintronics, etc.).

Teaching methods




20 hours in total

Feedback methods

Direct feedback comes from laboratory work, both from working with the tools themselves and from the staff. Development results can (and should) be observed throughout using simulation and test. Final results are observable with a hardware realisation.

Less formal feedback is available at all times, especially during lectures and laboratory sessions.

Study hours

  • Assessment written exam (2 hours)
  • Lectures (11 hours)
  • Practical classes & workshops (22 hours)

Employability skills

  • Analytical skills
  • Innovation/creativity
  • Problem solving
  • Other

Learning outcomes

On successful completion of this unit, a student will be able to:

  • Explain the operation of sequential systems and design and implement systems consisting of datapath and control elements.
  • Apply design methodologies to aid in the design of complex digital systems.
  • Discuss key features of the Verilog language and be able to implement sequential digital systems at the register transfer level (RTL) of the design hierarchy.
  • Explain the design factors of Instruction Set Architectures and discuss the differences between RISC and CISC CPUs, identifying the key functional components and explaining how they work together to execute instructions.
  • Explain the stages of processor design starting from the Instruction Set Architecture with respect to implementing designs in Verilog.
  • Discuss approaches for the testing of complex digital designs and apply these to test digital designs implemented in Verilog.
  • Identify techniques for improving CPU performance including pipelining, superscalar processing and multicore.
  • Analyse how design factors such as scaling, monetary cost, performance and power consumption impact VLSI designs.
  • Describe examples of specialised compute units such as coprocessors, floating-point units and vector extensions and identify their relative advantages and disadvantages.
  • Compare different processor technologies, such as CPU, GPU and FPGA, with respect to different application domains, and discuss future industry trends beyond traditional CMOS scaling.
  • Reveal important parts of the CAD tool stack including logic synthesis and test as well as placement and routing algorithms.


Reading list

ARM system-on-chip architecture /Furber, Stephen B.0201675196Addison-Wesley, an imprint of Pearson Education,2000.
Principles of computer hardware Clements, Alan, 1948-9780199273133Oxford University2006.
The Verilog hardware description language /Thomas, D. E.9780387849300 (hbk.) :Springerc2008.

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.