IP Library Granted Patent US 9,218,440
Granted Patent B2
US 9,218,440 · App. 14/280,056 · Granted Dec 22, 2015

Timing verification of an integrated circuit

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,218,440
App. No.
14/280,056
Granted
Dec 22, 2015
Kind
B2
Abstract

This disclosure describes a design tool that verifies timing of an integrated circuit design by partitioning the integrated circuit design's gate-level netlist into target cell partition netlists and performs transistor-level circuit simulation on each target cell partition netlist. The design tool performs a back tracing procedure on each target sequential cell to define the target cell partition netlists. The design tool then identifies timing modes that enable valid logical paths through the target cell partition netlists from source sequential cells to the target sequential cells. In turn, the design tool performs transistor-level circuit simulation (e.g., SPICE simulations) on each target cell partition netlist to check for timing violations based upon the timing modes. In one embodiment, the design tool includes clock tree delay information, power supply variations, or routing parasitic information in the simulations to achieve improved timing analysis accuracy compared with traditional static timing analysis or timing optimization.

Claims (67)

1. A method for optimizing timing of an integrated circuit design, the method comprising:

partitioning an integrated circuit gate-level netlist into a plurality of target cell partition netlists, wherein each of the plurality of target cell partition netlists comprises one or more target sequential cells and one or more source sequential cells;

performing one or more transistor-level circuit simulations on each of the plurality of target cell partition netlists, the one or more transistor-level circuit simulations resulting in a plurality of timing simulation results; and

generating mask layer data in response to a determination that the plurality of timing simulation results do not generate one or more timing violations, wherein the mask layer data is configured to generate a plurality of masks for construction of an integrated circuit corresponding to the integrated circuit gate-level netlist.

2. The method of claim 1 further comprising:

matching a plurality of routing parasitic properties to a plurality of local nodes included in the plurality of target cell partition netlists, wherein the plurality of routing parasitic properties were generated in response to a place and route stage of the integrated circuit design; and

inserting the matched plurality of routing parasitic properties into the plurality of target cell partition netlists, wherein the transistor-level circuit simulation utilizes the routing parasitic properties during the transistor-level circuit simulations.

3. The method of claim 2 wherein the plurality of local nodes correspond to wire interconnections between standard cell instances, and wherein at least one of the plurality of routing parasitic properties are selected from the group consisting of wire loading capacitances, wire loading resistances, and fan out loading.

4. The method of claim 1 wherein the partitioning further comprises:

selecting one of the one or more target sequential cells;

back tracing, from the selected target sequential cell, through combinational logic included in the integrated circuit gate-level netlist until reaching the one or more source sequential cells; and

defining one of the plurality of target cell partition netlists as comprising the selected target sequential cell, the one or more source sequential cells, and the back traced combinational logic.

5. The method of claim 1 further comprising:

defining a clock tree partition, from a clock tree corresponding to the integrated circuit gate-level netlist, wherein the clock tree partition comprises a target sequential cell clock node corresponding to the target sequential cell and a source sequential cell clock node corresponding to a selected one of the one or more source sequential cells;

determining a clock skew between the selected source sequential cell clock node and the target sequential cell clock node; and

inserting the clock skew into the selected target cell partition netlist, wherein the transistor-level circuit simulation utilizes the clock skew during the transistor-level circuit simulation of the selected target cell partition netlist.

6. The method of claim 1 wherein a selected target cell partition netlist comprises a plurality of standard cell instances, the method further comprising:

matching a plurality of voltage supply values to the plurality of standard cell instances, wherein the plurality of voltage supply values are based upon a power grid simulation corresponding to the integrated circuit design; and

inserting the plurality of voltage supply values into the selected target cell partition netlist at the matched plurality of standard cell instances, wherein the transistor-level circuit simulation utilizes the plurality of voltage supply values during the transistor-level circuit simulation of the selected target cell partition netlist.

7. The method of claim 1 further comprising:

selecting one of the plurality of target cell partition netlists;

detecting a plurality of source sequential cells in the selected target cell partition netlist, the one or more source sequential cells included in the plurality of source sequential cells;

performing gate-level simulation on the selected target cell partition netlist by injecting input stimulus to each of the plurality of source sequential cells, wherein the gate-level simulation generates one or more input toggle events;

determining one or more timing modes of the target cell partition netlist based upon the generated one or more input toggle events; and

utilizing the one or more timing modes during the transistor-level circuit simulation of the selected target cell partition netlist.

8. The method of claim 1 wherein each of the plurality of target cell partition netlists are individually executed by one of a plurality of SPICE simulators.

9. The method of claim 1 wherein:

the integrated circuit design utilizes a plurality of standard cells; and

the transistor-level circuit simulation is devoid of using one or more liberty files corresponding to the plurality of standard cells.

10. The method of claim 9 wherein the integrated circuit executes under one or more timing margins that are less than one or more corresponding timing margins required by the one or more liberty files.

11. A system comprising:

one or more processors;

a memory accessible by the one or more processors;

a design tool system executed by at least one of the one or more processors and configured to:

