IP Library Granted Patent US 10,643,012
Granted Patent B1
US 10,643,012 · App. 16/264,091 · Granted May 5, 2020

Concurrent formal verification of logic synthesis

Inventors: Lisa R. McIlwain (Oregon City, OR); Michael S. Quayle (Carlisle, MA); Eyal Odiz (Los Altos Hill, CA); Patrick Groeneveld (Saratoga, CA); John W. Hagerman (Boxford, MA); Kshama Jambhekar (Acton, MA); Phillip W. Baraona (Somerville, MA)
Assignee: Synopsys, Inc.
G06F30/327G06F30/3323
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 10,643,012
App. No.
16/264,091
Granted
May 5, 2020
Kind
B1
Abstract

Techniques and systems for concurrent formal verification of logic synthesis are described. A synthesis tool can write intermediate checkpoint designs that embody the state of an integrated circuit (IC) design under synthesis as optimization progresses. Meanwhile, formal equivalence checking proceeds in parallel with synthesis and checks the intermediate checkpoint designs for equivalence.

Claims (32)

1. A non-transitory computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for concurrently performing formal verification during logic synthesis, the method comprising:

synthesizing a netlist design d n based on a Register Transfer Level (RTL) design d 0 of an integrated circuit (IC) by using a synthesis tool executing on a computer;

outputting a sequence of intermediate checkpoint designs d 1 , d 2 , . . . , d n-1 by the synthesis tool while synthesizing the netlist d n based on the RTL design d 0 ; and

checking equivalence between designs d i and d j , where 0≤i<j≤n by using a formal verification engine that is executing concurrently with the synthesis tool on the same computer or a different computer.

2. The non-transitory computer-readable storage medium of claim 1 , wherein at least one intermediate checkpoint design is a structural netlist that is not completely mapped to a specific technology library.

3. The non-transitory computer-readable storage medium of claim 2 , wherein the intermediate checkpoint design refers to generic technology library models.

4. The non-transitory computer-readable storage medium of claim 2 , wherein the intermediate checkpoint design includes at least one unimplemented RTL operator block.

5. The non-transitory computer-readable storage medium of claim 2 , wherein the intermediate checkpoint design includes at least one generic sequential primitive.

6. The non-transitory computer-readable storage medium of claim 1 , wherein said outputting the sequence of intermediate checkpoint designs comprises copying forward at least one of: metadata, real data, and user setup data.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the metadata comprises expression strings defining word-level functions of arithmetic operators.

8. The non-transitory computer-readable storage medium of claim 6 , wherein the metadata comprises data-flow graphs specifying operators and connectivity.

9. The non-transitory computer-readable storage medium of claim 6 , wherein the real data comprises a second implementation of an operator that replaced a first implementation of the operator, wherein the second implementation requires less computation to check equivalence than the first implementation.

10. The non-transitory computer-readable storage medium of claim 6 , wherein the user setup data comprises a command that forces a signal to a constant value.

11. A method for concurrently performing formal verification during logic synthesis, the method comprising:

synthesizing a netlist design d n based on a Register Transfer Level (RTL) design d 0 of an integrated circuit (IC) by using a synthesis tool executing on a computer;

outputting a sequence of intermediate checkpoint designs d 1 , d 2 , . . . , d n-1 by the synthesis tool while synthesizing the netlist d n based on the RTL design d 0 ; and

checking equivalence between designs d i and d j , where 0≤i<j≤n by using a formal verification engine that is executing concurrently with the synthesis tool on the same computer or a different computer.

12. The method of claim 11 , wherein at least one intermediate checkpoint design is a structural netlist that is not completely mapped to a specific technology library.

13. The method of claim 12 , wherein the intermediate checkpoint design refers to generic technology library models.

14. The method of claim 12 , wherein the intermediate checkpoint design includes at least one unimplemented RTL operator block.

15. The method of claim 12 , wherein the intermediate checkpoint design includes at least one generic sequential primitive.

16. The method of claim 11 , wherein said outputting the sequence of intermediate checkpoint designs comprises copying forward at least one of: metadata, real data, and user setup data.

17. The method of claim 16 , wherein the metadata comprises expression strings defining word-level functions of arithmetic operators.

18. The method of claim 16 , wherein the metadata comprises data-flow graphs specifying operators and connectivity.

19. The method of claim 16 , wherein the real data comprises a second implementation of an operator that replaced a first implementation of the operator, wherein the second implementation requires less computation to check equivalence than the first implementation.

20. The method of claim 16 , wherein the user setup data comprises a command that forces a signal to a constant value.

21. An apparatus, comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the processor to perform a method for concurrently performing formal verification during logic synthesis, the method comprising:

synthesizing a netlist design d n based on a Register Transfer Level (RTL) design d 0 of an integrated circuit (IC) by using a synthesis tool executing on a computer;

outputting a sequence of intermediate checkpoint designs d 1 , d 2 , . . . , d n-1 by the synthesis tool while synthesizing the netlist d n based on the RTL design d 0 ; and

checking equivalence between designs d i and d j , where 0≤i<j≤n by using a formal verification engine that is executing concurrently with the synthesis tool on the same computer or a different computer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2019
From: MCILWAIN, LISA R.; QUAYLE, MICHAEL S.; ODIZ, EYAL; GROENEVELD, PATRICK; HAGERMAN, JOHN W.; JAMBHEKAR, KSHAMA; BARAONA, PHILLIP W.
To: SYNOPSYS, INC.
Reel/Frame 048396/0055 →
Cited By (1)
US 12,682,142