reconfigurable-computing-the-theory-and-practice-of-fpga-based-computation