Claims
- 1. A method used in producing an integrated circuit design, said circuit design having cells and interconnects, said circuit having a representation that is hierarchically decomposed into a top-level and a plurality of blocks, at least some of the plurality of said blocks being capable of being further hierarchically decomposed and of having a parent block associated therewith, said method comprising:
processing at least one of said blocks such that an abstraction is created that includes physical interconnect information relating to interconnects between components within said at least one block, said physical interconnect information modeling parasitic electrical and physical effects of interconnects upon an estimated behavior of said integrated circuit; and utilizing said abstraction in another development phase performed said parent block.
- 2. The method according to claim 1 wherein said processing includes:
retaining only the sub-set of all of said physical interconnect information which influences the physical and electrical behavior of said parent block; and retaining only the sub-set of cells which influences the logical behavior of said parent block.
- 3. The method according to claim 2 wherein utilizing includes:
replacing a description of said at least one block with a description of said abstraction.
- 4. The method according to claim 2, wherein retaining the sub-set includes:
determining contents of said at least one block's netlist.
- 5. The method according to claim 4, wherein said contents of said at least one block's netlist are determined by:
processing data inputs; processing outputs; and processing clock inputs.
- 6. The method according to claim 5 wherein processing data inputs comprises:
building a list of primary inputs.
- 7. The method according to claim 6 wherein until said list is empty, for each pin encountered:
removing said encountered pin from said list; if said removed pin is a clock pin, then skipping said removed pin and continuing to the next pin; and if said removed pin is not a clock pin, then processing forward said removed pin.
- 8. The method according to claim 7 wherein processing forward said removed pin comprises:
building a list of successors.
- 9. The method according to claim 8 wherein until said list of successors is empty, for each pin encountered:
removing said encountered successor pin from said list of successors; labeling said removed successor pin's cell as a timing cell; if said removed successor pin is a clock pin, skipping said removed successor pin; and if said removed successor pin is not a clock pin, then checking if said removed successor pin is a cell input.
- 10. The method according to claim 9 wherein if said removed successor pin is a cell input:
checking to see if said removed successor pin has more than one predecessor cell; if said removed successor pin has more than one predecessor cell, then labeling said predecessor cells as multi-driver load cells, and recursively performing said processing forward said removed pin.
- 11. The method according to claim 10 wherein:
if said removed successor pin is not a cell input; or if said removed successor pin does not have more than one predecessor cell, then recursively performing said processing forward said removed pin.
- 12. The method according to claim 5 wherein processing outputs comprises:
building a list of primary outputs.
- 13. The method according to claim 12 wherein until said list is empty, for each pin encountered:
removing said encountered pin from said list; processing backward said removed pin.
- 14. The method according to claim 13 wherein processing backward said removed pin comprises:
building a list of predecessors.
- 15. The method according to claim 14 wherein until said list of predecessors is empty, for each pin encountered:
removing said encountered predecessor pin from said list of predecessors; labeling said removed predecessor pin's cell as a timing cell; if said removed predecessor pin is a clock pin, skipping said removed predecessor pin; and if said removed predecessor pin is not a clock pin, then checking if said removed predecessor pin is a cell output.
- 16. The method according to claim 15 wherein if said removed predecessor pin is a cell output:
labeling successor cells as sink load cells; and recursively performing said processing backward said removed pin.
- 17. The method according to claim 15 wherein:
if said removed successor pin is not a cell output then recursively performing said processing backward said removed pin.
- 18. The method according to claim 5 wherein processing clock inputs comprises:
building a list of primary clock inputs.
- 19. The method according to claim 18 wherein until said list is empty, for each pin encountered:
removing said encountered pin from said list; processing forward said removed clock pin.
- 20. The method according to claim 19 wherein processing forward said removed pin comprises:
building a list of successors.
- 21. The method according to claim 20 wherein until said list of successors is empty, for each pin encountered:
removing said encountered successor pin from said list of successors; if said removed successor pin is a clock pin, recursively processing forward said removed successor pin; and if said removed successor pin is not a clock pin, then skipping said removed successor pin.
- 22. The method according to claim 21 wherein after recursively processing forward said removed successor pin:
checking if any successor cells are labeled as timing cells.
- 23. The method according to claim 22 wherein if any successor cells are labeled as timing cells:
labeling said removed successor pin's cells as timing cells; and labeling said successor cells as clock load cells.
- 24. The method according to claim 22 wherein if no successor cells are labeled as timing cells, then skipping said removed successor pin.
- 25. The method according to claim 1 wherein said physical interconnect information models physical and electrical effects of the circuit layout and fabrication process.
- 26. The method according to claim 25 wherein said physical and elecrical effects include at least one of placement and routing constraints, antenna effects, static timing analysis with RC delay modeling, static timing analysis with capacitive coupling and noise injection, static timing analysis with IR-drop modeling, and electromigration analysis.
- 27. The method according to claim 26 wherein placement and routing effects of said at least one block are modeled using one or more of physical dimensions of said at least one block's boundaries, physical locations where permitted connections can be made to said at least one block's pins, and the layers used to make said permitted connections.
- 28. The method according to claim 26 wherein antenna effects are modeled by including in said abstraction all of the pin-wires that are electrically connected to each pin, and all diodes, transistor gates, and transistor source/drains that are connected to the pins through those wires.
- 29. The method according to claim 26 wherein resistance-capacitance (RC) interconnect delay during static timing analysis is modeled by including in said abstraction the pin-wires attached to the block's primary input/output pins, and the wires implementing all of the pin-nets attached the cells in the timing shell.
- 30. The method according to claim 29 wherein sidewall coupling during static timing analysis is modeled by including in said abstraction the coupling-wires that may potentially be capacitively coupled to the pin-wires.
- 31. The method according to claim 29 wherein noise injection and delay changes during static timing analysis due to capacitive coupling are modeled by including in said abstraction at least one of:
a) all of the wires on the coupling-nets that may potentially be capacitively coupled to the pin wires , b) the coupling-cells that drive these nets and the coupling-cells that are driven by these nets, with the input pins of the driving cells being modeled with arrival times and slew values derived during simulation of the block, and c) the transitive-wires that may potentially couple to said included coupling-nets.
- 32. The method according to claim 29 wherein noise injection and delay changes during static timing analysis due to capacitive coupling are modeled by including in said abstraction at least one of:
a) all of the wires on the coupling-nets that may potentially be capacitively coupled to the pin wires b) the coupling-cells that drive these nets and the coupling-cells that are driven by these nets, with the input pins of the driving cells being modeled by including the entire cone of combinational logic, up to and including the first latch or flip-flop, that drives these nets, as well as all of the wires on the nets that are attached to the pins on said additional cells, and c) the “transitive wires” that may potentially couple to said included “coupling” nets.
- 33. The method according to claim 26 wherein IR drop effects are modeled using a simplified electrical model of a block wherein each pin is modeled as an ideal current sink/source and an associated impedance matrix to model its internal RC-network.
- 34. The method according to claim 33 wherein electromigration effects are modeled, for power nets, using the same information required for power drop effects.
- 35. The method according to claim 30 wherein electromigration effects are modeled, for signal nets using the same information required for static timing analysis.
- 36. A method of designing an integrated circuit having cells and interconnects, said circuit hierarchically decomposed into a top-level and a plurality of blocks, said blocks capable of being further hierarchically decomposed, said method comprising:
processing a parent block and any sibling blocks of one of said blocks such that an inverse abstraction is created which includes physical interconnect information between components within said parent and sibling blocks, said physical interconnect information modeling parasitic electrical and physical effects of interconnects upon the behavior of said integrated circuit; and utilizing said inverse abstraction in at least one phase of designing and analyzing said one block.
- 37. The method according to claim 36, wherein said phases include at least one of static timing analysis, noise analysis, power supply analysis, IR-drop analysis, electromigration analysis, antenna rule violation detection and repair, placement and routing, implementation, design, and verification.
- 38. The method according to claim 37 that utilizes a unified data model to integrate more than one of said phases.
- 39. An article comprising a computer-readable medium having instructions stored thereon implementing a method used in producing an integrated circuit design, said circuit design having cells and interconnects, said circuit having a representation that is hierarchically decomposed into a top-level and a plurality of blocks, at least some of the plurality of said blocks being capable of being further hierarchically decomposed and of having a parent block associated therewith, said instructions which when executed causes:
processing at least one of said blocks such that an abstraction is created that includes physical interconnect information relating to interconnects between components within said at least one block, said physical interconnect information modeling parasitic electrical and physical effects of interconnects upon an estimated behavior of said integrated circuit; and utilizing said abstraction in another development phase performed said parent block.
- 40. The article according to claim 39 wherein said processing includes:
retaining only the sub-set of all of said physical interconnect information which influences the physical and electrical behavior of said parent block; and retaining only the sub-set of cells which influences the logical behavior of said parent block.
- 41. The article according to claim 39 wherein utilizing includes:
replacing a description of said at least one block with a description of said abstraction.
- 42. The article according to claim 40, wherein wherein retaining the sub-set includes:
determining contents of said at least one block's netlist.
- 43. The article according to claim 42, wherein said contents of the logical shell are determined by:
processing data inputs; processing outputs; and processing clock inputs.
- 44. The article according to claim 43 wherein processing data inputs comprises:
building a list of primary inputs.
- 45. The article according to claim 44 wherein until said list is empty, for each pin encountered:
removing said encountered pin from said list; if said removed pin is a clock pin, then skipping said removed pin and continuing to the next pin; and if said removed pin is not a clock pin, then processing forward said removed pin.
- 46. The article according to claim 45 wherein processing forward said removed pin comprises:
building a list of successors.
- 47. The article according to claim 46 wherein until said list of successors is empty, for each pin encountered:
removing said encountered successor pin from said list of successors; labeling said removed successor pin's cell as a timing cell; if said removed successor pin is a clock pin, skipping said removed successor pin; and if said removed successor pin is not a clock pin, then checking if said removed successor pin is a cell input.
- 48. The article according to claim 47 wherein if said removed successor pin is a cell input:
checking to see if said removed successor pin has more than one predecessor cell; if said removed successor pin has more than one predecessor cell, then labeling said predecessor cells as multi-driver load cells, and recursively performing said processing forward said removed pin.
- 49. The article according to claim 48 wherein:
if said removed successor pin is not a cell input; or if said removed successor pin does not have more than one predecessor cell, then recursively performing said processing forward said removed pin.
- 50. The article according to claim 43 wherein processing outputs comprises:
building a list of primary outputs.
- 51. The article according to claim 50 wherein until said list is empty, for each pin encountered:
removing said encountered pin from said list; processing backward said removed pin.
- 52. The article according to claim 51 wherein processing backward said removed pin comprises:
building a list of predecessors.
- 53. The article according to claim 52 wherein until said list of predecessors is empty, for each pin encountered:
removing said encountered predecessor pin from said list of predecessors; labeling said removed predecessor pin's cell as a timing cell; if said removed predecessor pin is a clock pin, skipping said removed predecessor pin; and if said removed predecessor pin is not a clock pin, then checking if said removed predecessor pin is a cell output.
- 54. The article according to claim 53 wherein if said removed predecessor pin is a cell output:
labeling successor cells as sink load cells; and recursively performing said processing backward said removed pin.
- 55. The article according to claim 53 wherein:
if said removed successor pin is not a cell output then recursively performing said processing backward said removed pin.
- 56. The article according to claim 43 wherein processing clock inputs comprises:
building a list of primary clock inputs.
- 57. The article according to claim 56 wherein until said list is empty, for each pin encountered:
removing said encountered pin from said list; processing forward said removed clock pin.
- 58. The article according to claim 57 wherein processing forward said removed pin comprises:
building a list of successors.
- 59. The article according to claim 58 wherein until said list of successors is empty, for each pin encountered:
removing said encountered successor pin from said list of successors; if said removed successor pin is a clock pin, recursively processing forward said removed successor pin; and if said removed successor pin is not a clock pin, then skipping said removed successor pin.
- 60. The article according to claim 59 wherein after recursively processing forward said removed successor pin:
checking if any successor cells are labeled as timing cells.
- 61. The article according to claim 60 wherein if any successor cells are labeled as timing cells:
labeling said removed successor pin's cells as timing cells; and labeling said successor cells as clock load cells.
- 62. The article according to claim 60 wherein if no successor cells are labeled as timing cells, then skipping said removed successor pin.
- 63. The article according to claim 39 wherein said physical interconnect information includes physical effects of the circuit layout and fabrication process.
- 64. The article according to claim 63 wherein said physical effects include at least one of placement and routing constraints, antenna effects, static timing analysis with RC delay modeling, static timing analysis with capacitive coupling and noise injection, static timing analysis with IR-drop modeling, and electromigration analysis.
- 65. The article according to claim 64 wherein placement and routing effects of said at least block are modeled using one or more of physical dimensions of said at least one block's boundaries, physical locations where permitted connections can be made to said block's pins, and the layers used to make said permitted connections.
- 66. The article according to claim 64 wherein antenna effects are modeled by including in said abstraction all of the pin-wires that are electrically connected to each pin, and all diodes, transistor gates, and transistor source/drains that are connected to the pins through those wires.
- 67. The article according to claim 64 wherein resistance-capacitance (RC) interconnect delay during static timing analysis is modeled by including in said abstraction the pin-wires attached to the block's primary input/output pins, and the wires implementing all of the pin-nets attached the cells in the timing shell.
- 68. The article according to claim 67 wherein sidewall coupling analysis during static timing analysis is modeled by including in said abstraction the coupling-wires that may potentially be capacitively coupled to the pin-wires.
- 69. The article according to claim 67 wherein noise injection and delay changes during static timing analysis due to capacitive coupling are modeled by including in said abstraction at least one of:
a) all of the wires on the coupling-nets that may potentially be capacitively coupled to the pin wires, b) the coupling-cells that drive these nets and the coupling-cells that are driven by these nets, with the input pins of the driving cells being modeled with arrival times and slew values derived during simulation of the block, and c) the transitive-wires that may potentially couple to said included coupling-nets.
- 70. The article according to claim 67 wherein noise injection and delay changes during static timing analysis due to capacitive coupling are modeled by including in said abstraction at least one of:
a) all of the wires on the coupling-nets that may potentially be capacitively coupled to the pin wires b) the coupling-cells that drive these nets and the coupling-cells that are driven by these nets, with the input pins of the driving cells being modeled by including the entire cone of combinational logic, up to and including the first latch or flip-flop, that drives these nets, as well as all of the wires on the nets that are attached to the pins on said additional cells, and c) the “transitive wires” that may potentially couple to said included “coupling” nets.
- 71. The article according to claim 64 wherein IR drop effects are modeled using a simplified electrical model of a block wherein each pin is modeled as an ideal current sink/source and an associated impedance matrix to model its internal RC-network.
- 72. The article according to claim 71 wherein electromigration effects are modeled, for power nets, using the same information required for power drop effects,
- 73. The article according to claim 68 wherein electromigration effects are modeled, for signal nets using the same information required for static timing analysis.
- 74. An article comprising a computer readable medium having instructions stored thereon which is implemented in a method of designing an integrated circuit having cells and interconnects, said circuit hierarchically decomposed into a top-level and a plurality of blocks, said blocks capable of being further hierarchically decomposed,, said instructions which when executed cause:
processing a parent block and any sibling blocks of one of said blocks such that an inverse abstraction is created which includes physical interconnect information between components within said parent and sibling blocks, said physical interconnect information modeling parasitic electrical and physical effects of interconnects upon the behavior of said integrated circuit; and utilizing said inverse abstraction in at least one phase of designing and analyzing said one block.
- 75. The article according to claim 74, wherein said phases include at least one of static timing analysis, noise analysis, power supply analysis, IR-drop analysis, electromigration analysis, antenna rule violation detection and repair, placement and routing, implementation, design, and verification.
- 76. The article according to claim 75 that utilizes a unified data model to integrate more than one of said phases.
- 77. The method according to claim 1 wherein said interconnects include representations of an interface between said at least one block with its parent block.
- 78. The article according to claim 39 wherein said interconnects include representations of an interface between said at least one block with its parent block.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims priority from a provisional patent application entitled “Representing the Design of a Sub-Module in a Hierarchical Integrated Circuit Design and Analysis System”, filed on Jun. 8, 2001 and bearing Ser. No. 60/296,797.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60296797 |
Jun 2001 |
US |
|
60296792 |
Jun 2001 |
US |