An Application Specific Integrated Circuit (ASIC), also referred to as a gate array, is a well known device for constructing digital circuitry and, most particularly, digital data processing circuitry. An ASIC includes a large number of uncommitted logic functions, such as gates and inverters, and assemblages of logic functions, such as flip-flops, counters, and memory elements. Based on a schematic diagram of a user's circuit, the ASIC circuits are selected and interconnected so as to realize the desired functions. As a result, a circuit that would require a large number of discrete integrated circuit packages to construct can be realized instead within a single integrated circuit package. Advantages to this approach include considerable reductions in packaging volume, power, and propagation delays over a conventional circuit constructed with discrete integrated circuit packages.
One disadvantage to the use of an ASIC is the considerable cost incurred in evolving the initial design through at least one circuit specification and fabrication cycle to arrive at a finished and fully functional integrated circuit. A related problem is a lack of an ability to make substantive circuit changes to the completed ASIC to accommodate circuit corrections and design changes. Typically, each required revision to the original ASIC design results in additional and substantial costs being incurred. Also, for many applications the full capability of the ASIC is not required, resulting in some number of circuits being unused. For example, a given design may require an ASIC having a minimum of 300 interface pins. However, the actual number of gates or cells that are required to implement the design may be only a small fraction of the total number that are available for the ASIC that is selected to meet the interface pin requirements.
As can be appreciated, the foregoing disadvantages are compounded when a design requires the use of two or more ASICs. Additionally, the requirement to schedule the timely production of, and stock, a number of different ASICs can increase overall system costs. Furthermore, although a relatively large total number of ASICs may be provided to a customer by a given vendor, the number for each of the different ASICs may be less than a minimum threshold number required to obtain a significant volume discount.