FPGA Design the complete guide
The objective of this course is to acquire proficiency with Field Programmable Gate Arrays FPGA Design 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 the 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
Who this course is for:
- Anyone who wants to learn FPGA design.
- Arduino Makers who want to take the next step into embedded systems.
- Hardware engineers who would like to learn about the exciting field of FPGA design
- This course is not for experienced embedded engineers specialized in FPGAs.
What Will I Learn?
- Create in the FPGA a working system on a chip design with Nios II soft processor, RAM and FLASH memory, and several peripherals.
- Understand and practice all aspects of FPGA development, including conception, design, implementation, and debugging.
- Understand the rationale for each phase of the hardware development flow, including fitting, timing constraints, simulation, and programming.
- Apply hierarchical design methods to create bigger designs in VHDL or Verilog
Topics for this course