FPGAs stands for Field Programmable Gate Arrays which is an array of programmable logic and memory blocks connected with each other using programmable interconnects.
Generally, the logic blocks in FPGAs are implemented as a lookup table (LUT) which is a memory whose address signal are the inputs and the outputs are stored in memory entries. Most FPGAs use a LUTs with 4-8 input bits as their base logic element for computing.
FPGA Programming means changing the interconnects between the logics and memory blocks to create new circuits by programming methods.
We recommend further reading as follows if you are interested in more details about the FPGA architectures:
- Stephen Brown and Jonathan Rose. FPGA and CPLD architectures: A tutorial. IEEE Design and Test of Computers, 13(2):42–57, 1996.
- Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Jason H Anderson, Stephen Brown, and Tomasz Czajkowski. LegUp: high-level synthesis for FPGA- based processor/accelerator systems. In Proceedings of the International Symposium on Field Programmable Gate Arrays (FPGA), pages 33–36. ACM, 2011.