11.2 High-Level Synthesis and Coarse-Grained Reconfigurable Architectures