In an introduction to field-programmable gate arrays (FPGAs) Sparkfun describes that FPGAs aren't really 'programmed' (see below for excerpt) even though this is often used in every day language.

If this is 'not entirely correct', what would be the correct terminology for putting instructions onto an FPGA, used by the experts in the field? I would presume FPGA's are 'flashed', but I'm not sure if 'configured' would be the right word since putting instructions onto an FPGA is literally changing the hardware.

(sorry if this is not the right platform to ask this, it's more of a meta-question for engineering)

Citation from the Sparkfun introduction Jan 2021:

But you aren’t writing a program. You are creating a circuit. You don’t use programming languages to create circuits, you use hardware description languages (HDLs).


To configure FPGA a HDL language such as Verilog or VHDL is used. For example VHDL stands for very high-level design language. Designers use HDL to describe an electronic circuit.

Below is a schematic of a half adder:

enter image description here

Below is an implementation of a half adder in VHDL

enter image description here

Combinations of such digital logic circuits are used to design product such as a calculator. These designs are programmed into to the FPGA. In most cases the program is stored in ROM and at powerup the digital logic is loaded to the FPGA to create a calculator as in this example.

Generally most experts refer to this as loading logic into FPGA.

Flashing can be used, but this is mostly using in embedded systems, using a micro-controller.

Hope this helps


  • $\begingroup$ amazing answer, very elucidating, thank you! I wasn't aware FPGA's wouldn't typically retain their loaded logic after losing power, this is would typically be case for microcontrollers and 'flashing' I think. $\endgroup$ – user2305193 Jan 18 at 18:33
  • $\begingroup$ Most modern micro-controllers have flash already build into silicon. $\endgroup$ – Mahendra Gunawardena Jan 18 at 18:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.