Applications for the September 2026 Qualifier are open. Apply by September 27, 2026. Apply now
Degree Level

Embedded Linux and FPGAs

This course introduces students to the design and implementation of embedded systems using FPGA SoC hybrid platforms, focusing on Zynq-based systems. Students will learn to develop custom FPGA IP cores, integrate them with Linux running on the SoC, and optimize hardware-software co-design for embedded applications. Special emphasis is placed on FPGA-accelerated computing for enhanced system performance.

Code EE4101
Credits 4 Credits
Type Degree
Prerequisites None
12-Week Roadmap

Course Structure & Syllabus

View Course Videos

For details of standard term assessment timelines and exam structures, visit our Academics page.

Module 1
Introduction to FPGA-SoC Hybrid Systems: Overview of Zynq architecture, PS-PL communication interfaces, and introduction to development tools.
Module 2
Advanced FPGA Design Techniques: High-level synthesis (HLS) for IP core development, AXI interface and protocol, and implementation of custom IP cores.
Module 3
Linux on FPGA-SoC systems like Zynq: Linux boot process and customization, Device Tree concepts, writing Linux device drivers for custom IP.
Module 4
FPGA-Accelerated Computing: Principles of hardware acceleration, identifying acceleration opportunities, computation offloading to FPGA fabric, optimizing data transfer between PS and PL, DMA transfers, parallel processing techniques. Case studies in topics such as image processing, signal processing, and machine learning acceleration.
Reading List

Prescribed Books & References

  • “The Zynq Book: Embedded Processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 All Programmable SoC” by Louise H. Crockett et al, Strathclyde Academic Publishers (Free PDF download from official site available).
  • “FPGA-based Implementation of Signal Processing Systems” by Roger Woods et al., Wiley, 2017
  • “Parallel Programming for FPGAs”, Kastner et al., 2018. E-Book published on http://arXiv/1805.03648 • “Embedded SoPC Design with Nios II Processor and Verilog Examples” by Pong P. Chu, 2012 • “Linux Device Drivers” by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, E-book: https://lwn.net/Kernel/LDD3/
Faculty & Experts

About the Instructors

Prof. Nitin Chandrachoodan

Prof. Nitin Chandrachoodan

Professor , Department of Electrical Engineering , IIT Madras

Nitin Chandrachoodan received his BTech (electronics and communication engineering) from IIT Madras in 1996, and PhD from the University of Maryland at College Park in 2002, in the area of high-level synthesis techniques for mapping DSP algorithms to architectures. He has been with the department of electrical engineering at IIT Madras since 2004, where he is currently an professor.

His research interests include digital systems design and design automation tools and techniques, as well as design of embedded systems with a special focus on assistive technologies. He has taught graduate courses on digital integrated circuit design and on mapping algorithms to architectures, and a UG course on data structures and algorithms, as well as a laboratory course on digital design using FPGAs. He is an associate editor of the Springer Journal of Signal Processing Systems.