BSc Computer Science with Industrial Experience / Course details

Year of entry: 2022

Course unit details:
Processor Microarchitecture

Unit code COMP22111
Credit rating 10
Unit level Level 2
Teaching period(s) Semester 1
Offered by Department of Computer Science
Available as a free choice unit? Yes


This course unit aims to reinforce and extend digital hardware development skills which are introduced in the first year. It employs industry-standard tools and languages which are used worldwide for silicon development. The UK has perhaps the strongest expertise in Europe in these areas and skills are in high demand from employers such as ARM and Imagination Technologies who provide much of the digital design for devices such as smartphones and tablet computers.


Unit title Unit code Requirement type Description
Fundamentals of Computer Engineering COMP12111 Pre-Requisite Compulsory
Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.


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!

Learning outcomes

  • Explore 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 and test sequential digital systems at the register transfer level (RTL) of the design hierarchy.
  • Discuss the role of the instruction set architecture in influencing the design of the processor, identifying key functional components of a design and explaining how they work together to execute instructions.
  • Explain the stages of processor design starting from the Instruction Set Architecture through to implementation in Verilog.
  • Explain the design and operation of simple logic functions in CMOS logic and discuss the issues associated with CMOS.
  • 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 for post-Moore computing.
  • Reveal important parts of the CAD tool stack including logic synthesis and test as well as placement and routing algorithms.


Overview, introduction to the lab, approaches to design and the management of complexity

Introducing Stump
Designing complex systems, RISC v CISC, Stump specification and addressing schemes, Stump ISA

Verilog & Testing
Verilog recap and new features - tasks, functions and structural Verilog. Verification, validation and testing - the testbench.

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

Designing and Implementing Processors
Implementation of processors from the ISA, architectural design, RTL design, Verilog implementation.

Introduction to CMOS
Basic electronics, logic gates in CMOS and design considerations.

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

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

FPGA mode of operation and its spatial programming model as well as application examples.

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

Standard Cell design methodology, PLA, Multiplexer, look-up table technology.


Teaching and learning methods

This unit will be delivered using a blended approach to learning. Self-study materials will be made available in the form of written notes, videos and self-assessment quizzes in Blackboard that allow you to check your understanding of the material provided. Each week there will be a live session which will focus on covering design examples and/or providing support and general feedback on laboratory exercises. These sessions will be, where possible, interactive.


Laboratory exercises are supported by weekly drop-in sessions (from week 3), where students can get help and support.


Students are expected to spend (approximately):


2 hours per week working on the online asynchronous material (22 hours in total).

5 hours per week on the laboratory exercises (40 hours in total).

1 hour per week synchronous lecture (11 hours in total).

Employability skills

Analytical skills
Problem solving

Assessment methods

Method Weight
Written exam 50%
Written assignment (inc essay) 50%

Feedback methods

Feedback is provided via formative quizzes in Blackboard and via automated marking for laboratory work, with feedback on work being delivered by email.

Recommended reading

COMP22111 reading list can be found on the Department of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 11
Independent study hours
Independent study 87

Teaching staff

Staff member Role
Paul Nutter Unit coordinator

Additional notes

Course unit materials

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

Return to course details