One of my passions is to teach students. Following are the courses that I have taught (or teaching) during my appointment at NUS and TUe. In all my courses I ensure that students need to work on design problems in small groups to understand the concepts better.



EE4214 Real-Time Embedded Systems (Aug 2009, Aug 2010, Aug 2011, Aug 2012)

• This course covers topics in real-time embedded systems like task scheduling, shared resources, real-time operating systems, concurrent programming and deadlock management.

• 50% of the grade is determined by a project where students have to design a real-time system using xilkernel operating system running on a Microblaze-based platform on a Xilinx FPGA.

• Attended by about 95 students.


EE4218 Embedded Hardware System Design (Jan 2010, Jan 2011, Jan 2012, Jan 2013)

• This course covers topics in embedded hardware design like system specification and modelling, behavioural synthesis, logic synthesis and physical synthesis.

• 60% of the grade is determined by a series of projects which involve designing an embedded system on a Xilinx FPGA in both VHDL and System C.

• Attended by about 80 students; nominated for Best Teacher Award by the students.


EE2006 Digital Design (Jan 2010, Aug 2010)/EE2020 Digital Fundamentals (Jan 2011, Aug 2011, Jan 2013)

• This course is an introductory level course in digital circuits for second-year students. The course starts with a revision of Boolean algebra and number systems, explains various MSI combinational and sequential circuit elements, and introduces VHDL and algorithmic state machines.

• 30% of the grade is determined by a digital design project and a VHDL programming assignment.

• Attended by about 260 students.


5KK53 Implementing Large Scale Embedded Processors on Deep-Submicron Silicon (Apr 2006)

• This is a course for Masters Students in embedded processor design at Eindhoven University of Technology (TUe). The students have to partition and map a JPEG decoder on an MPSoC platform.

• Course organized in collaboration with Silicon Hive and Philips Research (now NXP Semiconductors)

• 100% of the grade is determined by the project; carried out on the multiprocessor system developed by me.

• Attended by about 50 students.



We have also created a light-weight Integrated Development Environment (IDE) for editing, compiling and simulating VHDL programs. The IDE is based on open-source jEdit, with our custom plugin. GHDL is used for VHDL compilation and simulation, while GTKWave is used for viewing simulation waveform. The installer for various platforms is available below




The assignment for 5KK73 Embedded Computer Architecture can be found here.