I. Field of the Disclosure
The technology of the disclosure relates generally to designing integrated circuits (ICs).
II. Background
Computing devices, and particularly mobile communication devices, have become common in current society. The prevalence of these computing devices is driven in part by the many functions that are now enabled on such devices. Demand for such functions increases processing capability requirements and generates a need for more complex circuits. While it is possible that some of this circuitry may function asynchronously, in many cases the circuitry requires (or at least benefits from) a common clock signal. This common clock signal and corresponding clock sinks may be referred to, and represented, as a clock tree.
As the number of elements requiring a common clock signal increases, the physical distance between the clock source and a given clock sink may increase, requiring long conductors, which in turn leads to delays in arrival of the clock signal. Complicating matters is the fact that different sinks may be different distances from the clock source. The different distances mean that the clock signal will arrive at the sinks at different times. This difference is sometimes referred to as clock skew. Clock skew is of concern because it reduces the effective clock period available for computation.
While the majority of the clock skew comes from the different clock paths within the clock tree, some additional clock skew may arise from process variations between elements. Adding to the difficulty in circuit design is the advent of devices that operate at widely varying voltages. For example, wearable internet devices (e.g., Internet on Things (IoT)) may have very low power modes to extend battery life, but may also have an active mode with substantially larger voltages. Clock trees optimized for operation at a first voltage may have different clock skews at a second voltage. Accordingly, there remains a need to be able to design circuits that minimize the clock skew for multiple voltage conditions.
Aspects disclosed in the detailed description include clock tree design methods for ultra-wide voltage range circuits. In particular, exemplary aspects use place and route software to place and route components of an integrated circuit (IC) in an optimal configuration at a first voltage condition or operating under a first voltage constraint. A first clock tree is created as part of the place and route process. Clock skew for the first clock tree is evaluated and minimized through the insertion of bypassable delay elements. Once a wiring routing diagram and clock tree diagram are established, the delay elements are removed from the wiring routing diagram leaving only the bypass in the wiring routing diagram. A second voltage condition is identified (i.e., a second voltage constraint under which the IC will operate), and second clock tree generation software is allowed to optimize the wiring routing diagram (minus delay elements) generated by the initial place and route software. The second clock tree generation software may insert more bypassable delay elements into the wiring routing diagram that allow clock skew optimization at the second voltage condition. The initial bypassable delay elements are then reinserted into the wiring routing diagram and a finished IC is established. By providing clock trees that are optimized at different voltage constraints such as by choosing the right set of buffers, the clock skew may be minimized in all operating voltage states for the IC. Reduction of the clock skew in this manner improves circuit performance.
In this regard in one aspect, a method of designing an IC is disclosed. The method comprises identifying circuit elements within an IC. The method also comprises, under a first voltage constraint, using first place and route software operating to create a first clock tree diagram and a wiring routing diagram for the circuit elements within the IC including providing first bypassable delay elements as appropriate within a first clock tree. The method comprises removing the first bypassable delay elements from the first clock tree diagram and the wiring routing diagram. The method also comprises, under a second voltage constraint, using second clock tree generation software to create a second clock tree diagram for the circuit elements within the IC including providing second bypassable delay elements. The method further comprises, in the wiring routing diagram, reinserting the first bypassable delay elements to form a completed wiring routing diagram.
In another aspect, a method of designing an IC is disclosed. The method comprises identifying circuit elements within an IC. The method also comprises, under a high voltage constraint, using first place and route software operating to create a first clock tree diagram and a wiring routing diagram for the circuit elements within the IC including providing first bypassable delay elements within the first clock tree diagram such that the first clock tree diagram and the wiring routing diagram include small drivers and short wiring routes. The method comprises removing the first bypassable delay elements from the first clock tree diagram and the wiring routing diagram. The method also comprises, under a low voltage constraint, using second clock tree generation software to create a second clock tree diagram for the circuit elements within the IC including providing second bypassable delay elements within the second clock tree diagram such that the second clock tree diagram includes large drivers and long line lengths. The method further comprises, in the wiring routing diagram, reinserting the first bypassable delay elements to form a completed wiring routing diagram.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed in the detailed description include clock tree design methods for ultra-wide voltage range circuits. In particular, exemplary aspects use place and route software to place and route components of an integrated circuit (IC) in an optimal configuration at a first voltage condition or operating under a first voltage constraint. A first clock tree is created as part of the place and route process. Clock skew for the first clock tree is evaluated and minimized through the insertion of bypassable delay elements. Once a wiring routing diagram and clock tree diagram are established, the delay elements are removed from the wiring routing diagram leaving only the bypass in the wiring routing diagram. A second voltage condition is identified (i.e., a second voltage constraint under which the IC will operate), and second clock tree generation software is allowed to optimize the wiring routing diagram (minus delay elements) generated by the initial place and route software. The second clock tree generation software may insert more bypassable delay elements into the wiring routing diagram that allow clock skew optimization at the second voltage condition. The initial bypassable delay elements are then reinserted into the wiring routing diagram and a finished IC is established. By providing clock trees that are optimized at different voltage constraints such as by choosing the right set of buffers, the clock skew may be minimized in all operating voltage states for the IC. Reduction of the clock skew in this manner improves circuit performance.
Pressure to enable ICs that operate in multiple voltage modes (i.e., under multiple voltage constraints) is increasing as a function of the advent of Internet of Things (IoT) and wearable computing devices. Such devices typically have two modes, including a standby mode where relatively low voltages are used (i.e., a low voltage constraint), and an active mode where relatively high voltages are used (i.e., a high voltage constraint). In this regard,
It should be appreciated that different voltage conditions may create different delays among clocked elements as more time may be used in crossing threshold voltages. Different delays may disrupt the carefully generated clock tree and introduce unwanted clock skew into the circuit. In some computing devices, a second clock tree is used to make sure that the clock skew remains minimized across multiple voltage conditions.
In this regard,
In contrast,
While using the two clock trees 20 and 30 allows an IC to operate in multiple voltage conditions with minimal clock skew at each voltage, it should be appreciated that using multiple clock trees (e.g., the clock trees 20 and 30) is expensive and consumes space. Commercial pressure makes such expensive ICs undesirable. Likewise, space, especially in mobile computing devices, is at a premium.
Exemplary aspects of the present disclosure help avoid having to use two separate clock trees (e.g., the clock trees 20 and 30) with bypassable delay elements that may be selectively bypassed depending on the voltage condition of the IC. In a low power mode, the short wires and small drivers are bypassed in favor of fewer larger drivers and longer wires. In contrast, in a high power mode, the large drivers are bypassed and more smaller drivers are used with short wires. Bypassing drivers depending on voltage constraints allows for the clock skew to be minimized across a wide range of voltage constraints. More information about bypassable drivers may be found in the co-pending U.S. patent application Ser. No. 14/642,859, filed Mar. 10, 2015, which is herein incorporated by reference in its entirety. Exemplary aspects of the present disclosure describe how to design an IC that takes advantage of the selectively bypassable delay elements of the previously incorporated co-pending U.S. patent application Ser. No. 14/642,859, filed Mar. 10, 2015.
In particular,
With continued reference to
In this regard,
Returning to
In this regard,
Returning to
In this regard,
Returning to
In this regard,
Returning to
Returning to
By way of further explanation,
As noted above, utilization of exemplary aspects of the present disclosure allows the circuit designer to avoid having to use two separate and distinct clock trees (e.g., clock trees 20 and 30) each having its own wiring and buffers. In place of the two distinct clock trees (e.g., clock trees 20 and 30) a combined clock tree having a single wiring topology with two sets of buffers is used. The combined clock tree is optimized to minimize clock skew at the different voltage conditions.
The clock tree design methods for ultra-wide voltage range circuits, according to aspects 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 128. As illustrated in
The CPU(s) 122 may also be configured to access the display controller(s) 140 over the system bus 128 to control information sent to one or more displays 146. The display controller(s) 140 sends information to the display(s) 146 to be displayed via one or more video processors 148, which process the information to be displayed into a format suitable for the display(s) 146. The display(s) 146 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 aspects 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 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 disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (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 aspects 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 aspects 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 aspects 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 will 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.