Design of digital hardware components and embedded systems. Finite state machines and the algorithmic state machine representation. Timing analysis of single and multi-clock designs. Numeric representation and arithmetic circuits: binary addition, subtraction, multiplication and division; IEEE 754 floating point representation. Introduction to hardware architecture of embedded systems; on-chip buses, particularly the AMBA/AXI standard. Processor design and pipelining. Memory types, interfacing and direct memory access. Off-chip peripherals and communication protocols.