FPGA vs. Microcontroller: How to choose the right one for your project