US 20040060016 A1 Abstract A system and computer implemented method of modifying characteristics of a circuit provide enhanced performance. One embodiment of the method provides for determining a set of objective parameters for the circuit and receiving noise constraints for the circuit. Values of the objective parameters are optimized based on the noise constraints. By using noise constraints in the optimization process, a number of performance issues can be addressed.
Claims(27) 1. A computer implemented method of modifying characteristics of a circuit, the method comprising:
determining a set of objective parameters for the circuit; receiving noise constraints for the circuit; and optimizing values of the objective parameters based on the noise constraints. 2. The method of developing a set of sensitivity factors based on the objective parameters and noise margins in accordance with the noise constraints such that the sensitivity factors characterize a noise sensitivity of the circuit;
selecting objective parameter values and modified noise margins based on the sensitivity factors such that the objective parameter values minimize power costs to the circuit; and
repeating the developing and selecting until changes in the objective parameter values fall below a predetermined threshold.
3. The method of allocating initial noise margins to a plurality of nodes in the circuit;
setting initial objective parameter values in accordance with the initial noise margins; and
repeating the allocating and setting for varied noise margins.
4. The method of 5. The method of 6. The method of 7. The method of 8. The method of measuring power costs to a full cone of logic behind each node in the circuit;
calculating power costs to a full cone of logic ahead of each node in the circuit;
summarizing the measured and calculated power costs into a common sensitivity parameter.
9. The method of constructing an objective function based on the sensitivity factors; and
inputting the objective function to a linear program solver such that the linear program solver generates the objective parameter values and the noise margins.
10. The method of receiving timing constraints for the circuit; and
optimizing the objective parameter values based on the timing constraints.
11. The method of determining timing margins in accordance with the timing constraints;
said timing margins including minimum and maximum delays for a plurality of nodes in the circuit.
12. The method of receiving physical constraints for the circuit; and
optimizing the objective parameter values based on the physical constraints.
13. The method of conducting a topological analysis on critical paths of the circuit, where the optimized objective parameter values are used in the critical paths;
correcting the objective parameters and noise constraints for topological costs that are above a predetermined level; and
repeating the optimizing with the corrected objective parameters and noise constraints.
14. The method of 15. The method of 16. The method of 17. The method of 18. A computer implemented method of optimizing values of objective parameters for a circuit, the method comprising:
developing a set of sensitivity factors based on the objective parameters and noise margins in accordance with noise constraints for the circuit such that the sensitivity factors characterize a noise sensitivity of the circuit; selecting objective parameter values and modified noise margins based on the sensitivity factors such that the objective parameter values minimize power costs to the circuit; and repeating the developing and selecting until changes in the objective parameter values fall below a predetermined threshold. 19. The method of allocating initial noise margins to a plurality of nodes in the circuit;
setting initial objective parameter values in accordance with the initial noise margins; and
repeating the allocating and setting for adjusted noise margins.
20. The method of 21. The method of 22. The method of 23. The method of 24. A computer-readable storage medium storing a set of instructions, the set of instructions capable of being executed by a processor to perform a method of optimizing values of objective parameters for a circuit, the method comprising:
developing a set of sensitivity factors based on the objective parameters and noise margins in accordance with noise constraints for the circuit such that the sensitivity factors characterize a noise sensitivity of the circuit; selecting objective parameter values and modified noise margins based on the sensitivity factors such that the objective parameter values minimize power costs to the circuit; and repeating the developing and selecting until changes in the objective parameter values fall below a predetermined threshold. 25. The medium of allocating initial noise margins to a plurality of nodes in the circuit;
setting initial objective parameter values in accordance with the initial noise margins; and
repeating the allocating and setting for adjusted noise margins.
26. The medium of 27. The medium of Description [0001] 1. Technical Field [0002] The present invention generally relates to integrated circuit design. More particularly, the invention relates to a computer implemented method of modifying circuit characteristics that involves noise and power optimization. [0003] 2. Discussion [0004] 2. Integrated circuit (IC) design is a critical component to the development of personal computers (PCs), personal digital assistance (PDAs), wireless communication devices and many other systems. In order to achieve the desired functionality and speed, logic of varying complexity must often be developed for the IC. In the past, standard logic has been executed by complementary metal-oxide semiconductor (CMOS) circuitry, which is well documented and widely used in industry. More complex, high speed logic has used domino circuits, which include both dynamic and static gates. Domino circuitry is described in a number of sources as U.S. Pat. No. 6,275,071 to Ye et al. [0005] It has been determined that a number of tradeoffs must be made when developing high speed circuits such as domino circuits. For example, power consumption is a particular parameter that is often at odds with timing constraints. As a general matter, in order to reduce delays, more robust, power consuming gates must be used. Other tradeoffs relate to noise reduction and real estate minimization. [0006] Conventional approaches to modifying given circuit characteristics in accordance with the above-described tradeoffs involve determining a set of objective parameters such as available device sizes and power levels, and obtaining various constraints for the circuit. Typically, timing constraints and physical constraints are often used to provide practical limits on the reduction of power levels and real estate usage. Thus, signals must arrive “on time”, gates cannot be smaller than realistically possible, and the values of the objective parameters are optimized with these constraints in mind. While the above-described approach has been acceptable under certain circumstances, the increasing complexity of more recent logic architectures has brought to light a number of difficulties to be addressed. [0007] A particular difficulty relates to noise. A major source of noise in an IC is capacitative and inductive coupling between two or more signal paths, and is often characterized as “crosstalk”. Although noise coupling can have profound effects on timing and power considerations, and can lead to functional failure in domino logic, conventional approaches to circuit optimization often do not take into account these effects. [0008] Another concern with regard to IC design is the manner in which traditional technologies approach the actual optimization. For example, earlier designs worked with only one path at a time, rather than performing a simultaneous solution of tradeoffs in sizing across a multi-output block. It has been determined that such path-wise optimization methods can exhibit unreliable convergence even if margins and interaction with place-and-route is neglected. While certain attempts have been made at simultaneous optimization, the inability to consider noise constraints limits their practical usefulness. Furthermore, these approaches do not include a mechanism for employing realistic gate delay models, especially if these models are non-convex and discrete. [0009] Additionally, reported methods do not describe a mechanism for leveraging the cost-function information from the results of an optimization step. Such a mechanism would enable re-synthesis of netlists in order to improve power versus delay optimization. Conventional methods also do not show wiring/shielding directives and power-cost sensitivities being used to facilitate convergence with logic synthesis and place-and-route operations. Furthermore, designer or project input templates cannot adequately be used to configure and control the optimization and synthesis processes. In addition, many conventional methods of modifying circuit characteristics do not demonstrate the ability to optimize a mix of fixed and continuously tunable gates. [0010] The various advantages of the present invention will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which: [0011]FIG. 1 is a flowchart of an example of a computer implemented method of modifying circuit characteristics in accordance with one embodiment of the present invention; [0012]FIG. 2 is a flowchart of an example of a computer implemented method of optimizing objective parameter values in accordance with one embodiment of the present invention; [0013]FIG. 3 is a flowchart of an example of a process for developing sensitivity factors in accordance with one embodiment with the present invention; [0014]FIG. 4 is a diagram illustrating an example of a set of objective parameters in accordance with one embodiment of the present invention; [0015]FIG. 5 is a flowchart of an example of a process for minimizing power costs to a circuit in accordance of one embodiment of the present invention; [0016]FIG. 6 is a block diagram showing an example of a dual-nested optimization approach in accordance with one embodiment of the present invention; and [0017]FIG. 7 is a detailed diagram of an example of timed synthesis flow in accordance of the present invention. [0018] A system and computer implemented method of modifying characteristics of a circuit provide enhanced performance. One embodiment of the method provides for determining a set of objective parameters for the circuit and receiving noise constraints for the circuit. Values of the objective parameters are optimized based on the noise constraints. By using noise constraints in the optimization process, a number of performance issues can be addressed. [0019] Further in accordance with an embodiment of the present invention, a computer implemented method of optimizing objective parameter values is provided. A set of sensitivity factors is developed based on the objective parameters and noise margins in accordance with noise constraints for the circuits such that the sensitivity factors characterize a noise sensitivity of the circuit. Objective parameter values and modified noise margins are selected based on the sensitivity factors such that the objective parameter values minimize power costs to the circuit. The method further provides for repeating the developing and selecting until changes in the objective parameter values fall below a predetermined threshold. [0020] In another aspect of the invention, a computer-readable storage medium stores a set of instructions, where the set of instructions are capable of being executed by a processor to form a method of optimizing values of objective parameters for a circuit. [0021] It is to be understood that both the foregoing general description and the following detailed description are merely exemplary of the invention, and are intended to provide an overview or framework for understanding the nature and character of the invention as it is claimed. The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and of the invention, and together with the description serve to explain the principles and operation of the invention. [0022]FIG. 1 shows a computer implemented method [0023] It can be seen that the method [0024] It will be appreciated that the modified circuit characteristics [0025] Turning now to FIG. 2, the preferred approach to optimizing objective parameter values [0026] Turning now to FIG. 3, the preferred approach to developing sensitivity factors is shown in greater detail at block [0027] Returning now to FIG. 3, it can further be seen that during each pass, power costs to the full cone of logic behind each node in the circuit are measured at processing block [0028] Turning now to FIG. 5, the preferred approach to selecting objective parameter values [0029]FIG. 6 shows the key elements of the timed synthesis flow in greater detail. Generally, processing blocks [0030] Sizing and Analysis—Phase One [0031] Sizing and analysis is performed by analyzing the circuit topology and timing relative to block and technology file requirements. In particular, failures to meet limits such as maximum capacitances (CMAX), transition time (TT) targets, capacitive loading on inputs (CIN) or excesses on thresholds for fan-out or fan-in or capacitive loading on clocks are identified. These are input as penalty functions to the optimization phase. It should be noted that, standard timing analysis engines may be used for this step. The engine should be well calibrated with respect to the final verification engine and is preferably the same one. Furthermore, a noise constraint space is derived for all cells in the library. It is preferred that the library characterization is expressed as a polynomial function. [0032] Once the circuit topology and timing is analyzed, the circuit is sized to meet minimum and maximum delay targets and noise targets, working from outputs to inputs, using given library characterization data and given targets. In particular, first pass sizing uses default targets given by the designer, project, or library, in combination with the environmental information (EVR) for the functional block (FUB) and a wire load model. In addition, delay targets after the first pass are fedback from the optimization phase; and the sizing module uses library characterization information for maximum delays, minimum delays, relative to hold time, contention, and other requirements as given by project or designer template inputs. The sizing module also uses library characterization information, if available, as a function of fan-out characteristics, such as ratio of coupling capacitance to total capacitance, total capacitance, resistance values, and worst case input noise margin of a receiving gate in the fan-out. The preferred approach is to extrapolate beyond any given maximum values. Furthermore, if maximum power levels or device sizes in the library are exceeded in order to get the delay, then the result is extrapolated for parallel re-powered gates. As already discussed, phase three re-synthesis will force the meeting of any constraints that are exceeded during the sizing and optimization phases. [0033] It can further be seen that perturb delays are multiplied in positive and negative directions and a re-sizing is executed. Nodal power/delay sensitivities and bounds on sensitivities are calculated based on the results, and re-calculated on every pass. In particular, the costs of logic under the cone of influence of each node are included; and each sizing perturbation step includes the above sizing with respect to margins. It should be noted that standard dynamic step-size techniques are applicable, where the step size for each pass is a function of the trajectory and rate-of-change of the prior results. Furthermore, bounds on the sensitivities are also determined by default as a function (e.g. 2×) of step-size or by designer over-ride. [0034] Phase one further provides for testing for escape from iteration according to whether changes in timing penalties or sizing result are small. Specifically, the change threshold for escape is set either by default, project, setup, or a designer over-ride. It can be seen that if a small sizing change is found, but cost thresholds or timing penalty thresholds are exceeded, the synthesis flow proceeds to design phase three for network re-synthesis. Furthermore, if the stopping criteria are met, phase one outputs a netlist, sensitivity parameters, timing analysis results, and results from the previous phase three pass for critical path analysis and wire re-design directives. This information can be vital to getting custom-class results in convergence with place-and-route optimization and with logic synthesis. [0035] It should be noted that wiring input [0036] Obiective Function and Constraint Formulation—Phase Two [0037] The objective function is formed based on the above calculated sensitivity and penalty parameters and the total power-cost of the block, and the optimization variable is delay. Bounds for delay and for transition times for each node are formed from template inputs and from timing-analysis/EVR results and from the range set for the sensitivity. In general, the sensitivity range is the most constraining bound. All bounds are re-formed on each pass. [0038] The LP solver outputs a set of nodal delays that are exactly optimal with respect to the given parameters and bounds. In particular, it should be noted that although the LP solver always returns a result, the result may exceed some bounds. Furthermore, the LP solver is a standard product, which has seen many advances by vendors and academia. The best available in these products and techniques can be leveraged based on the given application. [0039] As already discussed, optimized delays are fed back to the phase one modules for analysis and sizing. The iteration continues until stopping criteria are met following analysis in phase one. Furthermore, processing block [0040] Network Re-synthesis and Critical Path Analysis—Phase Three [0041] The phase three module analyzes the topological graph to find the highest pathwise cost and penalty totals. Generally, the modified circuit characteristics [0042] In particular, final analysis results are output for use by logic synthesis if the designer elects logic synthesis re-structuring or transforms, such as phase optimization, critical path extraction and re-minimization, or mapping to a difference library. Furthermore, nodes that have exceed library or template maximums for power levels, noise, or other characterization parameters are found. [0043] For fan-outs greater than one (or some other given threshold), phase three splits the fan-out on nodes with exceeded maximums and distributes the loads represented by the receivers according to the pathwise cost information. In particular paths that are less critical are separated from more critical paths during this step; delays on these paths are reset to the maximum value for upsizing only as much as necessary in the net sizing and optimization phases. Furthermore, net splitting can be invoked by directives from place-and-route in order to reduce congestion caused by high fan-out nodes. In this regard, it should be noted that high fan-out nodes occur more frequently in high speed logic with aggressively flattened levels. [0044] For fan-outs of one or less than some other given threshold, a buffering stage is added, according to the given template or rules-set for available buffers and the type of nodes on which they can be used. In dynamic logic, whether inverting or non-inverting buffers, or state-storage buffers need be used is a function of the type of node. In particular, if maximums are exceeded due to noise on low-fan-out nodes, phase three provides for the addition of shielding or the reduction of wire lengths. It is preferred that the list of these changes becomes directives to next pass of place-and-route. [0045] For excessive penalty functions due to delays that are too fast (min-delays), buffering is added according to the given template or rules set for available buffers and the type of node on which they can be used. It should be noted that designer over-rides are supported on all of the above functions. [0046] Turning now to FIG. 7, a detailed data flow of the preferred timed synthesis is shown. Generally, a FUB-specific flow control script or graphical user interface (GUI) [0047] A sizing module [0048] Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims. Referenced by
Classifications
Rotate |