1. A method for developing a hardware description which performs a function, the method comprising: storing a software program comprising program instructions which implement the function; storing a first hardware description of at least a portion of a multi-processor system, wherein the first hardware description specifies implementation of the at least a portion of the multi-processor system; generating a second hardware description based at least in part on the first hardware description, wherein said generating the second hardware description comprises generating a first portion and a second portion, wherein the first portion specifies a dedicated hardware implementation of a first portion of the software program executing on a first portion of the multi-processor system, and wherein the second portion specifies implementation of a second portion of the multi-processor system; wherein the second hardware description is configured to be implemented on an integrated circuit such that the integrated circuit implements the function.