IP Library Granted Patent US 7,926,020
Granted Patent B1
US 7,926,020 · App. 11/672,919 · Granted Apr 12, 2011

Methods for automatically generating assertions

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 7,926,020
App. No.
11/672,919
Granted
Apr 12, 2011
Kind
B1
Abstract

One embodiment of the present invention provides a method that automatically generates assertions of a hardware design. The method includes accessing a trace and a set of predicates of the hardware design. Then, the trace is projected over the set of predicates to generate a second trace. Then, a new set of states of the second trace is computed and the result is represented as a logical formula. The formula is reduced by logic optimization techniques. And finally, a set of logical consequences of the logic formula is produced and each logical consequence is enumerated as an assertion.

Claims (48)

1. A method for generating assertions of a hardware design to aid verification in an electronic design automation (EDA) system, the method comprising:

accessing trace data of a hardware design, wherein the trace data is a sequence of recorded netlist node values of the hardware design, obtained while the hardware design executed one or more tests;

accessing a predetermined set of predicates of the hardware design by a computer, wherein each predicate represents a Boolean relation among netlist nodes in the hardware design;

projecting the trace data over the set of predicates by a computer to generate a second trace;

computing a set of states based on the second trace by the computer, wherein each state is a complete assignment of the set of predicates at one moment in time;

producing a set of logical consequences from the set of states by the computer; and

enumerating each logical consequence as an assertion by the computer.

2. The method of claim 1 , wherein the predicate represents a relation that is Boolean.

3. The method of claim 1 , wherein the predicate represents a relation that is multi-valued.

4. The method of claim 1 , wherein the set of states is represented as a logical formula in disjunctive normal form.

5. The method of claim 4 , wherein the logical formula is reduced using logic optimization techniques.

6. The method of claim 1 , wherein the specification of assertions is described in a hardware description language.

7. The method of claim 1 , wherein the specification of assertions is described in SystemVerilog Assertions (SVA).

8. The method of claim 1 , wherein the specification of assertions is described in Property Specification Language (PSL).

9. The method of claim 1 , wherein the specification of assertions is described in Open Verilog Library (OVL).

10. The method of claim 1 , wherein the hardware design is described in Verilog.

11. The method of claim 1 , wherein the hardware design is described in VHDL.

12. The method of claim 1 , wherein the hardware design is expressed in SystemVerilog.

13. A computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for generating assertions of a hardware design, the method comprising:

accessing trace data of a hardware design, wherein the trace data is a sequence of recorded netlist node values of the hardware design, obtained while the hardware esign executed one or more tests;

accessing a predetermined set of predicates of the hardware design by a computer, wherein each predicate represents a Boolean relation among netlist nodes in the hardware design;

projecting the trace data over the set of predicates by a computer to generate a second trace;

computing a set of states based on the second trace by the computer, wherein each state is a complete assignment of the set of predicates at one moment in time;

producing a set of logical consequences from the set of states by the computer; and

enumerating each logical consequence as ar assertion by the computer.

14. The computer readable storage medium of claim 13 , wherein the predicate represents a relation that is Boolean.

15. The computer readable storage medium of claim 13 , wherein the predicate represents a relation that is multi-valued.

16. The computer readable storage medium of claim 13 , wherein the set of states is represented as a logical formula in disjunctive normal form.

17. The computer readable storage medium of claim 16 , wherein the logical formula is reduced using logic optimization techniques.

18. The computer readable storage medium of claim 13 , wherein the specification of assertions is described in a hardware description language.

19. The computer readable storage medium of claim 13 , wherein the specification of assertions is described in SystemVerilog Assertions (SVA).

20. The computer readable storage medium of claim 13 , wherein the specification of assertions is described in Property Specification Language (PSL).

21. The computer readable storage medium of claim 13 , wherein the specification of assertions is described in Open Verilog Library (OVL).

22. The computer readable storage medium of claim 13 , wherein the hardware design is described in Verilog.

23. The computer readable storage medium of claim 13 , wherein the hardware design is described in VHDL.

24. The computer readable storage medium of claim 13 , wherein the hardware design is described in SystemVerilog.

25. An apparatus for generating assertions of a hardware design, the apparatus comprising:

a processor;

memory;

a first set of instructions stored in memory and executed by the processor to project trace data of a hardware design over a predetermined set of predicates of the hardware design, the trace data is a sequence of recorded netlist node values of the hardware design, obtained while the hardware design executed one or more tests, each predicate representing a Boolean relation among netlist nodes in the hardware design;

a second set of instructions stored in memory and executed by the processor to compute a set of states based on the second trace, wherein each state is a complete assignment of the set of predicates at one moment in time;

a third set of instructions stored in memory and executed by the processor to produce a set of logical consequences from the set of states by the computer; and

a fourth set of instructions stored in memory and executed by the processor to enumerate each logical consequence as an assertion by the computer.

26. The apparatus of claim 25 , wherein the predicate represents a relation that is Boolean.

27. The apparatus of claim 25 , wherein the predicate represents a relation that is multi-valued.

28. The apparatus of claim 25 , wherein the set of states is represented as a logical formula in disjunctive normal form.

29. The apparatus of claim 25 , wherein the logical formula is reduced using logic optimization techniques.

30. The apparatus of claim 25 , wherein the specification of assertions is described in a hardware description language.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2015
From: ATRENTA INC.
To: SYNOPSYS, INC.
Reel/Frame 036687/0290 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2015
From: SILICON VALLEY BANK
To: ATRENTA INC.
Reel/Frame 036584/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2013
From: NEXTOP SOFTWARE, INC.
To: ATRENTA, INC.
Reel/Frame 029655/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2011
From: ZHU, YUNSHAN; LU, YUAN
To: NEXTOP SOFTWARE, INC.
Reel/Frame 025955/0100 →