Select the persona that your work most closely aligns with to view your recommended training curriculum:
- Software Developer for Host Application
Software developers writing applications for different markets that run on a CPU. Very little to no knowledge of hardware, but want to take advantage of FPGA as an accelerator. Typically build host applications in high level languages like Python and Java, but may use C/C++ and leverage optimized libraries for functions that have already been tuned for the hardware.
- Software Developer for Acceleration Using OpenCL
Software developers that are architecting software applications for heterogenous systems that run on a CPU host, but target specific functions to different hardware accelerators using a common programming language, such as OpenCL. These programmers not only write application code, but also optimize the acceleration
functions for the different accelerators such as FPGAs.
- Software Developer for Acceleration using C/C++
Lower level software developers that are comfortable coding in C or C++ and are much more familiar with details of the hardware and memory management. These programmers are typically tuning and optimizing compute intensive function libraries for specific hardware.
Traditional FPGA developers that code in HLD languages such as Verilog HDL and VHDL. These developers are comfortable with creating FPGAs using the Intel Quartus Prime software, closing timing on complicated hardware circuits and managing complicated I/O interfaces to the FPGA.
Training material is broken up into various levels of depth. 100 level is focused on introduction and high level overviews. 200 level covers the first level of how to do something, but expects basic understandings that are covered in the 100 level courses. 300 level goes down to a much deeper technical or specific level of knowledge.