A system-on-chip (SOC) is a type of integrated circuit (IC) that includes a processor and one or more other circuits. The SOC may be built using a single chip substrate. The processor executes program code and is coupled to the circuits so that the processor and the circuits operate cooperatively with one another. One example of an SOC is a chip level implementation of a computer or other data processing system. In some SOCs, the processor is coupled to programmable circuitry that may be used to implement various circuits.
Creating a custom SOC requires expertise in both software development and hardware design. Traditionally, software development and hardware design have been separate fields of endeavor with each requiring specialized training and knowledge. In the case of an SOC that includes programmable circuitry, specialized knowledge of the particular architecture of the target IC has also been required. In consequence, the creation of a customized SOC has been a complex and time consuming undertaking requiring skilled software developers and skilled hardware designers working collaboratively.