IP Library Granted Patent US 9,547,733
Granted Patent B2
US 9,547,733 · App. 14/675,307 · Granted Jan 17, 2017

Identifying inversion error in logic equivalence check

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,547,733
App. No.
14/675,307
Granted
Jan 17, 2017
Kind
B2
Abstract

System and method of checking logic equivalence following flip-flop insertions to identify paths with inversion errors. All the flip-flops in a gate-level netlist and the corresponding RTL design are treated as buffers in a logic equivalence check (LEC) tool. A logic mismatch of a path between the RTL design and the netlist indicates an odd number of inverters have been inserted in the path during a flip-flop insertion process. Accordingly, the identified path is adjusted to ensure an even number of inverters.

Claims (46)

1. A computer implemented method, performed by a processor, for logic equivalence checking, said processor is coupled to memory which stores instructions that, when executed by said processor, cause said processor to perform said method comprising:

accessing a first register-transfer level (RTL) design of an integrated circuit comprising a plurality of interconnects, wherein a respective interconnect in said first RTL design comprises a first plurality of flip-flops;

accessing a first physical implementation of said integrated circuit, wherein said first physical implementation comprises said plurality of interconnects, wherein said respective interconnect in said first physical implementation comprises a second plurality of flip-flops, inverters, and buffers;

replacing said first plurality of flip-flops with buffers to generate a second RTL design;

replacing said second plurality of flip-flops with buffers to generate a second physical implementation;

checking logic equivalence between said second RTL design and said second physical implementation; and

identifying a logic error in said first physical implementation based on said checking.

2. The computer implemented method of claim 1 , wherein said identifying comprises detecting a logic mismatch between said second physical implementation and said second RTL design with respect to said respective interconnect.

3. The computer implemented method of claim 1 , wherein said logic error corresponds to an inversion error with respect to said respective interconnect in said first physical implementation.

4. The computer implemented method of claim 3 , wherein said inversion error is caused by an odd number of inverters encompassed in said respective interconnect in said first physical implementation.

5. The computer implemented method of claim 4 , further comprising modifying said first physical implementation to result in an even number of inverters on said respective interconnect.

6. The computer implemented method of claim 5 , wherein said modifying comprises inserting an inverter between two flip-flops among said second plurality of flip-flops or replacing an inverter in said respective interconnect with a buffer.

7. The computer implemented method of claim 5 , further comprising:

determining a number of inverters present between a first flip-flop and a second flip-flop on said respective interconnect of said first physical implementation; and

if said determined number is an odd number, modifying said first physical implementation by inserting an inverter before said first flip-flop or replacing an inverter selected from said number of inverters with a buffer.

8. The computer implemented method of claim 1 , wherein said second plurality of flip-flops comprises at least a flip-flop inserted in a flip-flop insertion process.

9. A computer implemented method, performed by a processor, for verifying a physical implementation in physical design of an integrated circuit, said processor is coupled to memory which stores instructions that, when executed by said processor, cause said computer to perform said method comprising:

accessing a register-transfer level (RTL) design of said integrated circuit comprising a plurality of interconnects, wherein said plurality of interconnects in said RTL design comprises a first plurality of flip-flops;

accessing said physical implementation of said integrated circuit comprising said plurality of interconnects, wherein said plurality of interconnects in said physical implementation comprise a second plurality of flip-flops, and inverters;

replacing said first plurality of flip-flops with buffers to generate a modified RTL design;

replacing said second plurality of flip-flops with buffers to generate a modified physical implementation;

providing said modified RTL design and said modified physical implementation to a program configured for logic equivalence check; and

identifying an interconnect having an inversion error in said physical implementation based on said logic equivalence check.

10. The computer implemented method of claim 9 , wherein said inversion error corresponds to an odd number of inverters present in said interconnect.

11. The computer implemented method of claim 9 , wherein said identifying comprises detecting a logic mismatch between said modified RTL design and said modified physical implementation with respect to said interconnect.

12. The computer implemented method of claim 9 , further comprising modifying said physical implementation by adding an inverter in said interconnect.

13. The computer implemented method of claim 9 , wherein said physical implementation comprises a gate-level netlist, and wherein said inverters are inserted in said physical implementation in a repeater insertion process.

14. The computer implemented method of claim 9 , further comprising:

determining a number of inverters present between a first flip-flop and a second flip-flop on one of said plurality of interconnects of said physical implementation; and

if said number is an odd number, modifying said physical implementation by inserting an inverter before or after said first flip-flop, or replacing an inverter selected from said number of inverters with a buffer.

15. A system comprising:

a processor;

a memory coupled to said processor and comprising instructions that, when executed by said processor, cause said system to perform a method comprising:

accessing a register-transfer level (RTL) design of said integrated circuit comprising a plurality of interconnects, wherein said plurality of interconnects in said RTL design comprise a first plurality of flip-flops;

accessing a physical implementation of said integrated circuit comprising said plurality of interconnects, wherein said plurality of interconnects in said physical implementation comprise a second plurality of flip-flops and inverters;

replacing said first plurality of flip-flops with buffers to generate a modified RTL design;

replacing said second plurality of flip-flops with buffers to generate a modified physical implementation;

providing said modified RTL design and said modified physical implementation to a program configured for logic equivalence check; and

identifying an interconnect having an inversion error in said physical implementation based on a logic mismatch resulted from said logic equivalence check.

16. The system of claim 15 , wherein said inversion error corresponds to an odd number of inverters present in said interconnect of said physical implementation.

17. The system of claim 15 , wherein said method further comprises modifying said physical implementation by adding an inverter in said interconnect based on said inversion error.

18. The system of cdlaim 15 , wherein said physical implementation comprises a gate-level netlist.

19. The system of claim 15 , wherein said method further comprises:

determining a number of inverters present between a first flip-flop and a second flip-flop on one of said plurality of interconnects of said physical implementation; and

if said number is an odd number, modifying said physical implementation by inserting an inverter before said first flip-flop or another inverter after said second flip-flop, or replacing an inverter selected from said number of inverters with a buffer.

20. The system of claim 15 , wherein said inverters are inserted in said interconnect of said physical implementation by a flip-flop insertion process.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CONVERSION Recorded Oct 6, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047202/0690 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: CAVIUM NETWORKS LLC
To: CAVIUM, INC.
Reel/Frame 036991/0534 →
MERGER Recorded Aug 14, 2015
From: XPLIANT, INC.
To: CAVIUM NETWORKS LLC
Reel/Frame 036327/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2015
From: SINGH, CHIRINJEEV
To: XPLIANT
Reel/Frame 035483/0684 →