FPGA, Field Programmable Gate Array technology is very useful within the industry.
The FPGA enables the functionality of the chip to be programmed in, enabling this to be updated at any point required. This can be changed to accommodate updates or to even change the functionality a board or system when it is required to perform different functions.
The very name of the FPGA states that it is programmable. It is necessary to code to programme the FPGA. Knowing how to program an FPGA is a key skill and it forms a specialised area of electronic design.
Note on the FPGA hardware:
FPGA hardware consists of an array of logic that can configured to provide the digital functionality that is required by the developer. FPGAs come in a variety of sizes ranging from small to very large to acccommodate the requirements of the particular project.
Read more about the FPGA ICs
FPGA programming approaches
There are several ways to develop the code to program an FPGA. In the very early days of FPGAs it might just have been possible to program the simplest FPGAs manually. Today this is not an option and a software program is required. There are several options open to FPGA developers:
- VHDL: VHDL stands for VHSIC Hardware Description Language, where the VHSIC itself stands for Very High Speed Integrated Circuit. This FPGA programming language was developed by the US Department of Defense to document the behaviour of ASICs, or Application Specific Integrated Circuits. Base heavily on the programming language Ada, VHDL is a text language which has been very successful and popular for many years in programming FPGAs.
- Verilog: Verilog was the first form of hardware description language to be developed. It is standardised as IEEE 1364.
- LabVIEW FPGA: LabVIEW FPGA utilises the basic LabVIEW graphical interface but employs additional tools to enable it to provide the functionality required for programming FPGAs. . Read more about how to program LabVIEW FPGA.
Hardware description languages differ from normal programming languages in that they are able to accommodate parameters including propagation delays and also the signal strengths. These are two key parameters that are required when programming FPGAs.