Canal: A Flexible Interconnect Generator for Coarse-Grained Reconfigurable Arrays