The systematic design of systolic arrays