SYSTEM WITH A DEFECT TOLERANT CONFIGURABLE IC
Some embodiments of the invention provide a system that includes a first defect tolerant configurable integrated circuit and a second IC communicatively coupled to the defect tolerant configurable first IC.
This application is a continuation in-part to U.S. patent application Ser. No. 11/081,820, filed Mar. 15, 2005, entitled “Method For Manufacturing a Programmable System in Package,” and U.S. patent application Ser. No. 11/081,841, filed Mar. 15, 2005, entitled “Programmable System in Package.”
FIELD OF THE INVENTIONThe present invention is directed towards a system with a defect tolerant configurable IC.
BACKGROUND OF THE INVENTIONThe use of configurable integrated circuits (“IC's”) has dramatically increased in recent years. One example of a configurable IC is a field programmable gate array (“FPGA”). An FPGA is a field programmable IC that has an internal array of logic circuits (also called logic blocks) that are connected together through numerous interconnect circuits (also called interconnects) and that are surrounded by input/output blocks. Like some other configurable IC's, the logic circuits and the interconnect circuits of an FPGA are configurable (i.e., they can be configured to perform different functions and operations by receiving different configuration data). One benefit of configurable IC's is that they can be uniformly mass produced and then subsequently configured to perform different operations.
One way of implementing FPGA's with circuits with other functionalities is to use a system on chip (“SoC”) approach. A SoC is an IC that includes all of the necessary hardware and electronic circuitry for a complete system. The SoC is typically a small piece of semiconducting material (e.g., silicon) on which several macroblocks are embedded. Some of these macroblocks can include a memory, a microprocessor, digital signal processor, etc. A characteristic of the SoC is that it requires all the macroblocks to be manufactured with one type of fabrication technology. This can be problematic since each macroblock may have a different optimal fabrication technology (e.g., a memory macroblock might be optimally manufactured at 90 nm, while an analog macroblock might be optimally manufactured at 180 nm). As such, in some instances, some of the macroblocks of a SoC might be manufactured sub-optimally. Another drawback of a SoC is that the design process is often extensive, cumbersome and expensive.
The SoC approach is one way of integrating the functionalities of several IC's. Another way of integrating the functionalities of several IC's is to use a System-in-Package (“SiP”) approach. The System-in-Package approach houses several IC dies in one package. This approach has several advantages over the SoC approach. For instance, the SiP approach does not require the design and layout of circuitry that implements some of the more common functionalities that are being integrated.
However, the SiP approach does suffer from the known “good-die” problem. It is known that most manufacturing processes do not always produce “good dies”. In other words, most manufacturing processes typically produce defective IC's (i.e., IC's that because of a manufacturing defect fail to perform operations for which they are designed). The term “manufacturing yield” is often used to express the percentage of IC's without defects that are produced in a particular manufacturing process. For example, a 95% manufacturing yield means that for every one hundred IC's that are produced, ninety-five IC's will be defect free, while five IC's will have a defect. The good-die problem is particularly troublesome in SiP's as one bad dies in a SiP requires several other dies to be discarded.
Therefore, there is a need in the art for a better method of integrating the functionalities of several IC's, including a configurable IC. Ideally, such an approach will not suffer from the known good-die problem.
SUMMARY OF THE INVENTIONSome embodiments of the invention provide a programmable system in package (“PSiP”) that includes several integrated circuits (“IC”). The PSiP includes a first IC, which is a vias programmable gate array (‘VPGA”). The PSiP also includes a second IC that communicatively couples to the first IC. The PSiP also includes a substrate on top of which the first and second IC's are mounted. In some embodiments, both the first and second IC's are directly mounted on top of the substrate, while in other embodiments, one of the IC's (e.g., the first IC) is mounted on top of the other IC (e.g., the second IC).
In some embodiments, the first and second IC's and the top side of the substrate on which these IC's are mounted are covered in order to form a single package (i.e., to form the PSiP). In some embodiments, the PSiP includes a cap that encapsulates the top side of the substrate to form a housing that contains the first and second ICs. In other embodiments, the top side of the substrate is covered with a covering fill that covers the first and second IC's. In some cases, the covering fill completely covers the first and second IC's, while in other cases it leaves a portion of one or both of the IC's exposed. The first and second IC's are IC dies in some embodiments. In other embodiments, one or both of the IC's are packaged in another chip scale (“CS”) package before placement within the PSiP.
Before mounting this CS-packaged IC into the PSiP, the CS packaging is used to test this IC to ensure that it operates properly. In some cases, the size of the CS package is not greater than a particular percentage (e.g., 120%) of the size of the first IC. The CS package has a flip chip structure in some embodiments.
Instead of, or in conjunction with the CS packaging, the first configurable IC of some embodiments is a defect tolerant configurable IC. The operation of this IC can be adjusted to avoid a certain amount of defects in the manufacturing of the IC. In some embodiments, the configurable IC has configurable logic and interconnect circuits. Some embodiments specify multiple different configuration bit streams for configuring the configurable logic and interconnect circuits of the configurable IC. Some embodiments use place and route tools to specify each configuration bit stream. These tools define the configuration of the logic and interconnect circuits in a manner that allows the logic circuits to perform different functions in the design and the interconnect circuits to route input and output signals to and from the logic circuits.
To specify each configuration bit stream, the place and/or route tools of some embodiments assume that a particular set of the configurable logic and/or interconnect circuits will be defective. After the configurable IC has been manufactured, the configurable IC is tested to identify the set of configurable logic and/or interconnect circuits that are defective. If a particular configuration bit stream was previously defined for the identified set of defective circuits (i.e., if the identified set of defective circuits falls within a set of defective circuits based on which a particular configuration bit streams was defined), the particular configuration bit stream is used to configure the configurable IC.
As mentioned above, the defect tolerant configurable IC of some embodiments is housed in a PSiP. In other embodiments, however, the defect tolerant configurable IC might be individually packaged in its own package and then incorporated into an electronic system using conventional system integration techniques.
The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail.
Some embodiments of the invention provide a programmable system in package (“PSiP”) that includes several integrated circuits (“IC”). The PSiP includes a first IC, which is a vias programmable gate array (‘VPGA”). The PSiP also includes a second IC that communicatively couples to the first IC. The PSiP also includes a substrate on top of which the first and second IC's are mounted. In some embodiments, both the first and second IC's are directly mounted on top of the substrate, while in other embodiments, one of the IC's (e.g., the first IC) is mounted on top of the other IC (e.g., the second IC).
In some embodiments, the first and second IC's and the top side of the substrate on which these IC's are mounted are covered in order to form a single package (i.e., to form the PSiP). In some embodiments, the PSiP includes a cap that encapsulates the top side of the substrate to form a housing that contains the first and second ICs. In other embodiments, the top side of the substrate is covered with a covering fill that covers the first and second IC's. In some cases, the covering fill completely covers the first and second IC's, while in other cases it leaves a portion of one or both of the IC's exposed. The first and second IC's are IC dies in some embodiments. In other embodiments, one or both of the IC's are packaged in another chip scale (“CS”) package before placement within the PSiP.
Before mounting this CS-packaged IC into the PSiP, the CS packaging is used to test this IC to ensure that it operates properly. In some cases, the size of the CS package is not greater than a particular percentage (e.g., 120%) of the size of the first IC. The CS package has a flip chip structure in some embodiments.
Instead of, or in conjunction with the CS packaging, the first configurable IC of some embodiments is a defect tolerant configurable IC. The operation of this IC can be adjusted to avoid a certain amount of defects in the manufacturing of the IC. In some embodiments, the configurable IC has configurable logic and interconnect circuits. Some embodiments specify multiple different configuration bit streams for configuring the configurable logic and interconnect circuits of the configurable IC. Some embodiments use place and route tools to specify each configuration bit stream. These tools define the configuration of the logic and interconnect circuits in a manner that allows the logic circuits to perform different functions in the design and the interconnect circuits to route input and output signals to and from the logic circuits.
To specify each configuration bit stream, the place and/or route tools of some embodiments assume that a particular set of the configurable logic and/or interconnect circuits will be defective. After the configurable IC has been manufactured, the configurable IC is tested to identify the set of configurable logic and/or interconnect circuits that are defective. If a particular configuration bit stream was previously defined for the identified set of defective circuits (i.e., if the identified set of defective circuits falls within a set of defective circuits based on which a particular configuration bit streams was defined), the particular configuration bit stream is used to configure the configurable IC.
The configurable IC of some embodiments is a reconfigurable IC. Reconfigurable IC's are one type of configurable IC's. Reconfigurable IC's are configurable IC's that can reconfigure during runtime. In other words, a reconfigurable IC is an IC that has reconfigurable logic circuits and/or reconfigurable interconnect circuits, where the reconfigurable logic and/or interconnect circuits are configurable logic and/or interconnect circuits that can “reconfigure” more than once at runtime. A configurable logic or interconnect circuit reconfigures when it receives a different set of configuration data. Some embodiments of the invention are implemented in reconfigurable IC's that are sub-cycle reconfigurable (i.e., can reconfigure circuits on a sub-cycle basis).
In some embodiments, runtime reconfigurability means reconfiguring without resetting the reconfigurable IC. Resetting a reconfigurable IC entails in some cases resetting the values stored in the state elements of the IC, where state elements are elements like latches, registers, and non-configuration memories (e.g., memories that store the user signals as opposed to the memories that store the configuration data of the configurable circuits). In some embodiments, runtime reconfigurability means reconfiguring after the reconfigurable IC has started processing of the user data. Also, in some embodiments, runtime reconfigurability means reconfiguring after the reconfigurable IC has powered up. These definitions of runtime reconfigurability are not mutually exclusive.
In some embodiments, the reconfigurable IC operates at a first clock rate that is faster than a second clock rate of the second IC in some embodiments. In some embodiments, the second IC is also encapsulated in a CS package.
I. Structure of PSiP with Configurable IC
A. Stacked IC's
As shown in
As further shown in
As further shown in
As further shown in
The conductors on the top of the substrate 105 are electrically coupled to the IC's 120-135 through the sets of wire bonding 160-175. Accordingly, the IC's 120-135 can send and receive signals to and from circuits outside of the PSiP 100 through the sets of wire bonding 160-175, the conductors on the top of the substrate 105, the set of vias 115, and the BGA 110.
Some embodiments place the BGA 110 in a concentric two-dimensional array at the bottom of the substrate. Other embodiments might place the BGA 110 in other arrangements (e.g., in a peripheral arrangement around the perimeter of the PSiP 100). In other embodiments, a PSiP 200 includes a pin grid array (“PGA”) 205, as shown in
As further shown in
In the figures mentioned above and below, the PSiPs are shown attached to a PCB facing up. However, one of ordinary skill in the art will realize that other PSiP structures can be used. For example, some embodiments might use a flip chip structure. In such instances, the PSiPs are flipped over and attached to the PCB facing down.
B. Side by Side IC's
In the PSiP 300, each IC is placed side by side to each other. A first adhesive 140 is placed between the first IC 120 and the substrate 105 to bond them together. Similarly, a second, third and fourth adhesive 145-155 are respectively placed between the second, third and fourth IC 125-135 and the substrate 105. A first, second, third and fourth set of wire-bonding 160-175 are attached respectively to the first, second, third and fourth IC's 120-135. These sets of wire-bonding 160-175 allow the IC's 120-135 (1) to communicate with each other without having to go outside of the PSiP, and (2) to communicate with IC's that are located outside of the PSiP 300.
The PSiP 300 includes a BGA 110 and a set of vias 115. As previously mentioned, the BGA 110 and the set of vias 115 allow the IC's 120-135 to communicate with IC's outside of the PSiP 300. In contrast to the PSiP 100 with stacked IC's, which provides a PSiP that is narrow, the PSiP 300 that includes side by side IC's provides a PSiP that is thin.
iii. Combination of Stacked and Side by Side IC's
Furthermore, the PSiP 400 includes a first, second, third and fourth set of wire-bonding 160-175 that are attached respectively to the first, second, third and fourth IC's 120-135. As previously described, these sets of wire-bonding 160-175 allow the IC's 120-135 to communicate with each other. In other embodiments, the PSiP 400 further includes a BGA 110 and a set of vias 115 to allow the IC's 120-135 to communicate with IC's outside of the PSiP 400.
II. PSiP with Reconfigurable IC'S
In some embodiments, the configurable IC of the PSiP's described above is a reconfigurable IC that reconfigures more than once during runtime. In some embodiments, this reconfigurable IC might be a sub-cycle reconfigurable IC.
In some embodiments, a reconfigurable IC 530 reconfigures at a clock speed that is comparatively faster than the clock speed of some or all other IC's within a PSiP.
As shown in
As mentioned above, the IC's within a PSiP can perform many operations. Examples of operations include a processor operation, an analog operation, a memory operation, etc. In some embodiments, these IC's are manufactured using different fabrication technologies. For instance, an IC that performs memory operations might be manufactured using 90 nm fabrication technology, while an IC that performs a processor operation might be manufactured using 130 nm fabrication technology, and an IC that performs analog operations might be manufactured using 180 nm.
IV. PSiP with Heat Sink
In some embodiments, a PSiP includes a heat sink (i.e., heat spreader).
Having described various PSiP that include a configurable or reconfigurable IC, a method of manufacturing a PSiP and selecting the IC's for the PSiP will now be described in detail.
V. Manufacturing PSiPAfter identifying new or existing IC's, a PSiP structure is identified (at 1015) for housing all the identified IC's. As described above, a PSiP can be structured in numerous ways. In some embodiments, a PSiP can include IC's that are stacked. In other embodiments, a PSiP can include IC's that are placed side by side. In yet other embodiments, a PSiP can include IC's that are placed side by side and stacked.
After defining (at 1015) the structure of the PSiP, a pre-fabrication analysis is performed (at 1020) to determine whether the designed PSiP is likely to satisfy the system requirements. If the designed PSiP fails this analysis, the process (1) returns back to 1010 to redefine the sets of operations and/or to modify the IC selection/design choices, and then (2) transitions to 1015 to define a PSiP structure for housing the IC's identified at 1010.
When the PSiP design passes the pre-fabrication analysis at 1020, the PSiP is manufactured (at 1025) based on the IC's identified in the last iteration of 1010 and the PSiP structure identified in the last iteration of 1015. In some embodiments, the manufacturing process entails purchasing and/or configuring only existing IC's to produce the desired PSiP. In other embodiments, the manufacturing process entails manufacturing at least one new IC to produce the PSiP.
After manufacturing the PSiP, the manufactured PSiP is tested (at 1030) to determine whether the manufactured PSiP meets the system requirements that were identified (at 1005). If not, the process returns to 1010, which was described above. When the manufactured PSiP passes the post-fabrication analysis at 1030, then the process 1000 ends.
VI. Identifying Reconfigurable IC'S for PSiPOnce the available budget has been defined (at 1105), sets of operations are identified (at 1110) by dividing the system requirements of the PSiP into several operational blocks, where each operational block represents a set of operations that the PSiP has to perform.
Once the sets of operations have been identified (at 1110) by dividing the system requirement of the PSiP into several operational blocks, one or more sets of operations (i.e., selects at least one or more operational blocks) are selected at 1115. After selecting one or more sets of operations at 1115, an IC that can perform the selected set or sets of operations is identified at 1120. The identified IC might be an existing IC that can perform or can be configured to perform the set or sets of operations selected at 1115. Alternatively, the identified IC might be an IC that has to be designed to perform, or has to be designed to be configured to perform, the selected set of operations. In at least one iteration through 1120, the selected IC is a configurable IC. In some cases, the configurable IC is a reconfigurable IC that can reconfigured more than once at run time.
Different identified IC's perform the selected set or sets of operations differently. For instance, a non-configurable IC that is identified at 1120 might perform in parallel the operations in the set or sets of operations selected at 1115. Alternatively, the IC identified at 1120 might be a configurable IC that can be configured to perform in parallel the operations in the set or sets of operations selected at 1115. On the other hand, the IC identified at 1120 might be a reconfigurable IC that sequentially performs one or more sub-sets of the operations in the set(s) of operations selected at 1115 during different reconfiguration sub-cycles.
Once the IC is identified at 1120, a determination is made (at 1125) as to whether the actual or estimated cost of the identified IC is less than the available budget. When the selected IC is a previously designed IC, the cost of the IC is the cost associated with purchasing, manufacturing, and/or configuring the previously designed IC. When the selected IC is an IC that has yet to be designed, the cost of the IC is the cost associated with designing, testing, manufacturing, and/or configuring the IC. Furthermore, in some embodiments, the cost of the IC accounts for costs associated with packaging and assembling the IC within the PSiP. In such embodiments, the process 1100 might perform the package-defining operation 1015 of the process 1000 of
If the cost of the identified IC is not less than the available budget, the process 1100 proceeds back to 1120 to identify another IC for the selected set of operations. However, if the cost of the identified IC is less than the available budget, the process 1100 subtracts (at 1130) the cost of the identified IC from the available budget.
Once the cost of the identified IC has been subtracted from the available budget, a determination is made (at 1135) whether there is an additional set of operations that has not yet been associated with an IC. If so, the process 1100 (1) returns back to 1115 to select other set or sets of operations that have not yet been selected, and then (2) proceeds to 1120 to identify another IC for the newly selected set or sets of operations.
When it is determined (at 1135) that there is no additional set of operations, a determination is made (at 1140) whether the identified set of IC's is a good enough set of IC's for implementing the PSiP. For instance, when the identified set of IC's includes a reconfigurable IC, a determination might be made (at 1140) that the reconfigurable IC can perform additional operations in order to reduce the overall cost of the PSiP. Such additional operations would be operations that were previously identified for another IC. When a determination is made (at 1140) that the set of IC's is a good enough set, the process 1100 ends.
A PSiP, i.e., a SiP with a configurable or reconfigurable IC, has many advantages. A PSiP provides a simple solution for combining the often desirable configurable functionality of a configurable or reconfigurable IC with the functionalities commonly provided by other IC's. PSiP's are easier to design than the currently proposed SoC solutions that combine configurable functionality of configurable IC's with other IC functionalities.
Also, the IC's of a PSiP can be manufactured by different fabrication technologies. Hence, optimal fabrication processes can be used to manufacture the IC's of the PSiP. This is to be contrasted with the prior SoC solutions that require the use of one fabrication process for all the operational blocks on the SoC, which results in some of the operational blocks being manufactured by fabrication processes that are far from their optimal fabrication technology.
VII. Chip Scale Wafer PackagingA. Overview
As mentioned above, the PSiP of some embodiments includes several IC's where one of the IC's is a configurable IC. In some embodiments, the configurable IC is a reconfigurable IC that can reconfigure more than once during “run time.” Some embodiments encapsulate the configurable IC in a chip scale package (“CSP”) and package the CSP in the PSiP. In some embodiments, the CSP is a package that is about the same size as the IC. However, different embodiments use different CS package sizes. In some embodiments, the size (measured by area or volume) of the CSP is not greater than 120 percent of the size of the IC. A chip scale package may also be referred to as wafer scale (“WS”) package.
B. Process for Manufacturing PSiP that includes a CS Package
Once the configurable IC's are cut, the process 1300 encapsulates (at 1315) each configurable IC in a CSP. In some embodiments, the CSP includes many of the same components as the PSiP described above. Namely, in some embodiments, a CSP 1605 includes a substrate, a set of solder balls, a set of wire bonding, adhesive, and a cap 1605 for encapsulating the configurable IC 1505, as shown in
Next, the process 1300 determines (1325) whether the CSP works properly. In some embodiments, the CSP is placed on a printed circuit board that is for testing CSP IC's, and tested to ensure that the configurable IC works as designed. In some embodiments, the CSP is tested for numerous functionalities of the configurable IC using conventional CS packaging techniques and equipment.
If the process 1300 determines (at 1325) that the CS package does not work, the process 1300 discards (at 1330) the CSP and proceeds to 1340. However, if the process 1300 determines (at 1325) that the CSP works properly (i.e., passes test), the process 1300 packages (at 1335) the CSP with other IC's in a new PSiP and then proceeds to 1340.
At 1340, the process 1300 determines whether there are any remaining CSP's that were packaged at 1315. If so, the process 1300 proceeds to 1320 to select another CSP. The process 1300 ends when the process 1300 determines (at 1340) that there are no configurable IC's that it has to package in a CSP.
In the above process 1300, several IC's are packaged (at 1335) in the PSiP with one CSP. However, in some embodiments, the PSiP may include more than one CSP's, where one or more of these CSP's may encapsulate IC's that are not configurable.
In some of the above mentioned figures, the configurable IC is encapsulated in a CSP with a cap 1800, as shown in
Furthermore, in some embodiments, only the under fill of the configurable IC (i.e., area that includes the set of solder balls) is covered by the fill 2005, leaving the sides of the configurable IC 1505 bare. In some embodiments, the sides of the configurable IC are left uncovered for heat sink purposes.
C. Advantages
Typically, a PSiP is rigorously tested to make sure that the PSiP works properly (i.e., works as designed). In some cases, the entire PSiP (including IC's in the PSiP that work properly) is discarded when the PSiP cannot pass its test. Since PSiP's often include more than one IC, it is advantageous to test the configurable IC before packaging it to the PSiP. By discarding “bad” configurable IC's (e.g., IC that does not work properly) before packaging them in the PSiP, the number of discarded “good” IC's (i.e., IC that work properly) is reduced.
However, current testing techniques do not adequately test a configurable IC. By encapsulating the configurable IC in a robust CSP that is made for testing, the configurable IC can be properly and rigorously tested to ensure that a working configurable IC is packaged in the PSiP. Furthermore, since the CSP is about the same size as the IC, the entire CSP can be packaged in the PSiP. This eliminates the need to un-package the configurable IC from the CSP before packaging the configurable IC in the PSiP.
In a PSiP, the Configurable IC's might typically use cutting edge manufacturing technology (e.g., 90 nm), whereas other IC's of the PSiP might not. As such, configurable IC's are more likely to be defect prone (i.e., have defective components) than other IC's. Therefore, using the CS package for the configurable IC should reduce the number of PSiP's with defective configurable IC's.
VIII. Defect Tolerant Configurable ICSome embodiments implement a defect tolerant configurable IC in the PSiP in conjunction, or in lieu of using chip scale wafer packaging to reduce the number of discarded PSiPs. A defect tolerant configurable IC as defined in this application means a configurable IC that can perform according to its design specifications even though it has a set of defectively manufactured circuit component. The set of defectively manufacture circuit components might include only one defective component, or it might include more than one defective component.
A. Overview of Configurable IC
A configurable logic circuit is a logic circuit that can be configured to perform different functions on its input data set.
A configurable interconnect circuit is a circuit that can configurably connect an input set to an output set in a variety of manners.
Also, one of ordinary skill will realize that the configurable IC of some embodiments might not have both configurable logic circuits and configurable interconnect circuits. Some embodiments might have configurable logic circuits and non-configurable interconnect circuits, while other embodiments have configurable interconnect circuits and non-configurable logic circuits. Furthermore, in some embodiments, the configurable circuits (e.g., logic, interconnect) are reconfigurable. In some embodiments these reconfigurable circuits are sub-cycle reconfigurable.
B. Design and Manufacture of Defect Tolerant Configurable IC
In some embodiments, the configuration data is generated outside of the configurable IC. In these embodiments, a set of software tools typically converts a high-level IC design (e.g., a circuit representation or a hardware description language design) into a set of configuration data that can configure the configurable IC (or more accurately, the configurable IC's configurable circuits) to implement the IC design.
In some embodiments, the design of a configurable IC layout includes a synthesis operation, which develops a circuit representation of the configurable IC based on a logical representation of the configurable IC. After the circuit representation of the configurable IC is developed, placement and routing operations are performed. During the placement operation, each particular function of the circuit representation of the configurable IC is assigned to a particular logic circuit of the configurable IC. After the placement operation, a routing operation is performed which assigns particular connection schemes to particular interconnect circuits in order to achieve the necessary connections between the configured logic circuits to implement the circuit designed as specified by the synthesis operation. Once the placement and routings operations have been performed, an IC design layout is produced.
As shown in
Next, the process 2300 performs (at 2315) a placement operation on the configurable IC. As mentioned above, the placement operation entails assigning functions of (i.e., defining configuration data sets for) circuits in the circuit representation (specified at 2305) to logic circuits that have not been excluded from the design layout. As shown in
After the placement operation (at 2315), the process 2300 performs (at 2320) a routing operation. The routing operation assigns particular connection schemes to (i.e., defines configuration data sets for) particular interconnect circuits in order to achieve the necessary connections between the configured logic circuits to implement the circuit designed as specified by the synthesis operation. After the placement and routing operations, one particular configuration bit stream (i.e., one configurable IC design layout) is defined for one possible implementation of the IC design by the configurable IC.
Next, the process 2300 determines (at 2330) whether it should generate additional design layouts (i.e., additional configuration bit streams) for other possible implementations of the IC design by the configurable IC. If so, the process 2300 returns to 2310 to exclude another set of circuits, and performs placement and routing operations to produce another IC design layout that has the functionality of the IC circuit representation specified at 2305.
In some embodiments, several iterations of the placement and routing operations are performed to produce several IC design layout that all have same operations (e.g., functionalities, connections). The produced IC design layouts will vary according to the circuit components that are excluded during each iteration of the placement and routing operations. For instance,
Once the set of IC design layouts have been defined, the process 2300 manufactures (at 2335) the configurable IC. Next, the process 2300 determines (at 2340) whether one or more of the circuit components of the manufactured IC is defective. Some embodiments make this determination by performing one or more series of test on the manufactured configurable IC. In some embodiments, these series of test include determining whether the IC performs it operational characteristics by using probes coupled to external testing circuitry (e.g., VLSI tester). This testing circuitry determines whether the output(s) of the circuit are the same as known correct output(s) for the IC. Moreover, some embodiments have a built-in self tester (“BIST”). In such instances, components of the configurable IC are configured to test each other. For example, one half of the configurable IC would test the other half of the configurable IC, and vice versa.
If no circuit component of the manufactured IC is defective, the process 2300 specifies (at 2360) a bitstream-identifying parameter in the configurable IC that identifies one of the configuration bit streams (that were defined at 2315 and 2320) as the configuration bit stream to use for the configurable IC. On the other hand, if a set of circuit components of the manufactured IC is defective, the process 2300 determines (at 2345) whether a configuration bit stream was defined at 2315 and 2320 for a configurable IC with the identified set of defective circuit components. If not, the process discards (at 2350) the configurable IC. Otherwise, at 2355, the process 2300 specifies the bitstream-identifying parameter in the configurable IC to identify the configuration bit stream that was defined for the identified set of defective circuit components.
In some embodiments, the configurable IC is accompanied by a non-volatile memory (e.g., flash memory) that stores all the various configuration bit streams that were defined for the configurable IC at 2315 and 2320. At run time, the parameter that is specified in the configurable IC is used to identify the configuration bit stream that is stored in the non-volatile memory. This identified configuration bit stream can then be retrieved and loaded into the configurable IC to configure the IC so that it can implement the desired circuit design.
The process 2300 can be used to design, manufacture, and configure a configurable IC that can withstand a certain amount of manufacturing defects. The configurable IC can be defect tolerant because the process specifies multiple configuration bit streams for it based on multiple different possible defect patterns on the configurable IC. After manufacturing, the configurable IC's defects are identified, and if those defects fall within one of the defect patterns, the configurable IC is assigned a parameter that at runtime identifies the configuration bit stream that is associated with the particular defect pattern.
The architecture illustrated in
The defect tolerant configurable IC that is produced by using the process 2300 is housed in a PSiP in some embodiments. For instance, any of the configurable IC's of the PSiP's illustrated in
Alternatively, the defect tolerant configurable IC might be individually packaged in its own package and then incorporated into an electronic system using conventional system integration techniques.
The system 2900 can be a stand-alone computing or communication device, or it can be part of another electronic device. As shown in
The bus 2910 collectively represents all system, peripheral, and chipset interconnects (including bus and non-bus interconnect structures) that communicatively connect the numerous internal devices of the system 2900. For instance, the bus 2910 communicatively connects the IC 2910 with the non-volatile memory 2920, the system memory 2915, and the permanent storage device 2925.
From these various memory units, the IC 2905 receives data for processing and configuration data for configuring the IC's configurable logic and/or interconnect circuits. When the IC 2905 has a processor, the IC also retrieves from the various memory units instructions to execute. The non-volatile memory 2920 stores static data and instructions that are needed by the IC 2910 and other modules of the system 2900. The storage device 2925, on the other hand, is read-and-write memory device. This device is a non-volatile memory unit that stores instruction and/or data even when the system 2900 is off. Like the storage device 2925, the system memory 2915 is a read-and-write memory device. However, unlike storage device 2925, the system memory is a volatile read-and-write memory, such as a random access memory. The system memory stores some of the instructions and/or data that the IC needs at runtime.
The bus 2910 also connects to the input and output devices 2930 and 2935. The input devices enable the user to enter information into the system 2900. The input devices 2930 can include touch-sensitive screens, keys, buttons, keyboards, cursor-controllers, microphone, etc. The output devices 2935 display the output of the system 2900.
Finally, as shown in
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.
Claims
1. A system comprising:
- a) a first defect tolerant configurable integrated circuit; and
- b) a second IC communicatively coupled to the defect tolerant configurable first IC.
2. The system of claim 1, wherein the defect tolerant configurable IC comprises a set of defective components.
3. The system of claim 2, wherein at least one defective component from the set of defective components is a logic circuit.
4. The system of claim 2, wherein at least one defective component from the set of defective components is an interconnect circuit.
5. The system of claim 1, wherein the system is a programmable system in a package (“PSiP”) that includes the first and second IC's in one package.
6. The system of claim 5, wherein the PSiP includes a substrate on top of which the first and second IC's are mounted.
7. The system of claim 6, wherein the PSiP includes a covering for covering the top of the substrate and the first and second IC's.
8. The system of claim 7, wherein the covering is a cap that encapsulates the top of the substrate and the IC's to form a housing that contains the first and second ICs.
9. The system of claim 7, wherein the covering is a covering fill that covers the top of the substrate and the first and second ICs.
10. The system of claim 9, wherein the covering fill completely covers the first and second ICs.
11. The system of claim 9, wherein the covering fill leaves a portion of at least one IC exposed.
12. The system of claim 1, wherein the defect tolerant configurable IC is a reconfigurable IC.
13. The system of claim 12, wherein the reconfigurable IC operates at a first clock rate that is faster than a second clock rate of another one of the IC's.
14. The system of claim 12, wherein the reconfigurable IC implements an IC that is designed for a first clock rate, wherein the reconfigurable IC operates at a second clock rate that is faster than the second clock rate.
15. The system of claim 14, wherein the first clock rate is the rate of a first clock, wherein the reconfigurable IC reconfigures multiple times within a clock cycle of the first clock.
Type: Application
Filed: May 17, 2012
Publication Date: Feb 21, 2013
Inventor: Steven Teig (Menlo Park, CA)
Application Number: 13/474,681