1. A method for developing an application specific integrated circuit (ASIC) which performs a function, the method comprising: storing a software program comprising program instructions which implement the function; executing the software program on a processing system capable of parallel processing, wherein said executing the software program is performed at a desired system speed; validating the software program based on said executing; storing a first hardware description of at least a portion of the processing system, wherein the first hardware description specifies implementation of at least a portion of the processing system; determining unused communication links in a first portion of the first hardware description; generating a second hardware description that corresponds to the first portion of the first hardware description, wherein the second hardware description specifies a dedicated hardware implementation of a first portion of the software program executing on the processing system, wherein said generating is performed one or more times, and wherein the unused communication links are not used in said generating; creating an ASIC which implements the function of the software program, wherein said creating comprises implementing the second hardware description on the ASIC.