Difference between fpga and microcontroller