What is FPGA (Field Programmable Gate Array)? How does it work?