EP2257900A2 - Optimization of integrated circuit design and library - Google Patents
Optimization of integrated circuit design and libraryInfo
- Publication number
- EP2257900A2 EP2257900A2 EP09709144A EP09709144A EP2257900A2 EP 2257900 A2 EP2257900 A2 EP 2257900A2 EP 09709144 A EP09709144 A EP 09709144A EP 09709144 A EP09709144 A EP 09709144A EP 2257900 A2 EP2257900 A2 EP 2257900A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- cells
- library
- cell
- admissible
- design
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Definitions
- This invention relates to the field of electronic design automation, and more specifically, to optimization of digital circuits whose design is based on cell libraries.
- Integrated circuits are important building blocks of the information age and are critical to the information age, affecting every industry including financial, banking, legal, military, high technology, transportation, telephony, oil, medical, drug, food, agriculture, education, and many others.
- Integrated circuits such as DSPs, amplifiers, DRAMs, SRAMs, EPROMs, EEPROMs, Flash memories, microprocessors, ASICs, and programmable logic are used in many applications such as computers, networking, telecommunications, and consumer electronics.
- a method co-optimizes a design and a library (or a set of libraries) in such a way to choose the best set of cells to implement the design.
- the method takes into account the idea of limiting the number of new cells while reducing design costs and respecting design constraints.
- the method chooses a minimum nearly optimum set of cells to optimize a design. This involves the simultaneous optimization of a cell-based design and a cell library used to implement it.
- the method takes into account a set of new cells described as virtual cells, possibly having different transistor topologies, different sizes, different logic functionalities, and/or different cell template than the original library.
- the mapping process can take as an input an extra method of describing possible cells not yet implemented, but with estimative costs available; these cells are referred as virtual cells in this application.
- the design is then mapped to real and virtual cells to determine an initial optimal set of cells.
- the remapped design is then incrementally remapped to reduce the number of cells used while not worsening significantly the implementation costs and still respecting the design constraints. The whole process may be iterated some number of times. After an ideal set of cells is determined, some extra sizes for each cell may be inserted to guarantee timing closure.
- the row height of the final set of cells can also be optimized to better fit the selected cells for the final library.
- a method for simultaneous optimization of a circuit design and library includes: providing an initial circuit netlist, which can be expressed through a plurality of cells or Boolean equations, or other ways, such as RTL code; providing an initially existing set of cells (which can be empty); providing an additional set of admissible functionalities/cells, possibly including virtual cells; mapping the circuit to minimize implementation costs considering the initially existing set of cells and the additional set of admissible functionalities or cells; producing a new remapped netlist; and producing a new cell library specification and description composed of the preexisting cells and the admissible functionalities used in the remapped netlist.
- the additional set of admissible functionalities or cells may be explicitly defined through a list of functionalities or cells, possibly including virtual cells.
- Each of the additionally admissible logic function may have different implementations, including: different transistor topologies, different sizing of the transistors and different drive strengths.
- the additional set of admissible functionalities or cells may be implicitly defined through some parameter.
- the additional set of admissible functionalities may be implicitly defined by the maximum number of inputs allowed.
- the additional set of admissible functionalities may be implicitly defined by the maximum number of series and parallel switches in a series or parallel association.
- the additional set of admissible functionalities may be implicitly defined by the maximum number of arcs in series in a BDD implementation of the function.
- the additional set of admissible functionalities may be implicitly defined by the maximum allowed number of switches in series in a general transistor implementation.
- the additional set of admissible functionalities may be implicitly defined by the maximum allowed number of switches in the exact lower bounds for the number of switches in series in both transistor planes to implement a combinational logic function.
- a method to optimize a cell library template includes: receiving target technology information; receiving a set of functionalities or cells to be included in the library; receiving a set of drive strengths to be created for each function; receiving or deriving a set of transistor topologies for each pair of function and drive strength; producing a preliminary estimate of cell characteristics for different alternative cell templates; and choosing a final template for the library as a function of the characteristics estimated for the ensemble of required cells.
- a method to optimize a cell library associated to a circuit netlist after place and route includes: receiving a place and routed circuit netlist; receiving the associated cell library; removing (or disregarding or disallowing the use of) unused cells from the library; optionally removing (or disregarding or disallowing the use of) unused drive strengths for used functionalities; for each of the used cells, adding a set of neighbor drive strengths, to allow further size adjustments; optionally adapting the cell library template to the new mix of cells according to any one or combination of constraints described in this patent; and outputting a new library specification considering the introduced modifications.
- a method for optimization of a library for use in circuit design includes: providing an initial circuit netlist; providing one or more sets of existing cells; providing one or more sets of additionally admissible cells; analyzing the initial circuit netlist to find cells that reduce implementation costs considering the initially existing set of cells and the additional set of admissible cells; and outputting one or more new cell library specifications and descriptions including a subset of the preexisting cells and a subset of the admissible cells which potentially reduce design costs.
- the initial circuit netlist can be provided by at least one of an expression of a number of cells or Boolean equations. Analyzing the initial circuit netlist can include remapping the circuit while considering the initially existing set of cells and the additional set of admissible cells. The method can include outputting a new remapped netlist.
- the additional set of admissible cells can include at least an explicit set listing additionally available functionalities or cells.
- the additional set of admissible cells can include an explicit set listing additionally available cells, and each of the additionally admissible logic function can have different implementations.
- the additional set of admissible cells can include a set of functionalities or cells which is implicitly defined through some parameter.
- the additional set of admissible cells can include a set of functionalities or cells which is implicitly defined by the maximum number of inputs allowed.
- the additional set of admissible cells can include a set of functionalities or cells which is implicitly defined by the maximum number of series and parallel switches in a series or parallel association.
- the additional set of admissible cells can include a set of cells which is implicitly defined by the maximum number of arcs in series in a BDD implementation of the function.
- the additional set of admissible cells can include a set of functionalities or cells which is implicitly defined by the maximum allowed number of switches in series in a general transistor implementation.
- the additional set of admissible functions can be implicitly defined by the maximum allowed number of switches in the exact lower bounds for the number of switches in series in both transistor plans to implement a combinational logic function.
- a method to optimize a cell library template includes: receiving target technology information; receiving a set of functions or cells to be included in the library; receiving a set of drive strengths to be created for each function; receiving or deriving a set of transistor topologies for each pair of function and drive strength; outputting a preliminary estimate of cell characteristics for different alternative cell templates; and choosing a final template for the library as a function of the characteristics estimated for the ensemble of required cells.
- a method to optimize a cell library associated to a circuit netlist after place and route includes: receiving a place and routed circuit netlist; receiving the associated cell library; removing unused functions from the library; optionally removing unused drive strengths for used functions; for each of the used cells, adding a set of neighbor drive strengths, to allow further size adjustments; optionally adapting the cell library template to the new mix of cells; and outputting a new library specification considering the introduced modifications.
- the optionally adapting the cell library template to the new mix of cells can include: receiving target technology information; receiving a set of functions or cells to be included in the library; receiving a set of drive strengths to be created for each function; receiving or deriving a set of transistor topologies for each pair of function and drive strength; outputting a preliminary estimate of cell characteristics for different alternative cell templates; and choosing a final template for the library as a function of the characteristics estimated for the ensemble of required cells.
- a computer program product to optimize a library for use in circuit design is embodied using a computer-readable medium including: computer-readable code for providing an initial circuit netlist; computer-readable code for providing one or more sets of existing cells; computer-readable code for providing one or more sets of additionally admissible cells; computer-readable code for analyzing the initial circuit netlist to find cells that reduce implementation costs considering the initially existing set of cells and the additional set of admissible cells; and computer-readable code for outputting one or more new cell library specifications and descriptions including a subset of the preexisting cells and a subset of the admissible cells which potentially reduce design costs.
- the computer program product can include computer-readable code for remapping the circuit while considering the initially existing set of cells and the additional set of admissible cells.
- the computer program product can include computer-readable code for outputting a new remapped netlist.
- the additional set of admissible cells can include at least an explicit set listing additionally available functionalities or cells.
- the additional set of admissible cells can include an explicit set listing additionally available cells, and each of the additionally admissible logic function can have different implementations.
- a method includes: providing a first integrated circuit design netlist; mapping groupings of components within the first integrated circuit netlist as corresponding to one or more cells in a first library of cells, stored on a computer-readable medium; removing from the mapping at least one grouping of components to a first cell, where the mapping will not include any first cell mappings; and generating a second library including only the cells identified in the mapping, where the second library does not include any first cell mappings and is stored on a computer-readable medium.
- the method can further include: mapping the first integrated circuit design netlist to a second integrated circuit design netlist, which uses the second library but not the first library; and storing the second integrated circuit design netlist on a computer-readable medium.
- the method can include before generating the second library, adding in the second library a second cell, not in the first library, where the second integrated circuit design netlist includes at least on reference to the second cell.
- the method can include: after generating the second library, identifying and removing at least a second cell of the second library; generating a third library including the cells of the second library, but not the second cell; mapping the first integrated circuit design netlist to a second integrated circuit design netlist, which has references to the third library but not first or second libraries; and storing the second integrated circuit design netlist on a computer- readable medium.
- Generating a second library may include performing a physical synthesis, not a logic synthesis, to obtain cells for the second library.
- Figure 1 shows a system of the present invention for performing electronic design automation.
- Figure 2 shows a simplified system block diagram of a computer system used to execute software of the invention.
- Figure 3 shows a graph of performance versus cost trade-off when considering the library as part of the design space.
- Figure 4 shows a system flow of input and output data for simultaneous optimization of digital design and library.
- Figure 5 shows a system of input and output data for simultaneous optimization of digital design and library, showing the possibility of iteration of the process.
- Figure 6 shows a flow for one possible implementation for simultaneous optimization of digital design and library.
- Figure 7 shows a flow for one possible implementation for simultaneous optimization of digital design and library, showing the possibility of iteration of the process.
- Figure 8 shows a process of performing mapping and placement and routing as a means to select the effective drive strengths that need to be synthesized for a specific design.
- Figure 9 shows a process of optimizing library specification after placement and routing.
- Figure 10 shows generation of the final library.
- Figure 11 shows a circuit composed of eleven cell instances.
- Figure 12 shows an equivalent circuit composed of four cell instances.
- Figure 13 shows an equivalent circuit composed of five cell instances.
- Figures 14A and 14B show integrated circuit layouts of nine- and seven-track versions of the same cell.
- Figure 1 shows a system of the present invention.
- the invention is software that executes on a computer workstation system, such as shown in figure 1.
- Figure 1 shows a computer system 1 that includes a monitor 3, screen 5, cabinet 7, keyboard 9, and mouse 11.
- Mouse 11 may have one or more buttons such as mouse buttons 13.
- Cabinet 7 houses familiar computer components, some of which are not shown, such as a processor (including the possibility of a multiprocessor and gridding), memory, mass storage devices 17, and the like.
- Mass storage devices 17 may include mass disk drives, floppy disks, magnetic disks, optical disks, magneto-optical disks, fixed disks, hard disks, CD-ROMs, recordable CDs, DVDs, recordable DVDs (e.g., DVD-R, DVD+R, DVD-RW, DVD+RW, HD-DVD, or BIu- ray Disc), flash and other nonvolatile solid-state storage (e.g., USB flash drive), battery- backed-up volatile memory, tape storage, reader, and other similar media, and combinations of these.
- mass disk drives floppy disks, magnetic disks, optical disks, magneto-optical disks, fixed disks, hard disks, CD-ROMs, recordable CDs, DVDs, recordable DVDs (e.g., DVD-R, DVD+R, DVD-RW, DVD+RW, HD-DVD, or BIu- ray Disc), flash and other nonvolatile solid-state storage (e.g., USB flash drive), battery
- a computer-implemented or computer-executable version of the invention may be embodied using, stored on, or associated with computer-readable medium.
- a computer- readable medium may include any medium that participates in providing instructions to one or more processors for execution. Such a medium may take many forms including, but not limited to, nonvolatile, volatile, and transmission media.
- Nonvolatile media includes, for example, flash memory, or optical or magnetic disks.
- Volatile media includes static or dynamic memory, such as cache memory or RAM.
- Transmission media includes coaxial cables, copper wire, fiber optic lines, and wires arranged in a bus. Transmission media can also take the form of electromagnetic, radio frequency, acoustic, or light waves, such as those generated during radio wave and infrared data communications.
- a binary, machine-executable version, of the software of the present invention may be stored or reside in RAM or cache memory, or on mass storage device 17.
- the source code of the software of the present invention may also be stored or reside on mass storage device 17 (e.g., hard disk, magnetic disk, tape, or CD-ROM).
- code of the invention may be transmitted via wires, radio waves, or through a network such as the Internet.
- Figure 2 shows a system block diagram of computer system 1 used to execute software of the present invention.
- computer system 1 includes monitor 3, keyboard 9, and mass storage devices 17.
- Computer system 1 further includes subsystems such as central processor 202, system memory 204, input/output (I/O) controller 206, display adapter 208, serial or universal serial bus (USB) port 212, network interface 218, and speaker 220.
- the invention may also be used with computer systems with additional or fewer subsystems.
- a computer system could include more than one processor 202 (i.e., a multiprocessor system) or the system may include a cache memory.
- the processor may be a dual core or multicore processor, where there are multiple processor cores on a single integrated circuit.
- the system may also be part of a distributed computing environment. In a distributed computing environment, individual computing systems are connected to a network and are available to lend computing resources to another system in the network as needed.
- the network may be an internal Ethernet network, Internet, or other network.
- Arrows such as 222 represent the system bus architecture of computer system 1. However, these arrows are illustrative of any interconnection scheme serving to link the subsystems. For example, speaker 220 could be connected to the other subsystems through a port or have an internal connection to central processor 202.
- Computer system 1 shown in figure 1 is but an example of a computer system suitable for use with the present invention. Other configurations of subsystems suitable for use with the present invention will be readily apparent to one of ordinary skill in the art.
- Computer software products may be written in any of various suitable programming languages, such as C, C++, C#, Pascal, Fortran, Perl, Matlab (from Math Works, Inc.), SAS, SPSS, Java, JavaScript, TCL, and AJAX.
- the computer software product may be an independent application with data input and data display modules.
- the computer software products may be classes that may be instantiated as distributed objects.
- the computer software products may also be component software such as Java Beans (from Sun Microsystems) or Enterprise Java Beans (EJB from Sun Microsystems).
- An operating system for the system may be one of the Microsoft Windows® family of operating systems (e.g., Windows 95, 98, Me, Windows NT, Windows 2000, Windows XP, Windows XP x64 Edition, Windows Vista, Windows 7, Windows CE, Windows Mobile), Linux, HP-UX, UNIX, Sun OS, Solaris, Mac OS X, Alpha OS, AIX, IRIX32, or IRIX64, or combinations of these.
- Microsoft Windows is a trademark of Microsoft Corporation.
- Other operating systems may be used.
- a computer in a distributed computing environment may use a different operating system from other computers.
- the computer may be connected to a network and may interface to other computers using this network.
- each computer in the network may perform part of the task of the many series of steps of the invention in parallel.
- the network may be an intranet, internet, or the Internet, among others.
- the network may be a wired network (e.g., using copper), telephone network, packet network, an optical network (e.g., using optical fiber), or a wireless network, or any combination of these.
- data and other information may be passed between the computer and components (or steps) of a system of the invention using a wireless network using a protocol such as Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802.1 Ie, 802.1 Ig, 802. Hi, and 802. Hn, just to name a few examples).
- Wi-Fi IEEE standards 802.11, 802.11a, 802.11b, 802.1 Ie, 802.1 Ig, 802. Hi, and 802. Hn, just to name a few examples.
- signals from a computer may
- This invention is related to the optimization of digital circuits whose design is based on cell libraries. Most digital designs are currently based on cell libraries. This means that most design flows will have a step where the Boolean logic equations are mapped to an interconnected set of cells from the library (or set of libraries). The cells from the library implement logic primitives (Boolean functions and storage elements) that are then connected to each other to produce the desired functionality for the complete circuit.
- the step of converting the equations to a set of interconnected cells is done in a way to obey constraints in some costs (typically required operating frequency) while minimizing other costs (typically area and power). This step is normally known as technology mapping, and there are several tools available from different vendors or universities to perform technology mapping.
- Cell-based design can involve the concepts of mapped and unmapped designs, optimization goals, design constraints, target library, library template. This invention makes use of the concepts of enriched library, used subset, histogram of use, contribution of instances, virtual cells, nearly compacted cells, cell generator tool and cell generator API. These concepts are briefly discussed below.
- a design (or part of a design) is said to be mapped when it is expressed as a network of interconnected cells from a library. Each cell in the library may be instantiated many times; some may be less instantiated (even just once) and some cells available in the library may not be used at all.
- a design (or part of a design) is said to be unmapped when it is described at a higher level, without making references (instantiations) to cells from a library as subdesigns. The task of minimizing design costs while converting an unmapped design into a mapped design is normally called technology mapping.
- optimization goals and design constraints describe to the optimization tool what are the requirements of the designer for the particular design being treated. Typically the optimization tool receives a mix of optimization goals and design constraints, which can be expressed for various points of the circuit. Examples include: minimize area and power while respecting desired arrival times and frequencies; reduce timing and respect maximum area; respect maximum area and increase yield. Many combinations of design goals and constraints can be used by designers to achieve their goals.
- Target library includes: minimize area and power while respecting desired arrival times and frequencies; reduce timing and respect maximum area; respect maximum area and increase yield. Many combinations of design goals and constraints can be used by designers to achieve their goals.
- mapping tools For any optimization step that produces a mapped design, which will refer to a library, it is necessary to specify the target library, containing the cells that can be used by the mapping tool. It is possible for mapping tools to deal with more than one target library, as the available cells can be divided into different libraries.
- the target libraries can include some or all of the initial libraries used for the initial circuit.
- Library template As the final layout of the complete design is done by placing cells side by side, the design of the cells is restricted so that they will fit together more easily when placed this way. Vendors can provide libraries with different templates to accommodate different design goals, like power consumption or high speed. It is not uncommon for a vendor to provide at least three different standard cell libraries for the same technology node: general purpose, high speed and low power versions of the libraries. Some vendors may provide additional other versions. [60] These libraries may use different templates and have different row heights and power grid sizes. Alternatively, these libraries may use the same template or compatible templates to be used in the same design.
- Designers may have to choose among the different versions of the library (e.g., general purpose, high speed, and low power) to implement their designs when the different versions of the library have incompatible templates and the design tools do not support the use of the different templates.
- Designers can mix cells from the different versions of the libraries when the libraries have same or compatible templates. Some templates can accommodate double height cells, which will occupy two adjacent rows.
- a problem the invention solves is to choose a minimum nearly optimum set of cells to optimize a design, considering the possibility of enriching the available target library by adding new cells. This involves the simultaneous optimization of a cell-based design and a cell library used to implement it. Note that the user may be interested only in the optimized library, so the circuit may be used only to guide the library optimization process.
- the invention produces a library that is optimized for a specific design, without the need to output the optimized circuit.
- the method takes into account the fact that the library can be enriched by adding new cells, possibly having different transistor topologies, different sizes, different logic functionalities, and/or different cell template than the original library.
- Enriched library A library is said to be enriched if the designer add new cells to it in order to optimize the design.
- the mapped design makes reference to specific cells from the library, which are instantiated in the design. Not necessarily all the cells from the library are instantiated in the design.
- the set of all the cells that are instantiated at least once in a given mapped design compose the used subset of the library with respect to that given design.
- each cell in the used subset will have a particular number of instances in the design. Some cells may be used only once, while others can be instantiated many times.
- the histogram can be weighted according to some characteristic from the library or from each individual cell (like area, power, delay, and so forth).
- Contribution of instances The contribution of each instance to the design can be measured by how many times it is used in the design (data available from the histogram of use) and by how many times the cell appears in low slack instances (which are related to the contribution to the cell for timing closure of the circuit). The contribution of the instances may be computed with respect to a limited region of the design or with respect to a subdesign.
- Virtual cells are cells that have data generated not from a final layout description of the cells. These virtual cells have not yet been implemented or characterized in their final form (to be used in tape out) but they have estimated costs available, allowing their use during the design and optimization process. The estimated costs are ether derived from other sources than the final layout or are derived from the final layout with a degree of precision different than the ones used for tape out. Depending on how far the virtual cells or they estimated costs are from the final physical implementation (used for tape out), the virtual cells may be virtual to a greater or smaller degree. The nearer the virtual cells are to their final tape out version, the lesser they are virtual. The farther the virtual cells are from their final tape out version, the more they are virtual.
- Nearly compacted cells are cells that still contain some design rule check (DRC) errors, but for which the area and electric characteristics can be derived with a very good precision.
- Virtual cells can also be derived from fully compacted cells by performing a light characterization that results in characterization data that is less precise, but that is less time consuming to obtain.
- a cell generation tool is a tool that can generate cells to be used in a cell-based design. The user has to specify the desired functionality for the cells to be generated.
- the cell generator tool can generate cells starting from a logic equation or from a spice netlist or other forms to specify the desired cells.
- the cell generation is based on a technology definition (providing information about target technology design rules) and a desired cell template for the cells.
- One example of cell generator is the Nangate Library CreatorTM tool whose user's manual is incorporated by reference along with other Nangate software user manuals, Nangate software screens including help screens, and all other references cited in this application.
- Cell generation tools may depend on external tools for the characterization or have a closely integrated tool to perform the characterization.
- One example of a library characterization tool is the Nangate Library CharacterizerTM tool. [70] Trademarks are property of their respective owners. Nangate Library Creator and Nangate Library Characterizer are trademarks of Nangate AJS.
- a cell generator API can provide an interface to estimate cell costs (area, delay, power, and so forth) by using different degrees of precision. Depending on how far from the final physical implementation (used for tape out) the virtual cells are, they may present different degrees of virtuality. The lesser the degree of virtuality, the near the virtual cells are to their final tape-out version. From the previous discussion, a cell can have its cost generated with at least four different options of precision: virtual2, virtual, nearly compacted, and final layout.
- the cell generator application program interface API can provide all these four different methods to generate cell and library data. The cell generator API can be used to retrieve real or estimated costs for admissible functionalities and would return an infinite cost for functionalities considered not available.
- This invention is devoted to use an enriched library to optimize a design.
- the space of solutions is enlarged by the library enrichment, and in subsequent steps the enriched library is filtered to limit the number of added cells to a number defined by the user.
- the goal is to obtain a maximum gain from the enrichment of the library, without adding more cells than allowed by the designer. From a utility point of view, this process allows to co-optimize a design together with the library used to implement it.
- Figure 3 shows a graph of performance versus cost trade-off when considering the library as part of the design space.
- Figure 3 illustrates the problem definition: to find a library (represented as a star point 302) that achieves the desired performance (dotted line 307), while minimizing the implementation costs to introduce potential cost savings.
- the costs presented in the figure are area, delay, and power. These were cited as examples, not as a restriction on the invention; any figure of merit (area, power, delay, yield, and others) that can be measured could be optimized during this process.
- Some approaches filter an existing library without enriching or extending it. For instance, one approach only filters cells from a previously existing library. No enrichment is done. These approaches have the main limitation that it just filters an existing precharacterized library; the approach does not see extra cells that could improve the design. Another limitation is that the filtering of cells is done cell by cell, and neighbor size cells are not preserved for timing closure.
- Another approach uses on-the-fly creation of new cells for optimizing a specific design. This approach does not take an initial (virtual) library into account. It searches the design and creates new cells for candidate points for optimization. The creation of new cells is done based on context specific information, which is used to produce new cells that will be used to replace part of the existing circuit.
- a method creates a design specific cell.
- a method substitute parts of a circuit (e.g., a subcircuit) by a specific cell.
- a method reduces the number of new cells created in the process of adding design specific cells.
- a method performs prelayout estimation of cell characteristics in this context. It can be viewed as one possible method to generate the virtual cells.
- a method generates logic circuits having a functionally redundant transistor network.
- a method receives a design mapped to a given cell library, then the transistor sizes of the cells are changed, in order to speed up the circuit. This change of transistor sizes results in adding new cells to the library, which is then redesigned to accommodate the new cells.
- These approaches work with the creation of design specific cells to be used as a substitute for subcircuits.
- a method for library generation has the cell descriptions a priori. So it is a method to develop a generic library once the cells are known. There is not any design specificity taken into account in this method, so it is possible to say that it is not a design specific library creation method. These approaches do not optimize a library for a specific design. It simply produces cell layouts to form a library once the cells are specified. It is the responsibility of the designers to choose the cells themselves and the method does not help the designers at all in this task.
- Figure 4 shows a system flow of input and output data for simultaneous optimization of digital design and library 400.
- the method takes as inputs an initial design 403, initial library 406 (option), and set of additionally admissible functionalities 409.
- the output from process 400 is a remapped design 413 and library specification 416.
- the library specification or optimized library has new functions, new sizes, new template, and may also include a subset of the initial library. Note that the user may be interested only in optimized library 416, so circuit 403 may be used only to guide library optimization process 400. In this case, the technique produces library specification 416 that is optimized for a specific design, without the need to output the optimized circuit 413.
- the remapped design or circuit may not be output in this case.
- circuit or initial design 403 to be optimized Three input items are circuit or initial design 403 to be optimized, initially existing cell library 406 (which can be empty), and set of additionally admissible logic functionalities 409 implicitly or explicitly defined.
- Other input items such as design constraints and optimization goals, can be used by the method, even if not explicitly shown in the drawing. Design constraints are familiar for a person skilled in the art of circuit design, so they will not be discussed in this description.
- the circuit to be optimized can be described either as a netlist of gates or as a set of equations or a mix of the two, or other formats.
- the initial circuit, or circuit to be optimized may also have been obtained from RTL and may already have been optimized from some degree.
- a netlist of gates is a description of a circuit making instantiations and interconnecting gates that are described in the initially existing library.
- the functionality of the circuit can be derived from the description of the gates and their interconnection.
- the circuit to be optimized can be described as a set of Boolean equations expressing the functionality of the circuit directly, without making instances to specific gates in a library.
- the initial circuit can also make reference to a generic library, where only the functionality of the gates is described.
- any circuit description for which the functionality to be treated can be described can be used in the scope of this invention, including mixed descriptions containing cell references from a library and unmapped parts of the circuit described through equations, truth tables, binary decision diagrams (BDDs), or any equivalent form.
- the initially existing library contains a set of cells that already are available for the design. Notice that this set can be empty; and if this set is not empty, a subset of the library may be disallowed or disregarded or marked as "don't use.”
- the cells may or may not be referenced in the initial description of the circuit to be optimized, which can be a mapped, unmapped or partially mapped or unmapped circuit, or combinations of these.
- the set of additionally admissible cells defines the list of additional (with respect to the original library) cell functionalities that can be viewed as single cells.
- the target library can be seen as the set union of the cells in the original library (or libraries) with the set of additionally admissible logic functionalities.
- the new admissible functionalities are used to generate candidate cells to be added to the library, thus enriching the set of available cells.
- the set of additionally admissible functionalities can be described implicitly or explicitly or even by a combination of the two (implicit and explicit definition).
- Example 1 (for implicit library definition): by number of inputs.
- functionalities can be accepted or discarded according their number of inputs.
- the specific values for the numbers of inputs to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 2 (for implicit library definition): by number of series and parallel transistors in a series parallel implementation. When defining a library by number of series and parallel transistors, functionalities can be accepted or discarded according their number of series and parallel transistors. The specific values for the numbers of series and parallel transistors to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 3 (for implicit library definition): by BDD height. When defining a library by BDD height, functionalities can be accepted or discarded according the height of a BDD representing the functionality. The specific values for the BDD heights to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 4 by the minimum (worst case) length transistor chains achievable in a general switch implementation. This is a "lower bound" in the number of series transistors.
- functionalities can be accepted or discarded according their minimum achievable (worst case) length of transistor chains.
- the specific values for the minimum achievable (worst case) length of transistor chains to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 5 for implicit library definition: any combination of the four methods above, including combining functionalities from these examples with functionalities present in the original library (including generating associations of cells in the original library).
- the explicit definition consists in explicitly listing the set of additionally admissible logic functionalities. This consists in explicitly providing a list of additionally available functionalities in any format suitable for the execution of the method.
- the outputs of the method include a mapped netlist and a set of cells composing a new library.
- the user may be interested only in the optimized library, so the circuit may be used only to guide the library optimization process.
- the invention produces a library that is optimized for a specific design, without the need to output the optimized circuit.
- the mapped netlist and a set of cells composing a new library are described in the following.
- the mapped network is a set of interconnected cells that implement the original circuit, possibly with some advantages in terms of cost, including but not limited to area, delay and power consumption. The specific advantages to be obtained are guided by the designer through the description of design constraints and goals for the mapping tool.
- the cells used in the mapped network are listed in the new library that is also output by the method.
- the new library output by the method can contain any of the following.
- New cells can represent new logic functionalities or new drive strengths for existing logic functionalities, including new transistor topologies for existing functionalities.
- the goal of introducing new cells is to reduce area, delay and power of the final design. The specific advantages to be obtained are guided by the designer through the description of design constraints and goals for the mapping tool. Note that during this process, some cells from the original library may be removed, disregarded, disallowed, or marked as don't use due to the introduction of more efficient cells in the enriched library.
- [105] 3 A new library, meaning that the cell template has changed, to better fit the cell mix in the new cell library. Again, new logic functionalities and new drive strengths for existing cells can be added to the existing library. However, if a new template is chosen, the original cells can possibly be redesigned to fit in the new template. The new template may be introduced as the old one is not the best one considering the new mix of cells.
- a new mixed-template library consisting of cells available in more than one template.
- the principle is similar to the "new library" described above, but cells may be made available in different templates if the place and route tool is able to cope with nonuniform cell templates, or with circuit regions using different templates or power regions or different Vt versions of the cells.
- the mixed-template library may use incompatible templates and have different row heights and power grid sizes; or it may use compatible templates to be used in the same design. This way, designers can choose among different template versions of the cells to be used for different circuit template regions for the case of incompatible templates, or the designers can mix cells in any region of the circuit if the templates are compatible. Some templates can accommodate double-height cells, which will occupy two adjacent rows.
- the new design and library specification produced by the method can be used, as shown in figure 5, as input 520 to the optimization process, producing iterative optimization.
- the optimization process can be iterated any number of times (e.g., 2, 3, 4, 5, 6, or 7 or more times). This is important as it is well known that the results produced by optimization tools are dependent on the initial data, so iterations can provide further improvement.
- the optimization can reuse any previous version of the design or the library produced in previous iterations.
- this step identifies portions of the circuit corresponding to cells in the initial library or functionalities in the set of admissible functionalities (which can become cells).
- This phase is commonly called matching, by people knowledgeable in the art. However, here it presents an original characteristic of being able to identify physical, virtual and virtual2 cells at the same time.
- choose best set of candidate cells implementing the circuit Once the different portions of the circuit have candidate cells assigned, the technique chooses a subset of the candidates such they implement the circuit with the desired trade-off for area, delay, and power consumption costs. The choice performed in this phase is commonly called covering, by people knowledgeable in the art.
- step 610 remove less frequently used candidate cells while cost is acceptable. This step will look into the result of the covering phase and remove the instances of cells that have only a small number of instances. These portions of the circuit are then remapped considering the set of remaining used cells. The goal on this step is to reduce the overall number of cell candidates (and the size of the library), while not increasing significantly the design implementation costs and respecting the design constraints. Note that this process can remove, disregard, or mark as don't use, cells from any library in use for the design.
- step 614 optimize cell template for new library. As a new mix of cells is produced, the library template can be optimized to better accommodate the set of cells present in the optimized library. The library template defines cell height, width of power supplies, regions for P-type and N-type diffusion, and so forth.
- the tailored library specification includes a variety of drive strengths for the cells that are used in the remapped design.
- the call for this variety of drive strengths come from the fact that the drive strengths that will be needed for closing time after place and route are not known a priori.
- the output library in figure 6 is a library specification. This means the virtual and virtual2 cells used in the remapped design have to be used as a specification to produce physical cells, before the final tape out of the circuit. Note that the user may be interested only in the optimized library, so the circuit may be used only to guide the library optimization process. In this case, the invention produces a library that is optimized for a specific design, without the need to output the optimized circuit.
- the new design and library specification produced by the method can be used as input to the optimization process, producing iterative optimization, as shown in figure 7.
- the new design and library specification can be used as input to steps 603 or 610. This is important as it is well known that the results produced by optimization tools are dependent on the initial data, so iterations can provide further improvement. In a more general view of iterative process, the optimization can reuse any previous version of the design or the library produced in previous iterations.
- the user may be interested only in the optimized library, so the circuit may be used only to guide the library optimization process. In this case, the invention produces a library that is optimized for a specific design, without the need to output the optimized circuit.
- the circuit may not be output in this case.
- the methods described here can be further enhanced through a postprocessing step 808, as described in figure 8. With respect to figure 8, note that the user may be interested only in the optimized library, so the circuit may be used only to guide the library optimization process. In this case, the invention produces a library that is optimized for a specific design, without the need to output the optimized circuit. The circuit may not be output in this case.
- This postprocessing step consists of using an output mapped netlist 810 and output enriched library 815 produced by the method to derive a new version of the design by performing placement and routing 818. This placed and routed version 822 of the design allows verifying which cells and sizes from the initial cell library are effectively used in a physical implementation of the circuit. This way, it is possible to carry out a further optimization 826 of the library specification taking into account the effectively used cells and sizes.
- step 937 for used cells and sizes, add additional sizes to allow adjusting existing ones for timing closure. As the circuit is placed and routed and the timing is closed or near to be closed, the cells are near to the final sizes that will be used. For every used cell/size, a set of neighbor sizes is introduced in the library, to allow final timing fixing.
- a step 939 adjust library template to optimize new mix of cells in the optimized design.
- the library template can be optimized to better accommodate the set of cells present in the optimized library.
- the library template defines cell height, width of power supplies, regions for P and N diffusion, and so forth.
- the current invention provides advantages over prior art.
- the invention uses more realistic data in terms of area and performance (power, delay, yield, and others). It also allows controlling the type and number of newly created functionalities.
- the invention has the advantage of adding new cells that can be useful to optimize the design. Additionally, the invention has the step of adding neighborly sized cells to allow final timing closure and optimization.
- the invention has the advantage of exploiting new functionalities, different transistor topologies, different sizes, and variations of the cell template.
- the different sizes in other approaches are generated by interpolation of existing cell sizes, which can add a lot of imprecision when the different sizes have different topologies.
- the invention described here has not this problem and support even the use of more than one topology with the same drive strength.
- the invention is more powerful as cells are first added to the library, and then the mapping tool decides which cells are interesting to be used.
- the invention presented here exploits a large set of cells by having the possibility to use precomputed data about the virtual cells (initial characterization and area preview), which make the invention presented here faster.
- Another point is that there is no need to group cells by similarity (uniquify the cells) when inserting them in the library: the cells are already available in the virtual library (set of additionally available functionalities) with a choice of sizes that enable the mapping tool to choose the same cell size when conditions are similar; making this a nonissue in the context of this invention.
- the invention presented here allows controlling the type of new functionalities that will be created a priory, by adding different flavors of new cells to the library; and then control cell quantity in subsequent steps. This is fundamentally different from the approaches where the cell is generated to satisfy the conditions and then there is a verification step to see if a similar already existing cell can be used instead.
- Other approaches have no features to control the number of newly generated cells.
- Another advantage of the invention is the step of adding neighborly sized cells to allow final timing closure and optimization, if the conditions of use of the cells (e.g., placement) change slightly.
- the invention takes a design into account and automatically produces the specification of the desired cells to optimize the design.
- Other approaches provide no help to the designer to accomplish this task, as the designer was required to produce the cell specifications by himself.
- an enriched library can be used, as for instance the library induced by using combinational cells with a limited number of serially connected PMOS and NMOS transistors in logic gates composed of series and parallel associations of transistors.
- a virtual or physical library can be available, or the cell generator tool can provide cost estimations for the cells to be added.
- the circuit in figure 12 can be obtained. Notice that the number of instances is reduced to four. Even if the cells in figure 12 are possibly larger than the ones in figure 11, it is important to note that the smaller number of cell instances compensates the use of larger cells. Indeed, the circuit in figure 12 requires fewer transistors to implement.
- the circuit in figure 12 can be more efficiently sized, as fewer cell outputs need to be buffered.
- the set of additionally admissible functionalities in this step could be defined explicitly or implicitly, as described before and repeated below.
- the set of additionally admissible logic functionalities defines the list of functionalities that can be viewed as single cells. In this flow, the new admissible functionalities are used to generate candidate cells to be added to the library, thus enriching the set of available cells.
- the set of additionally admissible functionalities can be described implicitly or explicitly or even by a combination of the two (implicit and explicit definition).
- Some different examples of implicit definition of a library are given below. The examples in this application (below and elsewhere) are provided to illustrate some aspects the invention and these aspects can be applied and modified as needed or desired for a particular application. The breadth of the invention should not be limited or restricted in any way to the specific examples given.
- Example 1 (for implicit library definition): by number of inputs.
- functionalities can be accepted or discarded according their number of inputs.
- the specific values for the numbers of inputs to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 2 (for implicit library definition): by number of series and parallel transistors in a series parallel implementation. When defining a library by number of series and parallel transistors, functionalities can be accepted or discarded according their number of series and parallel transistors. The specific values for the numbers of series and parallel transistors to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 3 (for implicit library definition): by BDD height. When defining a library by BDD height, functionalities can be accepted or discarded according the height of a BDD representing the functionality. The specific values for the BDD heights to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 4 by the minimum (worst case) length transistor chains achievable in a general switch implementation. This is a "lower bound" in the number of number of series transistors.
- functionalities can be accepted or discarded according their minimum achievable (worst case) length of transistor chains.
- the specific values for the minimum achievable (worst case) length of transistor chains to be accepted or rejected are parameters that implicitly define the functionalities in the library.
- Example 5 for implicit library definition: any combination of the four methods above, including combining functionalities from these examples with functionalities present in the original library (including generating associations of cells in the original library).
- the explicit definition consists in explicitly listing the set of additionally admissible logic functionalities. This consists in explicitly providing a list of additionally available functionalities in any format suitable for the execution of the method.
- the step of filtering the library to reduce the cells is illustrated in figure 13, which presents a circuit resulting from this step. Consider that the example presented here is part of a much larger circuit, and that the cell generating output signal nO in figure 12 has very few instances in the scope of the larger circuit. Then this particular cell can be forbidden in the library and remapped to cells with a higher number of instances.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2622208P | 2008-02-05 | 2008-02-05 | |
PCT/US2009/033243 WO2009100237A2 (en) | 2008-02-05 | 2009-02-05 | Optimization of integrated circuit design and library |
Publications (2)
Publication Number | Publication Date |
---|---|
EP2257900A2 true EP2257900A2 (en) | 2010-12-08 |
EP2257900A4 EP2257900A4 (en) | 2012-10-17 |
Family
ID=40952683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP09709144A Withdrawn EP2257900A4 (en) | 2008-02-05 | 2009-02-05 | Optimization of integrated circuit design and library |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2257900A4 (en) |
JP (1) | JP5127935B2 (en) |
CN (1) | CN101990671A (en) |
WO (1) | WO2009100237A2 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279899B (en) * | 2011-04-01 | 2013-05-01 | 无锡中科微电子工业技术研究院有限责任公司 | Method for optimizing simplified standard unit library |
CN102663175B (en) * | 2012-03-27 | 2013-11-06 | 苏州芯禾电子科技有限公司 | System and method for constructing three-dimensional model of radio-frequency passive device |
KR101904417B1 (en) * | 2012-03-30 | 2018-10-08 | 삼성전자주식회사 | Semiconductor integrated circuit and method of designing the same |
US10650110B2 (en) | 2015-07-08 | 2020-05-12 | Hewlett Packard Enterprise Development Lp | Photonic circuit design systems |
US10002224B2 (en) * | 2016-02-29 | 2018-06-19 | Synopsys, Inc. | Interactive routing of connections in circuit using auto welding and auto cloning |
WO2017151681A1 (en) * | 2016-02-29 | 2017-09-08 | Synopsys, Inc. | Creating and reusing customizable structured interconnects |
US10572615B2 (en) * | 2017-04-28 | 2020-02-25 | Synopsys, Inc. | Placement and routing of cells using cell-level layout-dependent stress effects |
CN107610569A (en) * | 2017-10-23 | 2018-01-19 | 宜宾学院 | The determination method of analogous circuit experiment equipment and its required electronic component |
CN108846160B (en) * | 2018-05-03 | 2023-03-10 | 上海华虹宏力半导体制造有限公司 | Standard cell library circuit design method |
TWI761750B (en) * | 2020-01-08 | 2022-04-21 | 國立雲林科技大學 | Automatic performance analysis system and method thereof for analog circuits |
CN115828807B (en) * | 2022-12-27 | 2024-07-05 | 北京华大九天科技股份有限公司 | Netlist reduction method based on memory unit identification |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010010090A1 (en) * | 1998-02-11 | 2001-07-26 | Boyle Douglas B. | Method for design optimization using logical and physical information |
US20010032067A1 (en) * | 1999-12-28 | 2001-10-18 | Mahadevamurty Nemani | Method and system for determining optimal delay allocation to datapath blocks based on area-delay and power-delay curves |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05120372A (en) * | 1991-10-25 | 1993-05-18 | Nec Corp | Designing system for gate array |
US5956257A (en) * | 1993-03-31 | 1999-09-21 | Vlsi Technology, Inc. | Automated optimization of hierarchical netlists |
US6539536B1 (en) * | 2000-02-02 | 2003-03-25 | Synopsys, Inc. | Electronic design automation system and methods utilizing groups of multiple cells having loop-back connections for modeling port electrical characteristics |
JP2001265842A (en) * | 2000-03-21 | 2001-09-28 | Katsumi Hashimoto | Composite gate synthesis device, recording medium with composite gate synthesis program stored thereon, and semiconductor device |
DE10025583A1 (en) * | 2000-05-24 | 2001-12-06 | Infineon Technologies Ag | Integrated circuit cell layout optimisation method has initial cell layout automatically modified after optimisation of component dimensions |
JP2003036280A (en) * | 2001-07-23 | 2003-02-07 | Hitachi Ltd | Design data library, design method and manufacturing method of semiconductor integrated circuit |
US7496867B2 (en) * | 2007-04-02 | 2009-02-24 | Lsi Corporation | Cell library management for power optimization |
-
2009
- 2009-02-05 WO PCT/US2009/033243 patent/WO2009100237A2/en active Application Filing
- 2009-02-05 CN CN2009801123097A patent/CN101990671A/en active Pending
- 2009-02-05 EP EP09709144A patent/EP2257900A4/en not_active Withdrawn
- 2009-02-05 JP JP2010546000A patent/JP5127935B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010010090A1 (en) * | 1998-02-11 | 2001-07-26 | Boyle Douglas B. | Method for design optimization using logical and physical information |
US20010032067A1 (en) * | 1999-12-28 | 2001-10-18 | Mahadevamurty Nemani | Method and system for determining optimal delay allocation to datapath blocks based on area-delay and power-delay curves |
Non-Patent Citations (1)
Title |
---|
See also references of WO2009100237A2 * |
Also Published As
Publication number | Publication date |
---|---|
WO2009100237A2 (en) | 2009-08-13 |
EP2257900A4 (en) | 2012-10-17 |
JP5127935B2 (en) | 2013-01-23 |
WO2009100237A3 (en) | 2009-11-05 |
CN101990671A (en) | 2011-03-23 |
JP2011525261A (en) | 2011-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8484603B2 (en) | Circuit design library optimization | |
EP2257900A2 (en) | Optimization of integrated circuit design and library | |
US11126779B2 (en) | High-speed shape-based router | |
US9652576B2 (en) | Detailed placement with search and repair | |
US7603644B2 (en) | Integrated circuit routing and compaction | |
US8015517B1 (en) | Library sizing | |
Han et al. | A global-local optimization framework for simultaneous multi-mode multi-corner clock skew variation reduction | |
US9443050B2 (en) | Low-voltage swing circuit modifications | |
US8898610B1 (en) | Creating cell libraries with a large number of cells | |
Modi et al. | ECO-map: Technology remapping for post-mask ECO using simulated annealing | |
US12032893B2 (en) | Optimizing place-and-routing using a random normalized polish expression | |
Zhou et al. | How much can logic perturbation help from netlist to final routing for FPGAs | |
Conceição | Minimizing transistor count in transistor networks | |
Kurian | An ASIC design and test methodology for an undergraduate design and fabrication project |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20100903 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA RS |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: ANDERSEN, OLE CHRISTIAN Inventor name: CORREIA, VINICIUS PAZUTTI Inventor name: RASMUSSEN, ANDERS BO Inventor name: REIS, ANDRE INACIO |
|
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20120917 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 17/50 20060101AFI20120911BHEP Ipc: G06F 17/40 20060101ALI20120911BHEP |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20130416 |