Field-Programmable Gate Arrays (FPGAs) Demystified