Programming languages like Arduino or Python are used a lot, and resources are easy to find and understand. The same isn't quite true for how to create designs for FPGAs. Writing traditional code is often easier to create complex behavior and to change how something is implemented.
Languages that can be used with unified software platforms to program FPGAs include: AI framework like TensorFlow and Pytorch - With Vitis AI, AI scientists can now directly take their trained deep learning models from TensorFlow or Pytorch and compile for FPGA acceleration.
Programming an FPGA consists of writing code, translating that program into a lower-level language as needed, and converting that program into a binary file. Then, you’ll feed the program to the FPGA just like you’d do for a GPU reading a piece of software written in C++. It’s as simple as that.
In the FPGA world, resources are not yet free, therefore Verilog is the language of choice. This will probably change over time. Note that a C interface to Verilog already exists, as shown in Figure 3. There are also variants of FPGAs that contain a microprocessor core on the silicon along with the FPGA circuitry.