Specialization Design of FPGAs for embedded systems
The objective of this course is to develop skills in working with field-programmable gate arrays (FPGAs) to create prototypes or products for a variety of applications. While FPGA design can be a complex topic, we will present it in a way that makes it easy to grasp the basic concepts with a little effort, while still providing a challenge for the more experienced designer. We will explore the complexities, capabilities, and trends of field-programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs). Skills in conceptualization, design, implementation, and debugging will be practiced. We will examine the specifics of embedded ICs and processor cores, including the trade-offs between implementation and acquisition of ICs. Projects will utilize the latest software tools and hardware platforms for FPGA development, providing a broad understanding of the capabilities of various programmable SoC solutions. Topics include: Design in Verilog, VHDL and RTL languages for FPGA and CPLD architectures FPGA Development Tool Flow: Definition, Synthesis, Simulation, Compilation, Programming, and Debugging Configurable Embedded Processors and Embedded Software Using Soft and Hard Core Processors and OS Options FPGA systems engineering, hardware and software integration and testing Development of IS and implementation of IS of third-party manufacturers This course will give students the opportunity to practice and implement the concepts learned by creating FPGA systems based on low-cost evaluation boards. Applied learning project Students will practice creating and testing multiple FPGA designs using industry-standard FPGA hardware development tools, applying skills such as VHDL and Verilog coding, programmable logic synthesis and simulation, static timing analysis, and FPGA device programming. These efforts will culminate in the creation of a configurable soft processor system on a chip using the DE10-Lite evaluation board.