IP Library Granted Patent US 8,255,848
Granted Patent B2
US 8,255,848 · App. 12/394,560 · Granted Aug 28, 2012

Logic design verification techniques for liveness checking with retiming

Assignee: International Business Machines Corporation
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 8,255,848
App. No.
12/394,560
Granted
Aug 28, 2012
Kind
B2
Abstract

A technique for verification of a retimed logic design using liveness checking includes assigning a liveness gate to a liveness property for an original netlist and assigning a fairness gate to a fairness constraint for the original netlist. In this case, the fairness gate is associated with the liveness gate and is asserted for at least one time-step during any valid behavioral loop associated with the liveness gate. The original netlist is retimed, using a retiming engine, to provide a retimed netlist. The liveness and fairness gates of the retimed netlist are retimed such that a lag of the fairness gate is no greater than a lag of the liveness gate. Verification analysis is then performed on the retimed netlist. Finally, when the verification analysis yields a valid counter-example trace for the retimed netlist, a liveness violation for the original netlist is returned.

Claims (45)

1. A method for verification of a retimed integrated circuit logic design using liveness checking as set forth by instructions executed by a computer system, comprising:

assigning, by one or more instructions executed by the computer system, a liveness gate to a liveness property for an original netlist;

assigning, by one or more instructions executed by the computer system, a fairness gate to a fairness constraint for the original netlist, where the fairness gate is associated with the liveness gate and is asserted for at least one time-step during any valid behavioral loop associated with the liveness gate;

retiming by one or more instructions executed by the computer system, using a retiming engine, the original netlist to provide a retimed netlist, wherein the liveness and fairness gates of the retimed netlist are retimed such that a lag of the fairness gate is no greater than a lag of the liveness gate;

performing, by one or more instructions executed by the computer system, verification analysis on the retimed netlist;

returning as an output of the computer system, when the verification analysis yields a valid counter-example trace for the retimed netlist, a liveness violation for the original netlist; and

mapping, by one or more instructions executed by the computer system, the valid counter-example trace obtained for the retimed netlist to the original netlist to provide a mapped counter-example trace for the original netlist, wherein the liveness and fairness gates of the retimed netlist are retimed by a first lag and the mapping further includes:

delaying, by one or more instructions executed by the computer system, a loop signal, provided by a single loop gate, in the retimed netlist by the first lag to determine an assertion of the loop signal in the mapped counter-example trace; and

truncating, by one or more instructions executed by the computer system, a length of the mapped counter-example trace to provide a resulting counter-example trace .

2. The method of claim 1 , further comprising:

relabeling, by one or more instructions executed by the computer system, the liveness and fairness gates for the original netlist as a single super gate prior to retiming of the original netlist to ensure an equivalent lag between all the liveness and fairness gates.

3. The method of claim 1 , wherein the first lag corresponds to a maximum lag experienced by either of the liveness or fairness gates.

4. The method of claim 1 , wherein the first lag corresponds to a minimum lag experienced by either of the liveness or fairness gates.

5. The method of claim 1 , further comprising:

returning by one or more instructions executed by the computer system, when the verification analysis indicates a proof of correctness for the retimed netlist, a proof of correctness for the original netlist.

6. A computer-readable storage medium including code for verification of a retimed logic design using liveness checking, wherein the code, when executed, is configured to:

assign a liveness gate to a liveness property for an original netlist;

assign a fairness gate to a fairness constraint for the original netlist, where the fairness gate is associated with the liveness gate and is asserted for at least one time-step during any valid behavioral loop associated with the liveness gate;

retime, using a retiming engine, the original netlist to provide a retimed netlist, wherein the liveness and fairness gates of the retimed netlist are retimed such that a lag of the fairness gate is no greater than a lag of the liveness gate;

perform verification analysis on the retimed netlist;

return, when the verification analysis yields a valid counter-example trace for the retimed netlist, a liveness violation for the original netlist, wherein the computer-readable storage medium is a tangible computer-readable storage medium; and

map the valid counter-example trace obtained for the retimed netlist to the original netlist to provide a mapped counter-example trace for the original netlist, wherein the liveness and fairness gates of the retimed netlist are retimed by a first lag and the map code is further configured to:

delay a loop signal, provided by a single loop gate, in the retimed netlist by the first lag to determine an assertion of the loop signal in the mapped counter-example trace; and

truncate a length of the mapped counter-example trace to provide a resulting counter-example trace.

7. The computer-readable storage medium of claim 6 , wherein the code, when executed, is further configured to:

relabel the liveness and fairness gates for the original netlist as a single super gate prior to retiming of the original netlist to ensure an equivalent lag between all the liveness and fairness gates.

8. The computer-readable storage medium of claim 6 , wherein the first lag corresponds to a maximum lag experienced by either of the liveness or fairness gates.

9. The computer-readable storage medium of claim 6 , wherein the first lag corresponds to a minimum lag experienced by either of the liveness or fairness gates.

10. The computer-readable storage medium of claim 6 , wherein the code, when executed, is further configured to:

return, when the verification analysis indicates a proof of correctness for the retimed netlist, a proof of correctness for the original netlist.

11. A computer system configured to verify a retimed logic design using liveness checking, comprising:

a memory subsystem for storing code; and

a processor coupled to the memory subsystem, wherein the processor is configured to execute code to:

assign a liveness gate to a liveness property for an original netlist;

assign a fairness gate to a fairness constraint for the original netlist, where the fairness gate is associated with the liveness gate and is asserted for at least one time-step during any valid behavioral loop associated with the liveness gate;

retime, using a retiming engine, the original netlist to provide a retimed netlist, wherein the liveness and fairness gates of the retimed netlist are retimed such that a lag of the fairness gate is no greater than a lag of the liveness gate;

perform verification analysis on the retimed netlist;

return, when the verification analysis yields a valid counter-example trace for the retimed netlist, a liveness violation for the original netlist; and

map the valid counter-example trace obtained for the retimed netlist to the original netlist to provide a mapped counter-example trace for the original netlist, wherein the liveness and fairness gates of the retimed netlist are retimed by a first lag and the map code is further configured to:

delay a loop signal, provided by a single loop gate, in the retimed netlist by the first lag to determine an assertion of the loop signal in the mapped counter-example trace; and

truncate a length of the mapped counter-example trace to provide a resulting counter-example trace.

12. The computer system of claim 11 , wherein the processor is further is configured to execute code to:

relabel the liveness and fairness gates for the original netlist as a single super gate prior to retiming of the original netlist to ensure an equivalent lag between all the liveness and fairness gates.

13. The computer system of claim 11 , wherein the processor is further is configured to execute code to:

return, when the verification analysis indicates a proof of correctness for the retimed netlist, a proof of correctness for the original netlist.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2009
From: BAUMGARTNER, JASON R.; BOBOK, GABOR; ROESSLER, PAUL; WILLIAMS, MARK A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022323/0824 →
Continuity (1)
Related Publication 20100223584A1 · Sep 2, 2010