partition an integrated circuit gate-level netlist into a plurality of target cell partition netlists, wherein each of the plurality of target cell partition netlists comprises one or more target sequential cells and one or more source sequential cells;

perform one or more transistor-level circuit simulations on each of the plurality of target cell partition netlists, the one or more transistor-level circuit simulations resulting in a plurality of timing simulation results; and

generate mask layer data in response to a determination that the plurality of timing simulation results do not generate one or more timing violations, wherein the mask layer data is configured to generate a plurality of masks for construction of an integrated circuit corresponding to the integrated circuit gate-level netlist.

12. The system of claim 11 wherein the design tool system is further configured to:

match a plurality of routing parasitic properties to a plurality of local nodes included in the plurality of target cell partition netlists, wherein the plurality of routing parasitic properties were generated in response to a place and route stage of the integrated circuit design; and

insert the matched plurality of routing parasitic properties into the plurality of target cell partition netlists, wherein the transistor-level circuit simulation utilizes the routing parasitic properties during the transistor-level circuit simulations.

13. The system of claim 12 wherein the plurality of local nodes correspond to wire interconnections between standard cell instances, and wherein at least one of the plurality of routing parasitic properties are selected from the group consisting of wire loading capacitances, wire loading resistances, and fan out loading.

14. The system of claim 11 wherein the design tool system is further configured to:

select one of the one or more target sequential cells;

back trace, from the selected target sequential cell, through combinational logic included in the integrated circuit gate-level netlist until reaching the one or more source sequential cells; and

define one of the plurality of target cell partition netlists as comprising the selected target sequential cell, the one or more source sequential cells, and the back traced combinational logic.

15. The system of claim 11 wherein the design tool system is further configured to:

define a clock tree partition, from a clock tree corresponding to the integrated circuit gate-level netlist, wherein the clock tree partition comprises a target sequential cell clock node corresponding to the target sequential cell and a source sequential cell clock node corresponding to a selected one of the one or more source sequential cells;

determine a clock skew between the selected source sequential cell clock node and the target sequential cell clock node; and

insert the clock skew into the selected target cell partition netlist, wherein the transistor-level circuit simulation utilizes the clock skew during the transistor-level circuit simulation of the selected target cell partition netlist.

16. The system of claim 11 wherein a selected target cell partition netlist comprises a plurality of standard cell instances, and wherein the design tool system is further configured to:

match a plurality of voltage supply values to the plurality of standard cell instances, wherein the plurality of voltage supply values are based upon a power grid simulation corresponding to the integrated circuit design; and

insert the plurality of voltage supply values into the selected target cell partition netlist at the matched plurality of standard cell instances, wherein the transistor-level circuit simulation utilizes the plurality of voltage supply values during the transistor-level circuit simulation of the selected target cell partition netlist.

17. The system of claim 11 wherein the design tool system is further configured to:

select one of the plurality of target cell partition netlists;

detect a plurality of source sequential cells in the selected target cell partition netlist, the one or more source sequential cells included in the plurality of source sequential cells;

perform gate-level simulation on the selected target cell partition netlist by injecting input stimulus to each of the plurality of source sequential cells, wherein the gate-level simulation generates one or more input toggle events;

determine one or more timing modes of the target cell partition netlist based upon the generated one or more input toggle events; and

utilize the one or more timing modes during the transistor-level circuit simulation of the selected target cell partition netlist.

18. The system of claim 11 wherein each of the plurality of target cell partition netlists are individually executed by one of a plurality of SPICE simulators.

19. The system of claim 11 wherein:

the integrated circuit design utilizes a plurality of standard cells;

the transistor-level circuit simulation is devoid of using one or more liberty files corresponding to the plurality of standard cells; and

the integrated circuit executes under one or more timing margins that are less than one or more corresponding timing margins required by the one or more liberty files.

20. A computer program product stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system, causes the information handling system to perform actions comprising:

partitioning an integrated circuit gate-level netlist into a plurality of target cell partition netlists, wherein each of the plurality of target cell partition netlists comprises one or more target sequential cells and one or more source sequential cells;

performing one or more transistor-level circuit simulations on each of the plurality of target cell partition netlists, the one or more transistor-level circuit simulations resulting in a plurality of timing simulation results; and

generating mask layer data in response to a determination that the plurality of timing simulation results do not generate one or more timing violations, wherein the mask layer data is configured to generate a plurality of masks for construction of an integrated circuit corresponding to the integrated circuit gate-level netlist.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 14/258,829 AND REPLACE ITWITH 14/258,629 PREVIOUSLY RECORDED ON REEL 037444 FRAME 0082. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OFSECURITY INTEREST IN PATENTS. Recorded Aug 10, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039639/0332 →
CORRECTIVE ASSIGNMENT OF INCORRECT APPLICATION 14/258,829 PREVIOUSLY RECORDED ON REEL 037444 FRAME 0109. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Aug 10, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039639/0208 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0082 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0109 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0903 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033462/0293 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033462/0267 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033460/0337 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2014
From: MULVANEY, BRIAN J.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 032916/0081 →