1. A method of designing a processor of an integrated circuit, comprising: identifying reusable portions of a custom design to be created for a processor; custom designing said processor to meet specific performance criteria, including: custom designing macros for said reusable portions; specifying a number of instances of each macro; providing interconnections for said macros; and assembling said custom-designed macros.