METHODS AND DEVICES FOR INDEPENDENT EVALUATION OF CELL INTEGRITY, CHANGES AND ORIGIN IN CHIP DESIGN FOR PRODUCTION WORKFLOW
First Claim
1. A computer-implemented method of evaluating similarities and/or differences between design data for circuits, the design data residing in at least two files stored in computer memory, the method including:
- using a computer, identifying cells within design data residing in first and second files, wherein the cells correspond to portions of design for a physical circuit;
parsing syntax of and normalizing the design data within the cells into canonical forms, wherein the canonical forms reduce sensitivity of data analysis to non-functional variations in the design data within a particular cell;
calculating and storing digests of at least selected design data in the canonical forms, producing at least one digest per cell;
comparing the digests of the cells in the first file to the digests of the cells in the second file; and
summarizing at least some results of the comparing of the digests.
1 Assignment
0 Petitions
Accused Products
Abstract
The technology disclosed relates to granular analysis of design data used to prepare chip designs for manufacturing and to identification of similarities and differences among parts of design data files. In particular, it relates to parsing data and organizing into canonical forms, digesting the canonical forms, and comparing digests of design data from different sources, such as designs and libraries of design templates. Organizing the design data into canonical forms generally reduces the sensitivity of data analysis to variations in data that have no functional impact on the design. The details of the granular analysis vary among design languages used to represent aspects of a design. For various design languages, granular analysis includes partitioning design files by header/cell portions, by separate handling of comments, by functionally significant/non-significant data, by whitespace/non-whitespace, and by layer within a unit of design data. The similarities and differences of interest depend on the purpose of the granular analysis. The comparisons are useful in many ways.
-
Citations
20 Claims
-
1. A computer-implemented method of evaluating similarities and/or differences between design data for circuits, the design data residing in at least two files stored in computer memory, the method including:
-
using a computer, identifying cells within design data residing in first and second files, wherein the cells correspond to portions of design for a physical circuit; parsing syntax of and normalizing the design data within the cells into canonical forms, wherein the canonical forms reduce sensitivity of data analysis to non-functional variations in the design data within a particular cell; calculating and storing digests of at least selected design data in the canonical forms, producing at least one digest per cell; comparing the digests of the cells in the first file to the digests of the cells in the second file; and summarizing at least some results of the comparing of the digests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method of evaluating similarities and/or differences between design data for circuits, the design data residing in at least two files stored in computer memory, the method including:
-
using a computer, parsing syntax of design data residing in first and second files, including header data and/or cell data (that are collectively referred to as “
design units”
) for design of a physical circuit;normalizing the design data within the design units into canonical forms, wherein the canonical forms reduce sensitivity of data analysis to non-functional variations in the design data; calculating and storing digests of at least selected design data in the canonical forms, producing at least one digest per design unit; comparing the digests of the design units in the first file to the digests of the design units in the second file; and summarizing at least some results of the comparing of the digests.
-
-
16. A device that evaluates similarities and/or differences between design data for circuits, the design data residing in at least two files stored in computer memory, the device including:
-
at least one processor and memory; a parser running on the processor, that parses a file containing design data representing aspects of a design for a physical circuit and creates one or more syntax trees in the memory; normalizer logic running on the processor and cooperating with the parser that organizes the syntax trees to produce canonical forms, wherein the normalizer logic includes; a partitioning module that partitions the file into at least one header and, depending on rules of a design language used to encode the file, into multiple cells of design data and organizes the syntax trees to represent the header and cell partitions; and a canonical forming module that interprets the syntax trees to produce canonical forms of the design data, wherein the canonical forms reduce sensitivity of data analysis to non-functional variations in the design data; a digester module running on the processor that receives the canonical forms for at least selected partitions and calculates and stores in the memory at least one digest per selected partition; a comparer module running on the processor that receives and compares the digests of at least a first file and a second file, which contain design data; and a reporter module running on the processor and coupled to the digester that summarizes at least some of the matches and/or differences detected by the comparisons of digests. - View Dependent Claims (17, 18, 19, 20)
-
Specification