The objective of this course is to acquire proficiency with Field Programmable Gate Arrays (FPGA)s for the purpose of creating prototypes or products for a variety of applications. Although FPGA design can be a complex topic, we will introduce it so that, with a little bit of effort, the basic concepts will be easily learned, while also providing a challenge for the more experienced designer. We will explore complexities, capabilities and trends of Field Programmable Gate Arrays (FPGA) and Complex Programmable Logic Devices (CPLD). Conception, design, implementation, and debugging skills will be practiced. We will learn specifics around embedded IP and processor cores, including tradeoffs between implementing versus acquiring IP. Projects will involve the latest software and FPGA development tools and hardware platforms to help develop a broad perspective of the capabilities of various Programmable SoC solutions. Topics include:
Verilog, VHDL, and RTL design for FPGA and CPLD architectures
FPGA development tools flow: specify, synthesize, simulate, compile, program and debug
Configurable embedded processors and embedded software
Use of soft-core and hard-core processors and OS options
FPGA System engineering, software-hardware integration, and testing
IP development and incorporating 3rd-party IP
The capstone course will give the learner the opportunity to practice and implement the concepts covered by building FPGA systems based on low cost evaluation boards.
Applied Learning Project
Learners will practice building and testing several FPGA projects using industry standard FPGA hardware development tools by applying skills including VHDL and Verilog coding, programmable logic synthesis and simulation, static timing analysis and FPGA device programming. The culmination of these efforts will be the construction of a configurable softcore processor system on a chip using the DE10-Lite evaluation board.