Overview
This course covers the fundamentals of the electronic circuits that are used to build computers.
Beginning with the functions of individual transistors, and building towards a complete implementation
of a simple processor, the course explains in a structured way how complex behaviours are built up
from simpler parts. Students will gain an understanding of the factors that affect the performance
of hardware, and how these factors change with changes of scale, for example in the size of the data
that a computer system handles. They will also gain experience in the important technique
of hierarchical specification, implementation and proof of correctness using logic and data representation.
Learning Outcomes
After studying this course, undergraduates will be able to:
- Design small combinational and sequential circuits from logic gates.
- Understand the design of simple architectures processors.
- Implement simple programs in assembly language.
- Understand the characteristics and limitations of computer arithmetic.
- Distinguish between specification and implementation, and appreciate the use
of rigorous correctness arguments.