A system and method of mapping heterogeneous objects onto an array of heterogeneous
programmable logic resources. The method comprises clustering to identify datapath
modules from a netlist. The method further comprises aggregating the datapath modules
into higher level modules. The method also comprises clustering random logic into structures.