US20040015805A1 - Layout quality analyzer - Google Patents

Layout quality analyzer Download PDF

Info

Publication number
US20040015805A1
US20040015805A1 US10/200,365 US20036502A US2004015805A1 US 20040015805 A1 US20040015805 A1 US 20040015805A1 US 20036502 A US20036502 A US 20036502A US 2004015805 A1 US2004015805 A1 US 2004015805A1
Authority
US
United States
Prior art keywords
route
nets
recited
net
routes
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.)
Granted
Application number
US10/200,365
Other versions
US6877147B2 (en
Inventor
David Kidd
Nathan Dias
Matthew Page
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Broadcom Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Priority to US10/200,365 priority Critical patent/US6877147B2/en
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DIAS, NATHAN D., KIDD, DAVID A., PAGE, MATTHEW J.
Publication of US20040015805A1 publication Critical patent/US20040015805A1/en
Priority to US11/046,071 priority patent/US20050132318A1/en
Application granted granted Critical
Publication of US6877147B2 publication Critical patent/US6877147B2/en
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: BROADCOM CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROADCOM CORPORATION
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Definitions

  • This invention is related to the field of integrated circuit design tool software and, more particularly, to design tools for layout processing.
  • the integrated circuit design is reduced to one or more netlists.
  • the integrated circuit is divided, at a high level, into various blocks of functionality, each of which may be reduced to one or more netlists that, when realized as circuits, provide the functionality.
  • Each netlist includes: (i) a list of predesigned circuits (often referred to as cells) which perform identified functions; and (ii) an identification of the interconnection between the cells, typically by using the same signal name on the output of one cell and the inputs of one or more other cells to which that output is connected.
  • the predesigned circuits may include standard cells which perform standard logic/data flow functions (e.g. AND, OR, NAND, more complex logic functions, registers, multiplexors, etc.) which may be used throughout the integrated circuit design and/or custom circuits designed specifically for use in the circuit represented by the netlist.
  • the netlists are then processed with a layout tool to produce a physical layout of the integrated circuit.
  • Each cell is placed on the layout, and nets are introduced into the layout to connect the inputs and outputs of the cells as specified in the netlist.
  • the layout tool may automatically generate the routing of the nets in the layout.
  • one or more nets may be routed in a less than optimum fashion.
  • the added length of wire corresponding to the net may contribute to the delay in the circuit path which includes the net, and may cause the path to exceed the available time for evaluation.
  • Detecting the sub-optimum routing is typically performed by engineers responsible for the integrated circuit design, by visually inspecting graphical representations of the layout and attempting to locate nets which can have their routing shortened.
  • a computer readable medium comprises at least first instructions and second instructions.
  • the first instructions when executed, compute a first plurality of routes. Each route of the first plurality of routes corresponds to a respective net of a plurality of nets in an integrated circuit layout, and represents a theoretically optimal route of the respective net according to a graph theory based algorithm.
  • the second instructions when executed, compare each of the first plurality of routes to a corresponding route of a current plurality of routes, each of the current plurality of routes corresponding to the respective net of the plurality of nets and currently existing in the integrated circuit layout.
  • a method is also contemplated.
  • the theoretically optimal route may be compared to the current route based on any attribute of the routes (e.g. total length, length between any two terminals, total capacitance, total resistance, etc.). Nets which have the greatest deviation between the theoretically optimal route and the current route may be identified, and the designer may focus on those nets for possible rerouting (e.g. manual routing).
  • any attribute of the routes e.g. total length, length between any two terminals, total capacitance, total resistance, etc.
  • FIG. 1 is a block diagram illustrating one embodiment of a design flow including a layout quality analyzer.
  • FIG. 2 is a flowchart illustrating one embodiment of the layout quality analyzer shown in FIG. 1.
  • FIG. 3 is a flowchart illustrating one embodiment of computing Steiner routes for each net.
  • FIG. 4 is a flowchart illustrating one embodiment of comparing Steiner routes to current routes from the layout.
  • FIG. 5 is a flowchart illustrating a second embodiment of comparing Steiner routes to current routes from the layout.
  • FIG. 6 is a block diagram of one embodiment of a computing system including a computer readable medium carrying the layout quality analyzer.
  • FIG. 1 a block diagram illustrating one embodiment of a portion of a design flow is shown. Other embodiments are possible and contemplated.
  • the designer may code a register-transfer level (RTL) description of each block (reference numeral 10 ).
  • RTL register-transfer level
  • Any hardware design language (HDL) may be used as the language for the RTL description (e.g. VHDL, Verilog, etc.).
  • HDL hardware design language
  • the RTL description may comprise one or more files per block, as desired.
  • the designer may choose to use a synthesis tool to synthesize the RTL description to a netlist (reference numeral 12 ).
  • the synthesis tool takes the RTL description and a library of cells (predesigned circuits which have one or more inputs and produce one or more outputs as a specified function of one or more inputs) and generates a netlist of cells, linked together in such a way as to provide the functionality described in the RTL description.
  • the designer may choose to design the circuits manually, using a circuit schematic/schematic capture tool (reference numeral 14 ). The designer may use a combination of circuit schematic design and synthesis for a given block.
  • the resulting netlists and schematic capture data may be provided to a timing analysis tool to estimate the timing of the design (i.e. to estimate whether or not the design will meet timing requirements for the integrated circuit to operate at a desired clock frequency) (reference numeral 16 ). Based on the timing results, the designer may modify the RTL description and/or the circuit schematics to improve the timing (illustrated in FIG. 1 with the dotted lines from the timing analysis (reference numeral 16 ) to the RTL coding (reference numeral 10 ) and the circuit schematics (reference numeral 14 )). At the point illustrated by reference numeral 16 , delay from the nets interconnecting the cells and other circuitry may be estimated (since the layout has not yet been performed) rather than extracted.
  • the estimated timing calculated at reference numeral 16 may be near the timing goals for the integrated circuit, and the layout of the netlists may be performed (reference numeral 18 ).
  • layout work may start in parallel with timing analysis, or may be performed before any timing analysis is performed, as desired.
  • the layout includes placing the cells called out in the netlist into physical positions within the integrated circuit layout, and routing the nets which interconnect the cells using the wiring layers of the integrated circuit layout.
  • the circuit schematics produced using the circuit schematic tools may already be laid out within the circuit, but may be placed within the overall layout and the inputs and outputs of the circuit may be connected to nets, similar to the cells.
  • the layout tools (e.g. the Virtuoso XL tools from Cadence Design Systems, Inc.; etc.) generally attempt to place the cells and generate routes for the nets interconnecting the cells as efficiently as possible. In other cases, manual placement and routing may be performed. In either the manual case or the automated case, one or more nets may be routed in a somewhat inefficient fashion. There may be wiring congestion in certain areas of the layout, and the layout tools may route a net around that congestion, leading to a longer route for that net than may be otherwise possible. A longer route generally leads to a longer delay attributed to that net, and may contribute to timing problems in circuit paths which include that net.
  • a layout quality analyzer tool may be executed in order to aid the designer in detecting nets having routes which may be improved.
  • a “net” may comprise a logical interconnection of terminals on two or more cells/custom circuits.
  • the route for a given net may generally comprise the wire (on the various metal layers of the integrated circuit) used to connect a set of terminals in the layout.
  • the terminals may include the input and output terminals of the cells to which that net is connected, where the cells have been placed at defined locations within the layout.
  • the route may be viewed as a connection of a set of points in a plane.
  • the points may include the terminals mentioned above.
  • the connection may be theoretically optimal if the connection is the lowest cost connection of the possible connections.
  • the cost may be defined in any desired fashion.
  • the cost may be the total length of the connection (i.e. a longer connection may be a higher cost connection than a shorter connection), and thus the theoretically optimal connection would be the shortest total length that connects the points.
  • the cost may be the longest connection between any two points, and thus the theoretically optimal connection would be the connection which generates the shortest connection between each pair of points. Any cost function may be defined.
  • a popular algorithm which may be applied to routing in a layout is the Steiner algorithm, and that algorithm is used as an example of the layout quality analyzer herein.
  • the Steiner algorithm attempts to compute a minimum weight tree which connects the terminals and one or more additional points (referred to as Steiner vertices).
  • Steiner vertices any graph theory based algorithm may be used in other embodiments.
  • Kruskal's algorithm or Prim's algorithm may be used.
  • Kruskal's algorithm a set of partial minimum spanning trees are maintained and the algorithm repeatedly adds the shortest edge in the graph whose vertices are in different partial minimum spanning trees.
  • Prim's algorithm a partial minimum spanning tree is repeatedly added to by connected the nearest vertex that is not already in the partial minimum spanning tree.
  • the layout quality analyzer may use the Steiner algorithm to generate a theoretically optimal route (the Steiner route) for each net in the layout, and then may compare the Steiner route to the current route (extracted from the layout). The comparison may identify one or more nets for which the current route exceeds the corresponding Steiner route, as well as the amount by which the current route exceeds the Steiner route. In this fashion, the designer may rapidly identify nets for possible manual routing to improve the route.
  • the manual routing may not result in the theoretically optimal route, but an improved route may be generated, which may reduce timing issues that may be created by the current route.
  • the dotted line from the layout quality analyzer (reference numeral 20 ) to the layout (reference numeral 18 ) may represent the designer returning to the layout tool to perform manual routing of one or more nets.
  • the timing analysis tool may be executed again prior to performing the layout quality analyzer (reference numeral 22 ), using wire delays for the nets extracted from the integrated circuit layout.
  • the timing information may be used by the layout quality analyzer to select nets to be identified to the designer (e.g. the layout quality analyzer may identify nets that have a timing issue and for which the current route exceeds the Steiner route).
  • the layout quality analyzer may not attempt to use timing information in the identification of nets and thus the timing analysis at reference numeral 22 may be performed in parallel (illustrated by the dotted line from the layout, reference numeral 18 , to the layout quality analyzer) or subsequent to layout quality analysis and manual routing efforts.
  • the design flow may continue toward fabricating the integrated circuit (not shown).
  • the layout quality analyzer may be launched automatically from the layout tool, if desired.
  • FIGS. 2 - 4 are flowcharts illustrating operation of various embodiments of the layout quality analyzer or portions thereof.
  • the layout quality analyzer comprises software (i.e. instructions).
  • the instructions when executed, perform the operations shown in FIGS. 2 - 4 .
  • the instructions may be machine level instructions executed by a processor in a computer system. Alternatively, the instructions may be higher level instructions (e.g. shell scripts, interpretive language instructions, etc.) which are executed by software executing on the processor.
  • FIG. 2 is a flowchart illustrating operation of one embodiment of the layout quality analyzer. Other embodiments are possible and contemplated.
  • the layout quality analyzer may optionally omit nets in the layout which have a positive timing margin (block 30 ).
  • a net has a positive timing margin if the timing analysis tool calculates that the net evaluates before it is required in order to meet the clock frequency goals of the integrated circuit.
  • the margin is the amount of time that the net evaluates prior to it being required.
  • a net may also have a positive timing margin if the timing analysis tool calculates that the net does not re-evaluate before a minimum valid time elapses (i.e. that the net remains stable after evaluation for at least the minimum valid time). In this case, the margin may be the amount of time that the net exceeds the minimum valid time before a re-evaluation may occur.
  • Block 30 is an optional portion of the layout quality analyzer, and other embodiments may omit the block. In other embodiments, nets having a route less than a certain length may be omitted.
  • the layout quality analyzer may compute a Steiner route for each net (or each remaining net, if nets have been omitted in block 30 ) (block 32 ).
  • the Steiner route may be computed based on a variety of cost functions. For example, the total length cost function may be used, or the longest length between any two points cost function may be used. In some embodiments, total capacitance or total resistance measurements may be used to compare routes. In such embodiments, a Steiner route may be calculated for each net and then total capacitance and/or total resistance may be calculated for that route. Capacitance and resistance may be proportional to the length of the route, the wire width along the route, the wire thickness along the route, and the spacing of adjacent wires along the route. Any model for calculating resistance and/or capacitance of a route may be used.
  • the layout quality analyzer compares the Steiner route for each net to the current route for that net (block 34 ). The comparison may be performed to identify those nets that have the greatest deviation of the current route from the Steiner route for that net.
  • the layout quality analyzer may sort a list of the nets in the layout based on a metric representing the difference, for each net, between the current route and the Steiner route for that net. In this manner, the greatest deviation may be at the top or the bottom of the list.
  • the layout quality analyzer may only output the nets for which the metric exceeds a threshold to identify the nets having the greatest deviation.
  • the layout quality analyzer may launch a layout graphical user interface (GUI) which permits the viewing the Steiner route and the current route of each net (block 36 ).
  • GUI layout graphical user interface
  • the corresponding routes may be presented side-byside, vertically, or overlaid (e.g. with different colors for the Steiner route and the current route). Presenting the routes graphically may permit the designer to more readily visualize the routes that may be selected for manual routing.
  • the routes may be displayed in various colors based on the timing margin of the nets. For example, nets with the worst (most negative) timing margin may be displayed in red, nets with less negative timing margin may be displayed in yellow, and nets with positive timing margin may be displayed in green.
  • a timing GUI may be launched to display the nets with timing information provided as well.
  • the above color schemes may be used to indicate which nets have the greatest deviation between the Steiner route and the current route.
  • Block 36 is optional, and other embodiments may omit block 36 .
  • FIG. 3 a flowchart illustrating operation of one embodiment of computing a Steiner route (block 32 in FIG. 2) is shown. Other embodiments are possible and contemplated.
  • certain options which may be passed to the layout quality analyzer are used.
  • a list of nets to be skipped and a timeout are used.
  • Other embodiments may not support one or both of these options, if desired.
  • the list of nets to be skipped may be included if one or more nets are found to take a long time in the Steiner computation, for example, to skip the one or more nets and thus may speed the overall Steiner computation time.
  • the timeout value may be used to prevent the computation of a particular route from taking more than a certain amount of time (at which point that net is automatically skipped).
  • the skipped nets may be deleted from the list of nets to be processed (which may be extracted from the layout) prior to computing the Steiner routes for the list of nets (block 42 ).
  • Block 44 The first net (or next net, on subsequent iterations) is selected, and the layout quality analyzer begins computation (block 44 ).
  • Blocks 46 , 48 , and 50 represent the operation of the optional timeout.
  • the timeout may actually be implemented as a timed interruption which is set to the timeout value when the computation of the route begins and is cleared when the computation completes, and which automatically interrupts the execution of the computation if the timeout expires prior to completing the computation. If the timeout occurs (decision block 46 ), the layout quality analyzer cancels computation for the current net (block 48 ) and returns to block 44 to select the next net for computation. If the timeout does not occur and the computation is not complete (decision block 50 ), the computation continues.
  • the layout quality analyzer may write the Steiner route to an output file (block 52 ), and select the next net if each net has not yet had Steiner computation performed for it (decision block 54 ).
  • the Steiner routes may be retained in memory until the Steiner computation completes for each net, and the file may be written with the Steiner routes for each net at that time.
  • the Steiner routes may be retained in memory for the comparison process, and may be written to the output file after the comparison occurs (or not written to an output file at all, if desired).
  • the Steiner algorithm may be based on the length of the routes for each net.
  • the total capacitance or total resistance of a route may be used as the basis for comparing Steiner and current routes.
  • the resistance and capacitance per micron may be supplied as parameters to the layout quality analyzer (which may employ defaults if the parameters are not supplied). The resistance and capacitance may be supplied separately for both the horizontal and vertical directions. Additionally, another parameter may be specified to use a simpler model in which the same resistance and capacitance per micron are used for each wire and each direction. Using any desired model, the total resistance or total capacitance of the route may be computed.
  • FIG. 4 a flowchart is shown illustrating operation of one embodiment of comparing Steiner routes to current routes (block 34 in FIG. 2). Other embodiments are possible and contemplated.
  • the layout quality analyzer selects the first net (or the next net, in subsequent iterations) (block 60 ).
  • the layout quality analyzer may check to see if there is a Steiner route available for the selected net (decision block 62 ). If no Steiner route is available, the layout quality analyzer may select the next net. No Steiner route may be available, for example, if the net was skipped (e.g. either due to its inclusion in the skip list supplied by the designer or due to a time out) or was omitted (e.g. for having positive phase margin).
  • the layout quality analyzer calculates the length of the Steiner route (block 64 ), calculates the length of the current route (block 66 ), and computes a comparison metric for the net which indicates the difference between the Steiner length and the current length (block 68 ).
  • the comparison may be made based on any attribute of the routes (e.g. length, capacitance, resistance, etc.), as mentioned above.
  • the comparison metric may be any representation of the difference between the attributes of the Steiner route and the current route.
  • the comparison metric may be the ratio of the current route length to the Steiner route length, the percentage by which the current route length exceeds the Steiner route length, or the difference of the Steiner route length from the current route length. Any of the above metrics may be computed for capacitance or resistance as well.
  • the layout quality analyzer writes the net name, Steiner length, current length, and comparison metric (or a subset of the foregoing) to an output file (block 70 ).
  • the comparison metrics may remain in memory until each net has been processed, and the metrics may be written to the output file together.
  • the layout quality analyzer sorts the output (e.g. according to the performance metric) (block 74 ). In this fashion, the nets to be examined for manual routing may be grouped at one end of the file (top or bottom) and the remaining nets may be ignored by the designer.
  • the comparison metrics may be retained in memory and sorted in memory, then written to the output file in sorted order.
  • FIG. 5 illustrates a second embodiment of comparing Steiner routes to current routes (block 34 in FIG. 2). Other embodiments are possible and contemplated.
  • the embodiment of FIG. 5 may select each net in turn, determine if a Steiner route is available, and compute the Steiner length, the current length, and the comparison metric for that net if the Steiner route is available (blocks 60 , 62 , 64 , 66 , and 68 ). However, in this embodiment, the layout quality analyzer may determine if the comparison metric exceeds a threshold value (decision block 80 ). If so, the comparison metric (and other info such as net name, Steiner length, and current length, as desired) is written to the output file (block 82 ). If the comparison metric does not exceed the threshold, the comparison metric/net is not written to the output file.
  • the output file in this embodiment may comprise a list of nets which may be examined for hand routing. Nets which may be less likely to be hand routed may not appear in the list. If each net has not yet been processed, the layout quality analyzer returns to block 60 to process the next net (decision block 84 ).
  • FIG. 6 a block diagram of a computing system 100 is shown. Other embodiments are possible and contemplated.
  • the computing system 100 includes execution hardware 102 and a computer accessible medium 104 coupled thereto.
  • the computer accessible medium 104 stores the layout quality analyzer 106 , and may include other design tools, netlists, RTL code, etc. (reference numeral 108 ).
  • the execution hardware 102 may include any hardware for executing the layout quality analyzer 106 .
  • the execution hardware 102 may be a computer system coupled to the computer accessible medium 104 via a network or other external peripheral connection.
  • the execution hardware 102 may comprise one or more processors, memory, and other peripherals incorporated into a computer system which also includes the computer accessible medium 104 .
  • the computer accessible medium 104 may include storage media such as magnetic or optical media, e.g., disk, CD-ROM, or DVD-ROM, volatile or non-volatile memory media such as RAM (e.g. SDRAM, RDRAM, SRAM, etc.), ROM, etc., as well as media accessible via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and/or a wireless link.
  • storage media such as magnetic or optical media, e.g., disk, CD-ROM, or DVD-ROM, volatile or non-volatile memory media such as RAM (e.g. SDRAM, RDRAM, SRAM, etc.), ROM, etc., as well as media accessible via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and/or a wireless link.

Abstract

In one embodiment, a computer readable medium comprises at least first instructions and second instructions. The first instructions, when executed, compute a first plurality of routes. Each route of the first plurality of routes corresponds to a respective net of a plurality of nets in an integrated circuit layout, and represents a theoretically optimal route of the respective net according to a graph theory based algorithm. The second instructions, when executed, compare each of the first plurality of routes to a corresponding route of a current plurality of routes, each of the current plurality of routes corresponding to the respective net of the plurality of nets and currently existing in the integrated circuit layout. A method is also contemplated.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • This invention is related to the field of integrated circuit design tool software and, more particularly, to design tools for layout processing. [0002]
  • 2. Description of the Related Art [0003]
  • The clock frequencies at which integrated circuits are designed to operate continue to increase over time. As a result, wire delay (the delay in propagating signals between the circuits in the integrated circuit) is increasingly an important factor in whether or not the clock frequency goals of the integrated circuit can be met. [0004]
  • In a typical design flow, the integrated circuit design is reduced to one or more netlists. Typically, the integrated circuit is divided, at a high level, into various blocks of functionality, each of which may be reduced to one or more netlists that, when realized as circuits, provide the functionality. Each netlist includes: (i) a list of predesigned circuits (often referred to as cells) which perform identified functions; and (ii) an identification of the interconnection between the cells, typically by using the same signal name on the output of one cell and the inputs of one or more other cells to which that output is connected. The predesigned circuits may include standard cells which perform standard logic/data flow functions (e.g. AND, OR, NAND, more complex logic functions, registers, multiplexors, etc.) which may be used throughout the integrated circuit design and/or custom circuits designed specifically for use in the circuit represented by the netlist. [0005]
  • The netlists are then processed with a layout tool to produce a physical layout of the integrated circuit. Each cell is placed on the layout, and nets are introduced into the layout to connect the inputs and outputs of the cells as specified in the netlist. In many cases, the layout tool may automatically generate the routing of the nets in the layout. [0006]
  • Due to a variety of factors (including limited wiring space, limitations in the algorithms used to automatically generate the routing, etc.), one or more nets may be routed in a less than optimum fashion. The added length of wire corresponding to the net may contribute to the delay in the circuit path which includes the net, and may cause the path to exceed the available time for evaluation. Detecting the sub-optimum routing is typically performed by engineers responsible for the integrated circuit design, by visually inspecting graphical representations of the layout and attempting to locate nets which can have their routing shortened. [0007]
  • SUMMARY OF THE INVENTION
  • In one embodiment, a computer readable medium comprises at least first instructions and second instructions. The first instructions, when executed, compute a first plurality of routes. Each route of the first plurality of routes corresponds to a respective net of a plurality of nets in an integrated circuit layout, and represents a theoretically optimal route of the respective net according to a graph theory based algorithm. The second instructions, when executed, compare each of the first plurality of routes to a corresponding route of a current plurality of routes, each of the current plurality of routes corresponding to the respective net of the plurality of nets and currently existing in the integrated circuit layout. A method is also contemplated. [0008]
  • The theoretically optimal route may be compared to the current route based on any attribute of the routes (e.g. total length, length between any two terminals, total capacitance, total resistance, etc.). Nets which have the greatest deviation between the theoretically optimal route and the current route may be identified, and the designer may focus on those nets for possible rerouting (e.g. manual routing). [0009]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The following detailed description makes reference to the accompanying drawings, which are now briefly described. [0010]
  • FIG. 1 is a block diagram illustrating one embodiment of a design flow including a layout quality analyzer. [0011]
  • FIG. 2 is a flowchart illustrating one embodiment of the layout quality analyzer shown in FIG. 1. [0012]
  • FIG. 3 is a flowchart illustrating one embodiment of computing Steiner routes for each net. [0013]
  • FIG. 4 is a flowchart illustrating one embodiment of comparing Steiner routes to current routes from the layout. [0014]
  • FIG. 5 is a flowchart illustrating a second embodiment of comparing Steiner routes to current routes from the layout. [0015]
  • FIG. 6 is a block diagram of one embodiment of a computing system including a computer readable medium carrying the layout quality analyzer.[0016]
  • While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. [0017]
  • DETAILED DESCRIPTION OF EMBODIMENTS
  • Turning now to FIG. 1, a block diagram illustrating one embodiment of a portion of a design flow is shown. Other embodiments are possible and contemplated. [0018]
  • Once the integrated circuit design has been divided into one or more blocks of functionality (more briefly referred to herein as blocks), the designer may code a register-transfer level (RTL) description of each block (reference numeral [0019] 10). Any hardware design language (HDL) may be used as the language for the RTL description (e.g. VHDL, Verilog, etc.). The RTL description may comprise one or more files per block, as desired.
  • The designer may choose to use a synthesis tool to synthesize the RTL description to a netlist (reference numeral [0020] 12). The synthesis tool takes the RTL description and a library of cells (predesigned circuits which have one or more inputs and produce one or more outputs as a specified function of one or more inputs) and generates a netlist of cells, linked together in such a way as to provide the functionality described in the RTL description. On the other hand, the designer may choose to design the circuits manually, using a circuit schematic/schematic capture tool (reference numeral 14). The designer may use a combination of circuit schematic design and synthesis for a given block.
  • The resulting netlists and schematic capture data may be provided to a timing analysis tool to estimate the timing of the design (i.e. to estimate whether or not the design will meet timing requirements for the integrated circuit to operate at a desired clock frequency) (reference numeral [0021] 16). Based on the timing results, the designer may modify the RTL description and/or the circuit schematics to improve the timing (illustrated in FIG. 1 with the dotted lines from the timing analysis (reference numeral 16) to the RTL coding (reference numeral 10) and the circuit schematics (reference numeral 14)). At the point illustrated by reference numeral 16, delay from the nets interconnecting the cells and other circuitry may be estimated (since the layout has not yet been performed) rather than extracted.
  • At some point, the estimated timing calculated at [0022] reference numeral 16 may be near the timing goals for the integrated circuit, and the layout of the netlists may be performed (reference numeral 18). Alternatively, layout work may start in parallel with timing analysis, or may be performed before any timing analysis is performed, as desired. Generally, the layout includes placing the cells called out in the netlist into physical positions within the integrated circuit layout, and routing the nets which interconnect the cells using the wiring layers of the integrated circuit layout. The circuit schematics produced using the circuit schematic tools may already be laid out within the circuit, but may be placed within the overall layout and the inputs and outputs of the circuit may be connected to nets, similar to the cells.
  • The layout tools (e.g. the Virtuoso XL tools from Cadence Design Systems, Inc.; etc.) generally attempt to place the cells and generate routes for the nets interconnecting the cells as efficiently as possible. In other cases, manual placement and routing may be performed. In either the manual case or the automated case, one or more nets may be routed in a somewhat inefficient fashion. There may be wiring congestion in certain areas of the layout, and the layout tools may route a net around that congestion, leading to a longer route for that net than may be otherwise possible. A longer route generally leads to a longer delay attributed to that net, and may contribute to timing problems in circuit paths which include that net. [0023]
  • A layout quality analyzer tool (reference numeral [0024] 22) may be executed in order to aid the designer in detecting nets having routes which may be improved. As used herein, a “net” may comprise a logical interconnection of terminals on two or more cells/custom circuits. The route for a given net may generally comprise the wire (on the various metal layers of the integrated circuit) used to connect a set of terminals in the layout. The terminals may include the input and output terminals of the cells to which that net is connected, where the cells have been placed at defined locations within the layout.
  • The route may be viewed as a connection of a set of points in a plane. For example, the points may include the terminals mentioned above. In graph theory, there are a variety of algorithms for calculating a theoretically optimal connection of a set of points in a plane. The connection may be theoretically optimal if the connection is the lowest cost connection of the possible connections. The cost may be defined in any desired fashion. For example, the cost may be the total length of the connection (i.e. a longer connection may be a higher cost connection than a shorter connection), and thus the theoretically optimal connection would be the shortest total length that connects the points. As another alternative, the cost may be the longest connection between any two points, and thus the theoretically optimal connection would be the connection which generates the shortest connection between each pair of points. Any cost function may be defined. [0025]
  • As mentioned above, many algorithms in graph theory may exist for calculating theoretically optimal connections. A popular algorithm which may be applied to routing in a layout is the Steiner algorithm, and that algorithm is used as an example of the layout quality analyzer herein. The Steiner algorithm attempts to compute a minimum weight tree which connects the terminals and one or more additional points (referred to as Steiner vertices). However, any graph theory based algorithm may be used in other embodiments. For example, Kruskal's algorithm or Prim's algorithm may be used. In Kruskal's algorithm, a set of partial minimum spanning trees are maintained and the algorithm repeatedly adds the shortest edge in the graph whose vertices are in different partial minimum spanning trees. In Prim's algorithm, a partial minimum spanning tree is repeatedly added to by connected the nearest vertex that is not already in the partial minimum spanning tree. [0026]
  • The layout quality analyzer may use the Steiner algorithm to generate a theoretically optimal route (the Steiner route) for each net in the layout, and then may compare the Steiner route to the current route (extracted from the layout). The comparison may identify one or more nets for which the current route exceeds the corresponding Steiner route, as well as the amount by which the current route exceeds the Steiner route. In this fashion, the designer may rapidly identify nets for possible manual routing to improve the route. The manual routing may not result in the theoretically optimal route, but an improved route may be generated, which may reduce timing issues that may be created by the current route. The dotted line from the layout quality analyzer (reference numeral [0027] 20) to the layout (reference numeral 18) may represent the designer returning to the layout tool to perform manual routing of one or more nets.
  • The timing analysis tool may be executed again prior to performing the layout quality analyzer (reference numeral [0028] 22), using wire delays for the nets extracted from the integrated circuit layout. The timing information may be used by the layout quality analyzer to select nets to be identified to the designer (e.g. the layout quality analyzer may identify nets that have a timing issue and for which the current route exceeds the Steiner route). In other embodiments, the layout quality analyzer may not attempt to use timing information in the identification of nets and thus the timing analysis at reference numeral 22 may be performed in parallel (illustrated by the dotted line from the layout, reference numeral 18, to the layout quality analyzer) or subsequent to layout quality analysis and manual routing efforts.
  • Subsequent to layout quality analysis, the design flow may continue toward fabricating the integrated circuit (not shown). [0029]
  • It is noted that, in one embodiment, the layout quality analyzer may be launched automatically from the layout tool, if desired. [0030]
  • FIGS. [0031] 2-4 are flowcharts illustrating operation of various embodiments of the layout quality analyzer or portions thereof. The layout quality analyzer comprises software (i.e. instructions). The instructions, when executed, perform the operations shown in FIGS. 2-4. The instructions may be machine level instructions executed by a processor in a computer system. Alternatively, the instructions may be higher level instructions (e.g. shell scripts, interpretive language instructions, etc.) which are executed by software executing on the processor.
  • FIG. 2 is a flowchart illustrating operation of one embodiment of the layout quality analyzer. Other embodiments are possible and contemplated. [0032]
  • The layout quality analyzer may optionally omit nets in the layout which have a positive timing margin (block [0033] 30). A net has a positive timing margin if the timing analysis tool calculates that the net evaluates before it is required in order to meet the clock frequency goals of the integrated circuit. The margin is the amount of time that the net evaluates prior to it being required. A net may also have a positive timing margin if the timing analysis tool calculates that the net does not re-evaluate before a minimum valid time elapses (i.e. that the net remains stable after evaluation for at least the minimum valid time). In this case, the margin may be the amount of time that the net exceeds the minimum valid time before a re-evaluation may occur. Since these nets are already meeting timing, it may be desirable to omit them from consideration for rerouting. Block 30 is an optional portion of the layout quality analyzer, and other embodiments may omit the block. In other embodiments, nets having a route less than a certain length may be omitted.
  • The layout quality analyzer may compute a Steiner route for each net (or each remaining net, if nets have been omitted in block [0034] 30) (block 32). The Steiner route may be computed based on a variety of cost functions. For example, the total length cost function may be used, or the longest length between any two points cost function may be used. In some embodiments, total capacitance or total resistance measurements may be used to compare routes. In such embodiments, a Steiner route may be calculated for each net and then total capacitance and/or total resistance may be calculated for that route. Capacitance and resistance may be proportional to the length of the route, the wire width along the route, the wire thickness along the route, and the spacing of adjacent wires along the route. Any model for calculating resistance and/or capacitance of a route may be used.
  • The layout quality analyzer then compares the Steiner route for each net to the current route for that net (block [0035] 34). The comparison may be performed to identify those nets that have the greatest deviation of the current route from the Steiner route for that net. In one implementation, the layout quality analyzer may sort a list of the nets in the layout based on a metric representing the difference, for each net, between the current route and the Steiner route for that net. In this manner, the greatest deviation may be at the top or the bottom of the list. In another implementation, the layout quality analyzer may only output the nets for which the metric exceeds a threshold to identify the nets having the greatest deviation.
  • In one implementation, the layout quality analyzer may launch a layout graphical user interface (GUI) which permits the viewing the Steiner route and the current route of each net (block [0036] 36). For example, the corresponding routes may be presented side-byside, vertically, or overlaid (e.g. with different colors for the Steiner route and the current route). Presenting the routes graphically may permit the designer to more readily visualize the routes that may be selected for manual routing. Additionally, in one implementation, the routes may be displayed in various colors based on the timing margin of the nets. For example, nets with the worst (most negative) timing margin may be displayed in red, nets with less negative timing margin may be displayed in yellow, and nets with positive timing margin may be displayed in green. In still other embodiments, a timing GUI may be launched to display the nets with timing information provided as well. In such a GUI, the above color schemes may be used to indicate which nets have the greatest deviation between the Steiner route and the current route. Block 36 is optional, and other embodiments may omit block 36.
  • Turning next to FIG. 3, a flowchart illustrating operation of one embodiment of computing a Steiner route (block [0037] 32 in FIG. 2) is shown. Other embodiments are possible and contemplated.
  • In the embodiment illustrated in FIG. 3, certain options which may be passed to the layout quality analyzer are used. In particular, a list of nets to be skipped and a timeout are used. Other embodiments may not support one or both of these options, if desired. The list of nets to be skipped may be included if one or more nets are found to take a long time in the Steiner computation, for example, to skip the one or more nets and thus may speed the overall Steiner computation time. The timeout value may be used to prevent the computation of a particular route from taking more than a certain amount of time (at which point that net is automatically skipped). [0038]
  • If the skip net option is being used (decision block [0039] 40), the skipped nets (provided to the layout quality analyzer as a list) may be deleted from the list of nets to be processed (which may be extracted from the layout) prior to computing the Steiner routes for the list of nets (block 42).
  • The first net (or next net, on subsequent iterations) is selected, and the layout quality analyzer begins computation (block [0040] 44). Blocks 46, 48, and 50 represent the operation of the optional timeout. The timeout may actually be implemented as a timed interruption which is set to the timeout value when the computation of the route begins and is cleared when the computation completes, and which automatically interrupts the execution of the computation if the timeout expires prior to completing the computation. If the timeout occurs (decision block 46), the layout quality analyzer cancels computation for the current net (block 48) and returns to block 44 to select the next net for computation. If the timeout does not occur and the computation is not complete (decision block 50), the computation continues. When the computation is complete, the layout quality analyzer may write the Steiner route to an output file (block 52), and select the next net if each net has not yet had Steiner computation performed for it (decision block 54). Alternatively, the Steiner routes may be retained in memory until the Steiner computation completes for each net, and the file may be written with the Steiner routes for each net at that time. In yet another alternative the Steiner routes may be retained in memory for the comparison process, and may be written to the output file after the comparison occurs (or not written to an output file at all, if desired).
  • It is noted that, while the above embodiment illustrates a skip net option for indicating nets to be skipped, it is also contemplated that a list of nets to be processed may be provided. In such a case, only the nets provided in the list may be processed (and other nets in the layout may be ignored.) [0041]
  • As mentioned above, the Steiner algorithm may be based on the length of the routes for each net. In other embodiments, the total capacitance or total resistance of a route may be used as the basis for comparing Steiner and current routes. In such embodiments, the resistance and capacitance per micron may be supplied as parameters to the layout quality analyzer (which may employ defaults if the parameters are not supplied). The resistance and capacitance may be supplied separately for both the horizontal and vertical directions. Additionally, another parameter may be specified to use a simpler model in which the same resistance and capacitance per micron are used for each wire and each direction. Using any desired model, the total resistance or total capacitance of the route may be computed. [0042]
  • Turning next to FIG. 4, a flowchart is shown illustrating operation of one embodiment of comparing Steiner routes to current routes (block [0043] 34 in FIG. 2). Other embodiments are possible and contemplated.
  • The layout quality analyzer selects the first net (or the next net, in subsequent iterations) (block [0044] 60). The layout quality analyzer may check to see if there is a Steiner route available for the selected net (decision block 62). If no Steiner route is available, the layout quality analyzer may select the next net. No Steiner route may be available, for example, if the net was skipped (e.g. either due to its inclusion in the skip list supplied by the designer or due to a time out) or was omitted (e.g. for having positive phase margin).
  • If the Steiner route is available, the layout quality analyzer calculates the length of the Steiner route (block [0045] 64), calculates the length of the current route (block 66), and computes a comparison metric for the net which indicates the difference between the Steiner length and the current length (block 68). Generally, the comparison may be made based on any attribute of the routes (e.g. length, capacitance, resistance, etc.), as mentioned above.
  • The comparison metric may be any representation of the difference between the attributes of the Steiner route and the current route. For example, the comparison metric may be the ratio of the current route length to the Steiner route length, the percentage by which the current route length exceeds the Steiner route length, or the difference of the Steiner route length from the current route length. Any of the above metrics may be computed for capacitance or resistance as well. [0046]
  • The layout quality analyzer writes the net name, Steiner length, current length, and comparison metric (or a subset of the foregoing) to an output file (block [0047] 70). Alternatively, the comparison metrics may remain in memory until each net has been processed, and the metrics may be written to the output file together. In this embodiment, after each net has been processed (decision block 72), the layout quality analyzer sorts the output (e.g. according to the performance metric) (block 74). In this fashion, the nets to be examined for manual routing may be grouped at one end of the file (top or bottom) and the remaining nets may be ignored by the designer. The comparison metrics may be retained in memory and sorted in memory, then written to the output file in sorted order.
  • FIG. 5 illustrates a second embodiment of comparing Steiner routes to current routes (block [0048] 34 in FIG. 2). Other embodiments are possible and contemplated.
  • Similar to the embodiment of FIG. 4, the embodiment of FIG. 5 may select each net in turn, determine if a Steiner route is available, and compute the Steiner length, the current length, and the comparison metric for that net if the Steiner route is available (blocks [0049] 60, 62, 64, 66, and 68). However, in this embodiment, the layout quality analyzer may determine if the comparison metric exceeds a threshold value (decision block 80). If so, the comparison metric (and other info such as net name, Steiner length, and current length, as desired) is written to the output file (block 82). If the comparison metric does not exceed the threshold, the comparison metric/net is not written to the output file. Thus, the output file in this embodiment may comprise a list of nets which may be examined for hand routing. Nets which may be less likely to be hand routed may not appear in the list. If each net has not yet been processed, the layout quality analyzer returns to block 60 to process the next net (decision block 84).
  • Turning next to FIG. 6, a block diagram of a [0050] computing system 100 is shown. Other embodiments are possible and contemplated. In the embodiment of FIG. 6, the computing system 100 includes execution hardware 102 and a computer accessible medium 104 coupled thereto. The computer accessible medium 104 stores the layout quality analyzer 106, and may include other design tools, netlists, RTL code, etc. (reference numeral 108).
  • The [0051] execution hardware 102 may include any hardware for executing the layout quality analyzer 106. For example, the execution hardware 102 may be a computer system coupled to the computer accessible medium 104 via a network or other external peripheral connection. Alternatively, the execution hardware 102 may comprise one or more processors, memory, and other peripherals incorporated into a computer system which also includes the computer accessible medium 104.
  • The computer [0052] accessible medium 104 may include storage media such as magnetic or optical media, e.g., disk, CD-ROM, or DVD-ROM, volatile or non-volatile memory media such as RAM (e.g. SDRAM, RDRAM, SRAM, etc.), ROM, etc., as well as media accessible via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and/or a wireless link.
  • Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications. [0053]

Claims (34)

What is claimed is:
1. A method comprising:
computing a first plurality of routes, each route of the first plurality of routes corresponding to a respective net of a plurality of nets in an integrated circuit layout, and each route representing a theoretically optimal route of the respective net according to a graph theory based algorithm; and
comparing each of the first plurality of routes to a corresponding route of a current plurality of routes, each of the current plurality of routes corresponding to the respective net of the plurality of nets and currently existing in the integrated circuit layout.
2. The method as recited in claim 1 wherein the comparing comprises computing a metric for each net of the plurality of nets, the metric for a first net of the plurality of nets representing a difference between a first route of the first plurality of routes and a second route of the current plurality of routes, wherein the first route and the second route correspond to the first net.
3. The method as recited in claim 2 wherein the comparing further comprises:
computing an attribute of the first route as an input to computing the metric; and
computing the attribute of the second route as an input to computing the metric.
4. The method as recited in claim 3 wherein the metric comprises a ratio of the attribute of the second route to the attribute of the first route.
5. The method as recited in claim 3 wherein the metric comprises a percentage difference of the attribute of the second route from the attribute of the first route.
6. The method as recited in claim 3 wherein the metric comprises a difference of the attribute of the first route from the attribute of the second route.
7. The method as recited in claim 3 wherein the attribute comprises a total length.
8. The method as recited in claim 3 wherein the attribute comprises a total capacitance.
9. The method as recited in claim 3 wherein the attribute comprises a total resistance.
10. The method as recited in claim 2 further comprising identifying one or more nets of the plurality of nets, the one or more nets having a greatest deviation, as indicated by the metric, between the corresponding route of the first plurality of routes and the corresponding route of the current plurality of routes.
11. The method as recited in claim 10 wherein identifying comprises sorting a list of the plurality of nets according to the metric.
12. The method as recited in claim 10 wherein identifying comprises listing a subset of the plurality of nets for which the metric exceeds a threshold.
13. The method as recited in claim 1 wherein the computing comprises omitting at least a first net from the plurality of nets.
14. The method as recited in claim 13 wherein the comparing comprising omitting the at least the first net.
15. The method as recited in claim 13 wherein the omitting comprises reading a list of nets to be omitted, the list comprising the first net.
16. The method as recited in claim 13 wherein the omitting comprises detecting a timeout while attempting to compute a route corresponding to the first net.
17. The method as recited in claim 1 further comprising deriving the plurality of nets from a second plurality of nets, the second plurality of nets comprises the plurality of nets and at least one net in addition to the plurality of nets, the at least one net having a positive timing margin.
18. A computer readable medium comprising:
first instructions which, when executed, compute a first plurality of routes, each route of the first plurality of routes corresponding to a respective net of a plurality of nets in an integrated circuit layout, and each route representing a theoretically optimal route of the respective net according to a graph theory based algorithm; and
second instructions which, when executed, compare each of the first plurality of routes to a corresponding route of a current plurality of routes, each of the current plurality of routes corresponding to the respective net of the plurality of nets and currently existing in the integrated circuit layout.
19. The computer readable medium as recited in claim 18 wherein the second instructions comprise instructions which, when executed, compute a metric for each net of the plurality of nets, the metric for a first net of the plurality of nets representing a difference between a first route of the first plurality of routes and a second route of the current plurality of routes, wherein the first route and the second route correspond to the first net.
20. The computer readable medium as recited in claim 19 wherein the second instructions comprise instructions which, when executed:
compute an attribute of the first route as an input to computing the metric; and
compute the attribute of the second route as an input to computing the metric.
21. The computer readable medium as recited in claim 20 wherein the metric comprises a ratio of the attribute of the second route to the attribute of the first route.
22. The computer readable medium as recited in claim 20 wherein the metric comprises a percentage difference of the attribute of the second route from the attribute of the first route.
23. The computer readable medium as recited in claim 20 wherein the metric comprises a difference of the attribute of the first route from the attribute of the second route.
24. The computer readable medium as recited in claim 20 wherein the attribute comprises a total length.
25. The computer readable medium as recited in claim 20 wherein the attribute comprises a total capacitance.
26. The computer readable medium as recited in claim 20 wherein the attribute comprises a total resistance.
27. The computer readable medium as recited in claim 19 further comprising third instructions which, when executed, identify one or more nets of the plurality of nets, the one or more nets having a greatest deviation, as indicated by the metric, between the corresponding route of the first plurality of routes and the corresponding route of the current plurality of routes.
28. The computer readable medium as recited in claim 27 wherein the third instructions comprise instructions which, when executed, sort a list of the plurality of nets according to the metric.
29. The computer readable medium as recited in claim 27 wherein the third instructions comprises instructions which, when executed, list a subset of the plurality of nets for which the metric exceeds a threshold.
30. The computer readable medium as recited in claim 18 wherein the first instructions comprise fourth instructions which, when executed, omit at least a first net from the plurality of nets.
31. The computer readable medium as recited in claim 30 wherein the second instructions comprise instructions which, when executed omit the at least the first net.
32. The computer readable medium as recited in claim 30 wherein the fourth instructions comprise instructions which, when executed, read a list of nets to be omitted, the list comprising the first net.
33. The computer readable medium as recited in claim 30 wherein the fourth instructions comprise instructions which, when executed, detect a timeout while attempting to compute a route corresponding to the first net.
34. The computer readable medium as recited in claim 17 further comprising fifth instructions which, when executed, derive the plurality of nets from a second plurality of nets, the second plurality of nets comprises the plurality of nets and at least one net in addition to the plurality of nets, the at least one net having a positive timing margin.
US10/200,365 2002-07-22 2002-07-22 Technique to assess timing delay by use of layout quality analyzer comparison Expired - Fee Related US6877147B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/200,365 US6877147B2 (en) 2002-07-22 2002-07-22 Technique to assess timing delay by use of layout quality analyzer comparison
US11/046,071 US20050132318A1 (en) 2002-07-22 2005-01-28 Layout quality analyzer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/200,365 US6877147B2 (en) 2002-07-22 2002-07-22 Technique to assess timing delay by use of layout quality analyzer comparison

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/046,071 Continuation US20050132318A1 (en) 2002-07-22 2005-01-28 Layout quality analyzer

Publications (2)

Publication Number Publication Date
US20040015805A1 true US20040015805A1 (en) 2004-01-22
US6877147B2 US6877147B2 (en) 2005-04-05

Family

ID=30443507

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/200,365 Expired - Fee Related US6877147B2 (en) 2002-07-22 2002-07-22 Technique to assess timing delay by use of layout quality analyzer comparison
US11/046,071 Abandoned US20050132318A1 (en) 2002-07-22 2005-01-28 Layout quality analyzer

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/046,071 Abandoned US20050132318A1 (en) 2002-07-22 2005-01-28 Layout quality analyzer

Country Status (1)

Country Link
US (2) US6877147B2 (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098678A1 (en) * 2002-11-18 2004-05-20 Steven Teig Method and apparatus for solving an optimization problem
US20040098693A1 (en) * 2002-11-18 2004-05-20 Steven Teig Method and apparatus for identifying a group of routes for a set of nets
US20060280729A1 (en) * 2005-06-08 2006-12-14 Sanjay Mistry Cellular therapy for ocular degeneration
US20070122903A1 (en) * 2005-05-27 2007-05-31 Alireza Rezania Amniotic fluid derived cells
US20070254359A1 (en) * 2006-04-28 2007-11-01 Lifescan, Inc. Differentiation of human embryonic stem cells
US20090170198A1 (en) * 2007-11-27 2009-07-02 Alireza Rezania Differentiation of human embryonic stem cells
US20090215177A1 (en) * 2008-02-21 2009-08-27 Benjamin Fryer Methods, surface modified plates and compositions for cell attachment, cultivation and detachment
US20090269845A1 (en) * 2008-04-24 2009-10-29 Alireza Rezania Pluripotent cells
US20090325294A1 (en) * 2007-07-01 2009-12-31 Shelley Nelson Single pluripotent stem cell culture
US20090325293A1 (en) * 2008-04-24 2009-12-31 Janet Davis Treatment of pluripotent cells
US20100015711A1 (en) * 2008-06-30 2010-01-21 Janet Davis Differentiation of Pluripotent Stem Cells
US20100015100A1 (en) * 2007-07-31 2010-01-21 Jean Xu Differentiation of human embryonic stem cells
US20100028307A1 (en) * 2008-07-31 2010-02-04 O'neil John J Pluripotent stem cell differentiation
US20100112693A1 (en) * 2008-10-31 2010-05-06 Alireza Rezania Differentiation of Human Embryonic Stem Cells
US20100112692A1 (en) * 2008-10-31 2010-05-06 Alireza Rezania Differentiation of Human Embryonic Stem Cells
US20100124783A1 (en) * 2008-11-20 2010-05-20 Ya Xiong Chen Methods and Compositions for Cell Attachment and Cultivation on Planar Substrates
US20110014703A1 (en) * 2009-07-20 2011-01-20 Jean Xu Differentiation of Human Embryonic Stem Cells
US20110014702A1 (en) * 2009-07-20 2011-01-20 Jean Xu Differentiation of Human Embryonic Stem Cells
US20110151561A1 (en) * 2009-12-23 2011-06-23 Janet Davis Differentiation of human embryonic stem cells
US20110151560A1 (en) * 2009-12-23 2011-06-23 Jean Xu Differentiation of human embryonic stem cells
US20110212067A1 (en) * 2010-03-01 2011-09-01 Centocor Ortho Biotech Inc. Methods for Purifying Cells Derived from Pluripotent Stem Cells
EP2584034A1 (en) 2007-07-31 2013-04-24 Lifescan, Inc. Pluripotent stem cell differentiation by using human feeder cells
US8778673B2 (en) 2004-12-17 2014-07-15 Lifescan, Inc. Seeding cells on porous supports
US9181528B2 (en) 2010-08-31 2015-11-10 Janssen Biotech, Inc. Differentiation of pluripotent stem cells
US9434920B2 (en) 2012-03-07 2016-09-06 Janssen Biotech, Inc. Defined media for expansion and maintenance of pluripotent stem cells
US9506036B2 (en) 2010-08-31 2016-11-29 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9528090B2 (en) 2010-08-31 2016-12-27 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9752125B2 (en) 2010-05-12 2017-09-05 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9969972B2 (en) 2008-11-20 2018-05-15 Janssen Biotech, Inc. Pluripotent stem cell culture on micro-carriers
US10006006B2 (en) 2014-05-16 2018-06-26 Janssen Biotech, Inc. Use of small molecules to enhance MAFA expression in pancreatic endocrine cells
US10066210B2 (en) 2012-06-08 2018-09-04 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into pancreatic endocrine cells
US10076544B2 (en) 2009-07-20 2018-09-18 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US10138465B2 (en) 2012-12-31 2018-11-27 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into pancreatic endocrine cells using HB9 regulators
US10344264B2 (en) 2012-12-31 2019-07-09 Janssen Biotech, Inc. Culturing of human embryonic stem cells at the air-liquid interface for differentiation into pancreatic endocrine cells
US10358628B2 (en) 2011-12-22 2019-07-23 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into single hormonal insulin positive cells
US10370644B2 (en) 2012-12-31 2019-08-06 Janssen Biotech, Inc. Method for making human pluripotent suspension cultures and cells derived therefrom
US10377989B2 (en) 2012-12-31 2019-08-13 Janssen Biotech, Inc. Methods for suspension cultures of human pluripotent stem cells
US10420803B2 (en) 2016-04-14 2019-09-24 Janssen Biotech, Inc. Differentiation of pluripotent stem cells to intestinal midgut endoderm cells

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308664B1 (en) 2004-02-09 2007-12-11 Altera Corporation Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool for routing
US7207020B1 (en) * 2004-02-09 2007-04-17 Altera Corporation Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool
US7188329B2 (en) * 2004-02-13 2007-03-06 Inventec Corporation Computer-assisted electronic component schematic linking method
US8139507B2 (en) * 2004-09-15 2012-03-20 Hewlett-Packard Development Company, L.P. Network graph for alternate routes
US20070118827A1 (en) * 2005-11-21 2007-05-24 Asifur Rahman Method and apparatus for integrated circuit fault isolation and failure analysis using linked tools cockpit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805861A (en) * 1995-08-29 1998-09-08 Unisys Corporation Method of stabilizing component and net names of integrated circuits in electronic design automation systems
US20020049957A1 (en) * 2000-10-05 2002-04-25 Toshikatsu Hosono Method of designing semiconductor integrated circuit device, and apparatus for designing the same
US20030018947A1 (en) * 2000-12-07 2003-01-23 Steven Teig Hierarchical routing method and apparatus that use diagonal routes
US6751744B1 (en) * 1999-12-30 2004-06-15 International Business Machines Corporation Method of integrated circuit design checking using progressive individual network analysis

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065729B1 (en) * 1998-10-19 2006-06-20 Chapman David C Approach for routing an integrated circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805861A (en) * 1995-08-29 1998-09-08 Unisys Corporation Method of stabilizing component and net names of integrated circuits in electronic design automation systems
US6751744B1 (en) * 1999-12-30 2004-06-15 International Business Machines Corporation Method of integrated circuit design checking using progressive individual network analysis
US20020049957A1 (en) * 2000-10-05 2002-04-25 Toshikatsu Hosono Method of designing semiconductor integrated circuit device, and apparatus for designing the same
US20030018947A1 (en) * 2000-12-07 2003-01-23 Steven Teig Hierarchical routing method and apparatus that use diagonal routes

Cited By (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098693A1 (en) * 2002-11-18 2004-05-20 Steven Teig Method and apparatus for identifying a group of routes for a set of nets
US7093221B2 (en) * 2002-11-18 2006-08-15 Cadence Design Systems, Inc. Method and apparatus for identifying a group of routes for a set of nets
US7216308B2 (en) * 2002-11-18 2007-05-08 Cadence Design Systems, Inc. Method and apparatus for solving an optimization problem in an integrated circuit layout
US20040098678A1 (en) * 2002-11-18 2004-05-20 Steven Teig Method and apparatus for solving an optimization problem
US8778673B2 (en) 2004-12-17 2014-07-15 Lifescan, Inc. Seeding cells on porous supports
US20070122903A1 (en) * 2005-05-27 2007-05-31 Alireza Rezania Amniotic fluid derived cells
EP2302036A2 (en) 2005-05-27 2011-03-30 Lifescan, Inc. Amniotic fluid derived cells
US9074189B2 (en) 2005-06-08 2015-07-07 Janssen Biotech, Inc. Cellular therapy for ocular degeneration
US20060280729A1 (en) * 2005-06-08 2006-12-14 Sanjay Mistry Cellular therapy for ocular degeneration
US20070254359A1 (en) * 2006-04-28 2007-11-01 Lifescan, Inc. Differentiation of human embryonic stem cells
US8741643B2 (en) 2006-04-28 2014-06-03 Lifescan, Inc. Differentiation of pluripotent stem cells to definitive endoderm lineage
US9725699B2 (en) 2006-04-28 2017-08-08 Lifescan, Inc. Differentiation of human embryonic stem cells
US9080145B2 (en) 2007-07-01 2015-07-14 Lifescan Corporation Single pluripotent stem cell culture
US10316293B2 (en) 2007-07-01 2019-06-11 Janssen Biotech, Inc. Methods for producing single pluripotent stem cells and differentiation thereof
US20090325294A1 (en) * 2007-07-01 2009-12-31 Shelley Nelson Single pluripotent stem cell culture
US9096832B2 (en) 2007-07-31 2015-08-04 Lifescan, Inc. Differentiation of human embryonic stem cells
US10456424B2 (en) 2007-07-31 2019-10-29 Janssen Biotech, Inc. Pancreatic endocrine cells and methods thereof
US20100015100A1 (en) * 2007-07-31 2010-01-21 Jean Xu Differentiation of human embryonic stem cells
EP2584034A1 (en) 2007-07-31 2013-04-24 Lifescan, Inc. Pluripotent stem cell differentiation by using human feeder cells
US9744195B2 (en) 2007-07-31 2017-08-29 Lifescan, Inc. Differentiation of human embryonic stem cells
US9062290B2 (en) 2007-11-27 2015-06-23 Lifescan, Inc. Differentiation of human embryonic stem cells
US9969982B2 (en) 2007-11-27 2018-05-15 Lifescan, Inc. Differentiation of human embryonic stem cells
US20090170198A1 (en) * 2007-11-27 2009-07-02 Alireza Rezania Differentiation of human embryonic stem cells
US11001802B2 (en) 2008-02-21 2021-05-11 Nunc A/S Surface of a vessel with polystyrene, nitrogen, oxygen and a static sessile contact angle for attachment and cultivation of cells
US10066203B2 (en) 2008-02-21 2018-09-04 Janssen Biotech Inc. Methods, surface modified plates and compositions for cell attachment, cultivation and detachment
US20090215177A1 (en) * 2008-02-21 2009-08-27 Benjamin Fryer Methods, surface modified plates and compositions for cell attachment, cultivation and detachment
US20090269845A1 (en) * 2008-04-24 2009-10-29 Alireza Rezania Pluripotent cells
US8623648B2 (en) 2008-04-24 2014-01-07 Janssen Biotech, Inc. Treatment of pluripotent cells
USRE43876E1 (en) 2008-04-24 2012-12-25 Centocor Ortho Biotech Inc. Cells expressing pluripotency markers and expressing markers characteristic of the definitive endoderm
US9845460B2 (en) 2008-04-24 2017-12-19 Janssen Biotech, Inc. Treatment of pluripotent cells
US7939322B2 (en) 2008-04-24 2011-05-10 Centocor Ortho Biotech Inc. Cells expressing pluripotency markers and expressing markers characteristic of the definitive endoderm
US20090325293A1 (en) * 2008-04-24 2009-12-31 Janet Davis Treatment of pluripotent cells
US10233421B2 (en) 2008-06-30 2019-03-19 Janssen Biotech, Inc. Differentiation of pluripotent stem cells
US9593305B2 (en) 2008-06-30 2017-03-14 Janssen Biotech, Inc. Differentiation of pluripotent stem cells
US10351820B2 (en) 2008-06-30 2019-07-16 Janssen Biotech, Inc. Methods for making definitive endoderm using at least GDF-8
US20100015711A1 (en) * 2008-06-30 2010-01-21 Janet Davis Differentiation of Pluripotent Stem Cells
US9593306B2 (en) 2008-06-30 2017-03-14 Janssen Biotech, Inc. Differentiation of pluripotent stem cells
US20100028307A1 (en) * 2008-07-31 2010-02-04 O'neil John J Pluripotent stem cell differentiation
US9388387B2 (en) 2008-10-31 2016-07-12 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9012218B2 (en) 2008-10-31 2015-04-21 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9234178B2 (en) 2008-10-31 2016-01-12 Janssen Biotech, Inc. Differentiation of human pluripotent stem cells
US9752126B2 (en) 2008-10-31 2017-09-05 Janssen Biotech, Inc. Differentiation of human pluripotent stem cells
US20100112692A1 (en) * 2008-10-31 2010-05-06 Alireza Rezania Differentiation of Human Embryonic Stem Cells
US20100112693A1 (en) * 2008-10-31 2010-05-06 Alireza Rezania Differentiation of Human Embryonic Stem Cells
US9969972B2 (en) 2008-11-20 2018-05-15 Janssen Biotech, Inc. Pluripotent stem cell culture on micro-carriers
US9969973B2 (en) 2008-11-20 2018-05-15 Janssen Biotech, Inc. Methods and compositions for cell attachment and cultivation on planar substrates
US20100124783A1 (en) * 2008-11-20 2010-05-20 Ya Xiong Chen Methods and Compositions for Cell Attachment and Cultivation on Planar Substrates
US20110014702A1 (en) * 2009-07-20 2011-01-20 Jean Xu Differentiation of Human Embryonic Stem Cells
US10076544B2 (en) 2009-07-20 2018-09-18 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US10471104B2 (en) 2009-07-20 2019-11-12 Janssen Biotech, Inc. Lowering blood glucose
US8785184B2 (en) 2009-07-20 2014-07-22 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US8785185B2 (en) 2009-07-20 2014-07-22 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US20110014703A1 (en) * 2009-07-20 2011-01-20 Jean Xu Differentiation of Human Embryonic Stem Cells
US9133439B2 (en) 2009-12-23 2015-09-15 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US10704025B2 (en) 2009-12-23 2020-07-07 Janssen Biotech, Inc. Use of noggin, an ALK5 inhibitor and a protein kinase c activator to produce endocrine cells
US20110151560A1 (en) * 2009-12-23 2011-06-23 Jean Xu Differentiation of human embryonic stem cells
US9150833B2 (en) 2009-12-23 2015-10-06 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9593310B2 (en) 2009-12-23 2017-03-14 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US20110151561A1 (en) * 2009-12-23 2011-06-23 Janet Davis Differentiation of human embryonic stem cells
US10329534B2 (en) 2010-03-01 2019-06-25 Janssen Biotech, Inc. Methods for purifying cells derived from pluripotent stem cells
US9969981B2 (en) 2010-03-01 2018-05-15 Janssen Biotech, Inc. Methods for purifying cells derived from pluripotent stem cells
US20110212067A1 (en) * 2010-03-01 2011-09-01 Centocor Ortho Biotech Inc. Methods for Purifying Cells Derived from Pluripotent Stem Cells
US9752125B2 (en) 2010-05-12 2017-09-05 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9528090B2 (en) 2010-08-31 2016-12-27 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9506036B2 (en) 2010-08-31 2016-11-29 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US9458430B2 (en) 2010-08-31 2016-10-04 Janssen Biotech, Inc. Differentiation of pluripotent stem cells
US9181528B2 (en) 2010-08-31 2015-11-10 Janssen Biotech, Inc. Differentiation of pluripotent stem cells
US9951314B2 (en) 2010-08-31 2018-04-24 Janssen Biotech, Inc. Differentiation of human embryonic stem cells
US11377640B2 (en) 2011-12-22 2022-07-05 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into single hormonal insulin positive cells
US10358628B2 (en) 2011-12-22 2019-07-23 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into single hormonal insulin positive cells
US9593307B2 (en) 2012-03-07 2017-03-14 Janssen Biotech, Inc. Defined media for expansion and maintenance of pluripotent stem cells
US9434920B2 (en) 2012-03-07 2016-09-06 Janssen Biotech, Inc. Defined media for expansion and maintenance of pluripotent stem cells
US10208288B2 (en) 2012-06-08 2019-02-19 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into pancreatic endocrine cells
US10066210B2 (en) 2012-06-08 2018-09-04 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into pancreatic endocrine cells
US10344264B2 (en) 2012-12-31 2019-07-09 Janssen Biotech, Inc. Culturing of human embryonic stem cells at the air-liquid interface for differentiation into pancreatic endocrine cells
US10370644B2 (en) 2012-12-31 2019-08-06 Janssen Biotech, Inc. Method for making human pluripotent suspension cultures and cells derived therefrom
US10377989B2 (en) 2012-12-31 2019-08-13 Janssen Biotech, Inc. Methods for suspension cultures of human pluripotent stem cells
US10138465B2 (en) 2012-12-31 2018-11-27 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into pancreatic endocrine cells using HB9 regulators
US10947511B2 (en) 2012-12-31 2021-03-16 Janssen Biotech, Inc. Differentiation of human embryonic stem cells into pancreatic endocrine cells using thyroid hormone and/or alk5, an inhibitor of tgf-beta type 1 receptor
US10870832B2 (en) 2014-05-16 2020-12-22 Janssen Biotech, Inc. Use of small molecules to enhance MAFA expression in pancreatic endocrine cells
US10006006B2 (en) 2014-05-16 2018-06-26 Janssen Biotech, Inc. Use of small molecules to enhance MAFA expression in pancreatic endocrine cells
US10420803B2 (en) 2016-04-14 2019-09-24 Janssen Biotech, Inc. Differentiation of pluripotent stem cells to intestinal midgut endoderm cells

Also Published As

Publication number Publication date
US20050132318A1 (en) 2005-06-16
US6877147B2 (en) 2005-04-05

Similar Documents

Publication Publication Date Title
US6877147B2 (en) Technique to assess timing delay by use of layout quality analyzer comparison
US7225423B2 (en) Method for automated design of integrated circuits with targeted quality objectives using dynamically generated building blocks
US6026228A (en) Integrated circuit design method, database apparatus for designing integrated circuit and integrated circuit design support apparatus
US6272668B1 (en) Method for cell swapping to improve pre-layout to post-layout timing
US6671864B2 (en) Method and apparatus for using a diagonal line to measure an attribute of a bounding box of a net
US6446246B1 (en) Method and apparatus for detail routing using obstacle carving around terminals
JPH07306882A (en) Delay racing error list output device
JPH11126825A (en) Wiring density estimate method, storage medium loaded with wiring density estimate program, and cell arrangement device thereof
JP3207989B2 (en) Delay time calculator
US7134112B1 (en) Incremental routing in integrated circuit design
US6442740B1 (en) Clock signal analysis device and clock signal analysis method
US7836421B2 (en) Semiconductor layout design apparatus and method for evaluating a floorplan using distances between standard cells and macrocells
US9405882B1 (en) High performance static timing analysis system and method for input/output interfaces
US6230302B1 (en) Method and system for performing timing analysis on an integrated circuit design
US7886238B1 (en) Visual yield analysis of intergrated circuit layouts
CN112257368A (en) Clock layout method, device, EDA tool and computer readable storage medium
US7000206B2 (en) Timing path detailer
JP2005149273A (en) Apparatus and method for floor planning of semiconductor integrated circuit
US20090019412A1 (en) Design method and design apparatus for semiconductor integrated circuit
TW201030546A (en) System and method of connecting a macro cell to a system power supply
US7197730B1 (en) Reducing time to design integrated circuits including performing electro-migration check
US9563736B2 (en) Placement aware functional engineering change order extraction
US6701496B1 (en) Synthesis with automated placement information feedback
US7512907B2 (en) Generating rules for nets that cross package boundaries
JP3130810B2 (en) Automatic placement and routing method

Legal Events

Date Code Title Description
AS Assignment

Owner name: BROADCOM CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KIDD, DAVID A.;DIAS, NATHAN D.;PAGE, MATTHEW J.;REEL/FRAME:013139/0991

Effective date: 20020715

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001

Effective date: 20160201

REMI Maintenance fee reminder mailed
AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001

Effective date: 20170120

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001

Effective date: 20170120

AS Assignment

Owner name: BROADCOM CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001

Effective date: 20170119

LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20170405