Automatic design and partitioning of systolic/wavefront arrays for VLSI