VERIFICATION OF THE DESIGN OF AN INTEGRATED CIRCUIT BACKGROUND

Information

  • Patent Application
  • 20070220386
  • Publication Number
    20070220386
  • Date Filed
    February 23, 2006
    18 years ago
  • Date Published
    September 20, 2007
    17 years ago
Abstract
A method, apparatus, and computer program product for performing verification on an integrated circuit design having state variables. Random vectors are generated, used to simulate the design, and generate a set of values for the state variables. The generated values are compared to groups having stored values from previous stimulations and either a new group is crated for the generated set of values or the existing groups accurately represent the generated set of values and they are stored in one of the existing groups.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be better understood and its advantages will become more apparent to those skilled in the art by reference to the following drawings, in conjunction with the accompanying specification, in which:



FIG. 1 is a block diagram illustrating a computer system that implements a preferred embodiment of the present invention;



FIG. 2 is a flow chart illustrating the method of pattern test harvesting according to the teachings of the present invention;



FIG. 3 is a table illustrating an example of a portion of an AET that is stored in its entirety according to the teachings of the present invention;



FIG. 4 is a table illustrating lossy compression applied to the table of FIG. 3 according to the teachings of the present invention;



FIG. 5 is a table illustrating the AET results of three test cases A, B, and C and the application of the test case harvesting of FIG. 2 according to the teachings of the present invention; and



FIG. 6 is a table illustrating the total weighted differences between the test cases A, B, and C of FIG. 5 according to the teachings of the present invention.


Claims
  • 1. A method of verifying the design of an integrated circuit having one or more state variables, the method comprising the steps of: generating a first random vector;simulating the design with the first random vector to create a first set of values for the one or more state variables;comparing the first set of values with one or more groups each having one or more sets of stored values for the one or more state variables that were generated during a prior simulation of the design;storing the first set of values in the one or more groups if the first set of values are within a desired tolerance of the one or more sets of stored values
  • 2. The method of claim 1 wherein the step of comparing includes the step of: calculating an entropy for each of the one of the first set of values and stored set of values.
  • 3. The method of claim 2 wherein the step of comparing includes the step of: weighting each one of the entropies according to a predetermined scheme.
  • 4. The method of claim 3 wherein the step of comparing includes the step of: calculating the difference between the weighted entropies for the first set of values and the weighted entropies of the stored set of values.
  • 5. The method of claim 4 wherein the step of storing includes the step of: storing the first set of values in the one or more groups if the calculated difference between the first set of values and one or more of the stored set of values is less than a desired tolerance.
  • 6. The method of claim 5 wherein the desired tolerance is the normalized difference between the first set of values and the stored set of values.
  • 7. The method of claim 6 wherein the step of storing includes the step of: compressing the first set of values and the stored set of values to reduce concurrent sets and average values.
  • 8. The method of claim 7 wherein the step of compressing includes the step of: defining a window size for encompassing a portion of the first set of values and the stored set of values;averaging the values of the portion of the first set of values if the average of the first set of values is within a desired range; andaveraging the values of the portion of the stored set of values if the average of the stored set of values is within a desired range.
  • 9. The method of claim 1 further comprising the step of: generating a second random vector;simulating the design with the second random vector to create a second set of values for the one or more state variables;comparing the second set of values with the one or more groups; anddetermining that the second set of values reside within a desired tolerance of the one or more sets of stored values.
  • 10. An apparatus for verifying the design of an integrated circuit having one or more state variables, the apparatus comprising: means for generating a first random vector;means for simulating the design with the first random vector to create a first set of values for the one or more state variables;means for comparing the first set of values with one or more groups each having one or more sets of stored values for the one or more state variables that were generated during a prior simulation of the design;means for storing the first set of values in the one or more groups if the first set of values are within a desired tolerance of the one or more sets of stored values
  • 11. The apparatus of claim 10 wherein the means for comparing includes: means for calculating an entropy for each of the one of the first set of values and stored set of values.
  • 12. The apparatus of claim 11 wherein the means for comparing includes: means for weighting each one of the entropies according to a predetermined scheme.
  • 13. The apparatus of claim 12 wherein the means for comparing includes: means for calculating the difference between the weighted entropies for the first set of values and the weighted entropies of the stored set of values.
  • 14. The apparatus of claim 13 wherein the means for storing includes: means for storing the first set of values in the one or more groups if the calculated difference between the first set of values and one or more of the stored set of values is less than a desired tolerance.
  • 15. The apparatus of claim 14 wherein the desired tolerance is the normalized difference between the first set of values and the stored set of values.
  • 16. The apparatus of claim 15 wherein the means for storing includes: means for compressing the first set of values and the stored set of values to reduce concurrent sets and average values.
  • 17. The apparatus of claim 16 wherein the means for compressing includes: means for defining a window size for encompassing a portion of the first set of values and the stored set of values;means for averaging the values of the portion of the first set of values if the average of the first set of values is within a desired range; andmeans for averaging the values of the portion of the stored set of values if the average of the stored set of values is within a desired range.
  • 18. The apparatus of claim 10 further comprising: means for generating a second random vector;means for simulating the design with the second random vector to create a second set of values for the one or more state variables;means for comparing the second set of values with the one or more groups; andmeans for determining that the second set of values reside within a desired tolerance of the one or more sets of stored values.
  • 19. A computer program product comprising a computer usable medium having computer usable program code for verifying the design of an integrated circuit having one or more state variables, the computer usable program code comprising: computer usable program code for generating a first random vector;computer usable program code for simulating the design with the first random vector to create a first set of values for the one or more state variables;computer usable program code for comparing the first set of values with one or more groups each having one or more sets of stored values for the one or more state variables that were generated during a prior simulation of the design;computer usable program code for storing the first set of values in the one or more groups if the first set of values are within a desired tolerance of the one or more sets of stored values
  • 19. The computer program product of claim 20 wherein the computer usable program code for comparing includes: computer usable program code for calculating an entropy for each of the one of the first set of values and stored set of values.
  • 20. The computer program product of claim 19 wherein the computer usable program code for comparing includes: computer usable program code for weighting each one of the entropies according to a predetermined scheme.
  • 21. The computer program product of claim 20 wherein the computer usable program code for comparing includes: computer usable program code for calculating the difference between the weighted entropies for the first set of values and the weighted entropies of the stored set of values.
  • 22. The computer program product of claim 21 wherein the computer usable program code for storing includes: computer usable program code for storing the first set of values in the one or more groups if the calculated difference between the first set of values and one or more of the stored set of values is less than a desired tolerance.
  • 23. The computer program product of claim 22wherein the desired tolerance is the normalized difference between the first set of values and the stored set of values.
  • 24. The computer program product of claim 23 wherein the computer usable program code for storing includes: computer usable program code for compressing the first set of values and the stored set of values to reduce concurrent sets and average values.