Recently there have been a slew of digital design products released that promise to simplify the task of giving students a real-world System-on-Chip (SoC) design experience. These “programmable SoCs” from companies such as Xilinx, Cypress, and Altera combine modern multi-core ARM processors connected to an FPGA through a widely used SoC interconnect standard. This paper discusses a Real Time Embedded System Course I designed that uses the Xilinx Zynq platform to give students first-hand experience with modern System-on-Chip design methodologies and the challenges that designers face in both hardware and software bring-up for a modern IP-based design.

The first portion of this paper discusses how students were trained to use the Zynq platform. The first weeks of the class were dedicated to teaching students the basics of real-time system and custom hardware design. Students used a Zynq-based port of Free-RTOS to learn about Real-time operating systems. Through a series of laboratory assignments, students are taught how to interface the RTOS with custom hardware that they place on the FPGA portion of the chip. The course material developed for this portion of the class will be posted online so that other educators may use it in their teaching.

The second part of this paper discusses some of the projects proposed and completed by students, and any difficulties the students faced along the way. From two weeks into the class, students are asked to form groups of up to four and propose a final project. For their final project, students are required to design and build a complete working system of their choice. Their final project is required to make use of both the processor running RTOS and at least one custom IP block running on the FPGA.

In the final section of this paper I examine student feedback for the course, and comment on some of the challenges I faced in integrating the Zynq PSoC platform, and its corresponding development tools, into the classroom.


Computer Sciences

Number of Pages




URL: http://digitalcommons.calpoly.edu/csse_fac/257