Welcome to Digital Systems!

Hello. Thanks for taking a look at the EEE4084F Digital Systems 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 EEE4084F 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, expanding the students' expertise into the specialized fields of reconfigurable computing, heterogeneous computing and high performance parallel computing. The coursework involves laboratory assignments and two mini projects. 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 20 Credits
Prerequisites CSC4015Z, EEE3064W or EEE3017W (>70%)
Lecture Times and Venues Tue 2pm - 4pm: EM5
Thu 2pm - 4pm: EM5/Blue Lab (Lecture/Prac/Activity)
Prac Times and Venues Wed 4pm - 6pm: Blue Lab
Thu  3pm - 5pm: Blue Lab
DP Requirement Overall class average of 40%
Seminar presentation
Final Mark Weighting 10% Lab Practicals
16% Project
16% Tests
8% Other (Homework, Seminars)
50% Final Exam

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. VHDL or Verilog - although in this course we will cover Verilog programming from a fairly basic level). You should understand computer hardware well, have done digital combinational logic, have a good understanding of digital circuits, have a basic understanding of pipeline and super-pipelined systems. Ideally you should have implemented a small processor HDL (or at least in terms of schematics). 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: