Digital Systems

The Digital Systems course follows the Digital Logic and Microprocessors courses, and explores designs that include both the ARM and FPGA. Experience with Vivado/Verilog and SDK/C is assumed. 
This course uses a series of hands-on design projects to illustrate the design and implementation of more complex digital systems. Initial projects illustrate how to create and connect a custom IP block, how to define a ZYNQ hardware configuration that uses the ARM with the IP block, and how to write C code to control the system. After students gain experience creating and implementing custom hardware blocks, hardware/software interactions and interfaces can be explored in detail, and trade-offs can be evaluated. 
Later projects present more involved custom IP blocks typical of those used in industry today, including a PWM hardware controller, a character generator for a display system, and a FIFO-based audio player. 
At the end of each two-week project, students present their completed projects to an instructor or assistant. During the presentation, the instructor can ask questions to gauge comprehension, discuss design trade-offs, and provide feedback and guidance as appropriate. Submission forms are provided for recoding and submitting scores. 
By the end of the course, students are able to define a ZYNQ system from scratch, create and include any needed IP blocks, and write software to control the system. 
We welcome corrections, suggestions, and ideas for new design projects. Please send any comments to