Explain with the use of an appropriate diagram the structure of an FPGA

Electronic Engineering: Digital Systems

Question:

Explain with the use of an appropriate diagram the structure of an FPGA. Describe the function of the logic blocks and the interconnection switches and why an FPGA would be used instead of an SPLD or a CPLD.