Learning Outcomes:
On completion of this module, students are expected to be able to:
Use number systems for calculations.
Explain the fundamentals of logic gates, digital electronics, transistors and integrated circuits.
Design combinatorial circuits.
Use Boolean algebra.
Use Karnaugh maps to design circuits.
Explain the implementation of latches and flip-flops.
Design finite state machines.
Perform calculations on circuit timing.
Explain the implementation of fundamental digital building blocks.
Write programs in assembly language.
Translate assembly instructions into machine instructions.
Explain the typical tool suite for developing software.
Explain the implementation of fundamental computer microarchitectures.
Assess the performance of computer microarchitectures.
Explain the implementation of fundamental computer memory systems.l
Assess the performance of computer memory systems.
Indicative Module Content:
The chapters will contain the following content:
1. Digital circuits covers number systems (including binary), Boolean logic gates, digital electronics, transistors and computer chips.
2. Combinational Logic Design covers Boolean equations, Boolean algebra, x’s and z’s, Karnaugh maps, simple building blocks and timing.
3. Sequential Logic Design covers latches and flip-flops, synchronous logic design, finite state machines and timing.
4. Computer Architecture covers assembly language, programming, machine language and software development tools.
5. Digital Building Blocks covers arithmetic circuits, numbers systems (revisited), counters and shift registers.
6. Microarchitecture covers a number of microarchitectures including single-clock, multiple cycle and pipelined.
7. Memory Systems covers memory performance, memory caches and virtual memory.
The approximate schedule is as follows:
The module closely follows the Harris and Harris textbook (see below).