The course provides a foundation for the design of combinational and sequential logic circuits using formal design methods. The implementation of sequential logic is extended to microprocessors and the aim is to enable students understand the architecture of microprocessors and to design and implement simple real-time microprocessor systems.
Students should be able to design a wide range of logic circuits using minimization and finite state-machine methods. They should be able to describe the operation of a microprocessor in terms of its general architecture and understand how microprocessors can be programmed and used in a variety of real-time applications.
The ability to design complex digital logic systems. The ability to programme microprocessors using assembler and machine code. The ability to design the programme flow to meet a real-time application's requirements. The ability to incorporate interrupts into a real-time computer system design.
Applications and design of combinational logic, synchronous and asynchronous sequential circuits: Finite state machine description, primitive flow tables, internal state reduction, merging and row assignment, hazards and races. Large-scale integration technologies for implementing digital designs (PLDs, CPLDs and FPGAs). Computer architecture: Von Neumann architecture vs. Harvard architecture (the arrangement of the CPU, memory and peripheral devices) and microprocessors vs. microcontrollers. Machine code programming, addressing modes and flow control. Real-time systems: Normal processing and exception processing (interrupts, reset and CPU initialisation, halt and software traps and stacks). Interrupt driven I/O vs. polled I/O. Case studies of various microprocessors.