This lab-oriented course will focus on the design of large-scale system-on-a-chip (SOC) solutions within field-programmable gate arrays (FPGAs). Modern FPGA densities and commercially available cores enable a single developer to design highly complex systems within a single FPGA. This class will provide the student with the ability to design and debug these inherently complex systems. Topics will include high-speed digital signal processing, embedded processor architectures, customization of soft-core processors, interfacing with audio and video sensors, communications interfaces, and networking. The optimum division of algorithms between hardware and software will be discussed, particularly the ability to accelerate software algorithms by building custom hardware. Many labs will center on a common architecture that includes signal processing algorithms in the FPGA fabric, controlled by an embedded processor that provides user interfaces and network communication. The first section of the course will be spent experimenting with different building blocks for constructing SOCs. Students will spend later class sessions working in teams on self-directed SOC design projects. Industry-standard tools will be used.
525.642 FPGA Design Using VHDL and familiarity with C programming.