Welcome to HPES!

Hello! Thanks for taking a look at the EEE4120F High Performance Embedded Systems (HPES) website. All the resources on this site are available for free use and reuse without written consent from the lecturer; if you are using any of the resources for a formal course or lectures then I would appreciate if you acknowledged the source, see the EEE4120F Resource Use Policy for details.

Objective of this Course

The objective of this course is to develop an understanding of the concepts involved in the design and development of high performance and special-purpose digital computing systems, in terms of both hardware and software design. The course builds on a basic understanding of parallel computing principles and embedded systems, expanding the students' expertise into the specialized fields of reconfigurable computing, heterogeneous computing and high performance parallel computing. The coursework involves laboratory assignments and a project. A number of compulsory tests are held, for which advanced notice and a syllabus is provided. The lecture sessions include presentations by lecturers, seminars and workshops during which students learn fundamental theories, brainstorm ideas, and discuss influential and recent publications in the field.

Course Information

Course Outline Download Course Handout
SAQA Credits 16 Credits
Prerequisites EEE3096/5S
Lecture Times and Venues Tue 2pm - 4pm: Zoom
Thu 2pm - 4pm: Zoom
Prac Times and Venues (tutor availability) Tue 4pm - 6pm:
Thu  3pm - 5pm:
DP Requirement Overall class average of 40%
Final Mark Weighting See course handout

preparatory Resources

For this course it is important that you have some C / C++ programming expertise. Have done some Hardware Description Language (HDL) coding (e.g. Verilog or VHDL would help - although in this course we will cover Verilog programming from a fairly basic level). You should understand computer hardware well, know some digital combinational logic, have a good understanding of digital circuits, have a basic understanding of pipeline and super-pipelined systems (although we will top up this understanding). Ideally you should have implemented a small HDL simulation (at least in terms of a schematic -> HDL generator). You should also have done software engineering, being comfortable with describing software designs, flow charts and state machines.

Some useful resources include, which can help you prepare for the course are:

Related Websites

For more information, refer to these websites: