A New Algorithm for the Allocation of Functional Units and Connections onto Multiplexed Data Paths