I. Field of the Disclosure
The technology of the disclosure relates generally to enhancing speed and power characteristics of an integrated circuit.
II. Background
Improving performance capabilities of integrated circuits, in terms of both speed and power consumption, is becoming an increasingly important concern with respect to a wide variety of applications, particularly mobile systems-on-a-chip (SOCs). Conventionally, an integrated circuit is designed using transistor models simulated at certain voltages and temperatures. This ensures that the circuit design meets performance criteria with respect to signal processing speed and power consumption and leakage. The integrated circuit is then manufactured according to transistor specifications defined by the circuit design. While this conventional approach ensures the integrated circuit will satisfy the desired performance criteria, any modifications to improve the performance of the integrated circuit may require a redesign of the entire integrated circuit, potentially incurring high engineering costs and long development cycle times.
A number of techniques have been developed for implementing performance-enhancing modifications to various devices making up the integrated circuit without necessitating a complete redesign of the circuit. These modifications, which may have the effect of reducing circuit delays, are collectively referred to as “speed-push modifications” or “speed-pushing.” The circuits or devices resulting from such modifications are typically said to be “speed-pushed.” Some non-limiting examples of speed-push modifications are changing transistor threshold voltages, manipulating channel width and length, and thinning gate oxides, among other techniques. The extent to which a device may be speed-pushed depends in large part on a “performance margin” of the device. “Performance margin” is an excess performance capacity of the device above a certain specified minimum performance capability. A conventional method of applying speed-pushing to all devices in a core of the integrated circuit speeds up all of the devices in the core equally. This method has been conventionally employed to boost the performance of the core while simultaneously utilizing a lower power technology. Unfortunately, this approach also results in greatly increased power leakage of the core.
Thus, it is desirable to improve performance of an integrated circuit without causing excessive power leakage through use of speed-pushing techniques.
Embodiments of the disclosure provide identifying circuit elements for selective inclusion in speed-push processing in an integrated circuit. Related circuit systems, apparatus, and computer-readable media are also disclosed. In this regard, in one embodiment, a method for altering a speed-push mask is provided. The method comprises analyzing a circuit design comprising a plurality of cells to which a speed-push mask is applied. The method further comprises identifying at least one of the plurality of cells as having performance margin based on analyzing the circuit design. The method additionally comprises altering the speed-push mask to indicate that the at least one of the plurality of cells having performance margin is to be fabricated as a non-speed-pushed cell. In this manner, power leakage that may result from fabricating cells containing non-critical paths of an integrated circuit as speed-pushed cells may be avoided.
In another embodiment, a speed-push mask processing circuit is provided. The speed-push mask processing circuit is configured to analyze a circuit design comprising a plurality of cells to which a speed-push mask is applied. The speed-push mask processing circuit is additionally configured to identify at least one of the plurality of cells as having performance margin based on analyzing the circuit design. The speed-push mask processing circuit is further configured to alter the speed-push mask to indicate that the at least one of the plurality of cells having performance margin is to be fabricated as a non-speed-pushed cell.
In a further embodiment, a speed-push mask processing circuit is provided. The speed-push mask processing circuit comprises a means for analyzing a circuit design comprising a plurality of cells to which a speed-push mask is applied. The speed-push mask processing circuit further comprises a means for identifying at least one of the plurality of cells as having performance margin based on analyzing the circuit design. The speed-push mask processing circuit also comprises a means for altering the speed-push mask to indicate that the at least one of the plurality of cells having performance margin is to be fabricated as a non-speed-pushed cell.
In an additional embodiment, a non-transitory computer-readable medium is provided, having stored thereon computer-executable instructions to cause a processor to implement a method for analyzing a circuit design comprising a plurality of cells to which a speed-push mask is applied. The method implemented by the computer-executable instructions further comprises identifying at least one of the plurality of cells as having performance margin based on analyzing the circuit design. The method implemented by the computer-executable instructions additionally comprises altering the speed-push mask to indicate that the at least one of the plurality of cells having performance margin is to be fabricated as a non-speed-pushed cell.
In another embodiment, a method for creating a speed-push mask is provided. The method comprises analyzing a circuit design comprising a plurality of cells is analyzed, and identifying at least one of the plurality of cells below a performance threshold based on analyzing the circuit design. The method further comprises creating a speed-push mask indicating that the at least one of the plurality of cells below the performance threshold is to be fabricated as a speed-pushed cell. In this manner, performance enhancements may be realized by fabricating cells containing critical paths of an integrated circuit as speed-pushed cells.
In a further embodiment, a speed-push mask processing circuit is provided. The speed-push mask processing circuit is configured to analyze a circuit design comprising a plurality of cells, and is additionally configured to identify at least one of the plurality of cells below a performance threshold based on analyzing the circuit design. The speed-push mask processing circuit is also configured to create a speed-push mask indicating that the at least one of the plurality of cells below the performance threshold is to be fabricated as a speed-pushed cell.
In an additional embodiment, a speed-push mask processing circuit is provided. The speed-push mask processing circuit comprises a means for analyzing a circuit design comprising a plurality of cells. The speed-push mask processing circuit further comprises a means for identifying at least one of the plurality of cells below a performance threshold based on analyzing the circuit design. The speed-push mask processing circuit also comprises a means for creating a speed-push mask indicating that the at least one of the plurality of cells below the performance threshold is to be fabricated as a speed-pushed cell.
In another embodiment, a non-transitory computer-readable medium is provided, having stored thereon computer-executable instructions to cause a processor to implement a method for analyzing a circuit design comprising a plurality of cells. The method implemented by the computer-executable instructions further comprises identifying at least one of the plurality of cells below a performance threshold based on analyzing the circuit design. The method implemented by the computer-executable instructions additionally comprises creating a speed-push mask indicating that the at least one of the plurality of cells below the performance threshold is to be fabricated as a speed-pushed cell.
With reference now to the drawing figures, several exemplary embodiments of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
Embodiments of the disclosure provide identifying circuit elements for selective inclusion in speed-push processing in an integrated circuit. Related circuit systems, apparatus, and computer-readable media are also disclosed. In this regard, in one embodiment, a method for altering a speed-push mask is provided. The method comprises analyzing a circuit design comprising a plurality of cells to which a speed-push mask is applied. The method further comprises identifying at least one of the plurality of cells as having performance margin based on analyzing the circuit design. The method additionally comprises altering the speed-push mask to indicate that the at least one of the plurality of cells having performance margin is to be fabricated as a non-speed-pushed cell. In this manner, power leakage that may result from fabricating cells containing non-critical paths of an integrated circuit as speed-pushed cells may be avoided.
In another embodiment, a method for creating a speed-push mask is provided. The method comprises analyzing a circuit design comprising a plurality of cells is analyzed, and identifying at least one of the plurality of cells below a performance threshold based on analyzing the circuit design. The method further comprises creating a speed-push mask indicating that the at least one of the plurality of cells below the performance threshold is to be fabricated as a speed-pushed cell. In this way, performance enhancements may be realized by fabricating cells containing critical paths of an integrated circuit as speed-pushed cells.
In this regard,
In contrast, the signal path 12(2), comprising a buffer 22 and a logic gate 24, is a “short signal path” that has been identified as non-critical. A non-critical signal path is a signal path that does not limit the signal processing speed of the circuit 10. Thus, operating the signal path 12(2) at a performance level in excess of the required performance specifications of its constituent components does not improve the overall performance of the circuit 10. Indeed, operating the signal path 12(2) at a performance level in excess of the required performance specifications may contribute to excessive power leakage of the circuit 10. Accordingly, the buffer 22 and the logic gate 24 constituting the signal path 12(2) may be said to have performance margin. In order to conserve power with minimal impact on the overall performance of the circuit 10, speed-pushing is not implemented for the signal path 12(2), as indicated by non-speed-pushed path 26.
The signal path 12(3) illustrates a “combination signal path” comprised of a selective mixture of speed-pushed and non-speed-pushed devices. The signal path 12(3) begins and ends with a first and second flip-flop, respectively, and includes a buffer 28 and first and second logic gates 30, 32. In the signal path 12(3), the buffer 28 has been identified as having performance margin. However, the first and second logic gates 30, 32 have been determined to be below a performance threshold (e.g., a speed threshold, a power threshold, or both). Accordingly, to minimize power leakage and maximize performance, the buffer 28 is not speed-pushed, while both the first and second logic gates 30, 32 are speed-pushed. This is illustrated in non-speed-pushed path 34 and speed-pushed path 36 in
In some embodiments, the signal path 12(3) may be produced wherein the buffer 28 and the first and second logic gates 30, 32 are initially designated as speed-pushed by a speed-push mask. The buffer 28 is subsequently determined to have performance margin, and the cell containing the buffer 28 in the circuit design is removed from the speed-push mask and fabricated as a non-speed-pushed cell. This example is discussed in greater detail below with respect to
As used herein, a “cell” refers to a circuit design element representing physical devices or structures for providing Boolean logic functions or storage functions in a circuit. Circuits are conventionally designed by selecting and assembling cells from commonly available cell libraries. As noted above, in some embodiments, power leakage of an integrated circuit may be reduced without sacrificing circuit performance by selectively including cells in a speed-push mask to avoid fabrication of cells containing non-critical paths of the integrated circuit as speed-pushed cells.
In this regard,
A process typically referred to as a design rule check is then performed on the resulting speed-push mask (block 46). Generally, when fabricating an integrated circuit, a size of a speed-push mask feature is inversely proportional to the likelihood that an underlying circuit may be physically manufactured to desired specifications. Stated differently, the smaller the area of the speed-push mask feature, the less likely that successful fabrication may be guaranteed. Thus, fabrication facilities specify design rules that dictate minimum permissible areas for mask enclosure regions. Requiring that a speed-push mask adhere to these minimum area/enclosure rules may help to garner a lower probability of fabrication defects.
The results of the design rule check are reviewed to determine if a minimum area/enclosure violation was detected within the speed-push mask (block 48). For example, a minimum area/enclosure violation may comprise an area of the speed-push mask, representing a speed-pushed or non-speed-pushed cell, which violates the minimum area/enclosure rule. If the speed-push mask is found to have minimum area and/or enclosure violations, then the speed-push mask is altered to resolve the minimum area and/or enclosure violations (block 50). Resolving the minimum area and/or enclosure violations in this manner may involve fabricating at least one additional cell as a non-speed-pushed cell or reverting at least one of the cells to be fabricated as a non-speed-pushed cell to a speed-pushed cell depending on power and performance targets. The design rule check is then repeated in order to detect any remaining minimum area/enclosure violations within the speed-push mask (block 46). If no minimum area and/or enclosure violations are detected, then the altered speed-push mask is used to generate final mask data for fabrication (block 52).
As referenced above with respect to block 42 of
In some embodiments, performance of an integrated circuit may be enhanced by fabricating cells that are below a performance threshold as speed-pushed cells. For example, the performance threshold may comprise speed threshold, a power threshold, or a combination of both. In this regard,
A design rule check is then performed on the resulting speed-push mask (block 72). As noted above with respect to the exemplary process 38 in
An exemplary process 80 for determining which of a plurality of cells in a circuit design are below a performance threshold, as discussed with respect to block 68 of
As noted above with respect to decision block 48 in
A speed-push mask 94, in which only a cell 96 is designated as speed-pushed, illustrates the converse scenario. Because the cell 96 has an area less than the two-square-unit minimum allowable area, the cell 96 represents a minimum area/enclosure violation. In this case, to resolve the minimum area/enclosure violation while maintaining the speed-pushed status of the cell 96, the speed-push mask 94 may be modified to also designate one of adjacent cells 98, 100, 102, or 104 as a speed-pushed cell. Alternatively, the cell 96 may be fabricated as a non-speed-pushed cell, depending on performance and power targets. Those having skill in the art will recognize that resolutions described for these two scenarios are presented only as examples, and will be readily able to devise other resolutions to these two scenarios that are consistent with the inventive concepts described herein.
Identifying circuit elements for selective inclusion in speed-push processing in an integrated circuit, and related circuit systems, apparatus, and computer-readable media, according to embodiments disclosed herein, may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a mobile phone, a cellular phone, a computer, a portable computer, a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, and a portable digital video player.
In this regard,
Other master and slave devices can be connected to the system bus 116. As illustrated in
The CPU(s) 108 may also be configured to access the display controller(s) 128 over the system bus 116 to control information sent to one or more displays 134. The display controller(s) 128 sends information to the display(s) 134 to be displayed via one or more video processors 136, which process the information to be displayed into a format suitable for the display(s) 134. The display(s) 134 can include any type of display, including but not limited to a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, etc.
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the embodiments disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer-readable medium and executed by a processor or other processing device, or combinations of both. The master and slave devices described herein may be employed in any circuit, hardware component, integrated circuit (IC), or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a processor, a DSP, an Application Specific Integrated Circuit (ASIC), an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The embodiments disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary embodiments herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary embodiments may be combined. It is to be understood that the operational steps illustrated in the flow chart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art would also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The present application is related to co-pending U.S. patent application Ser. No. 13/372,160, filed on Feb. 13, 2012 and entitled “Method and Apparatus to Enable a Selective Push Process During Manufacturing to Improve Performance of a Selected Circuit of an Integrated Circuit,” which is hereby incorporated herein by reference in its entirety.