# US 8,751,988 B1 · Computer-implemented methods and systems for automatic generation of layout versus schematic (LVS) rule files and regression test data suites

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,988 B1
- Document ID: US8751988B1
- Status: Granted
- Kind: B1
- Application number: 13/717,118
- Filed: 2012-12-17
- Published: 2014-06-19
- Granted: 2014-06-10
- Earliest claimed: 2012-12-17
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Vladimir V. Shtraikh; James M. Hiatt; James C. Pattison
- Web page: https://patentgrep.com/patent/US8751988B1

## CPC

- G06F 30/398: Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM] (optical proximity correction [OPC] design processes G03F1/36)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system, a computer program product, and a computer-implemented method are provided for automatically generating a LVS rule file, and/or for automatically generating a regression test data suite.

## Claims

### Claim 1

A method, comprising:
in a processor in a computer, performing operations for:
processing a design rule manual (DRM) document to generate a data structure that corresponds to the DRM document, wherein the data structure comprises an entry for each particular device, wherein each entry specifies one or more prohibited layers and one or more required layers for that particular device; and
automatically generating, based on the entries for each particular device in the data structure, a LVS rule file.

### Claim 2 (depends on 1)

The method of claim 1, wherein processing the design rule manual (DRM) document to generate the data structure, comprises:
in the processor, performing operations for a parsing module, the operations comprising:
reading text of the DRM document;
extracting particular information from the text to generate extracted information comprising: a list of all layers of an integrated circuit that is specified by the DRM document, a list of all devices of the integrated circuit that are specified by the DRM document, a list of all prohibited layers for each particular device, and a list of all required layers for each particular device;
generating, based on the extracted information, the entries for each particular device; and
storing each of the entries in the data structure that corresponds to the DRM document.

### Claim 3 (depends on 2)

The method of claim 2, wherein the DRM document comprises information that describes and specifies physical design rules for particular devices of an integrated circuit, wherein the information comprises:
truth tables that describe one or more prohibited layers for each particular device, and one or more required layers for each particular device.

### Claim 4 (depends on 1)

The method of claim 1, wherein automatically generating the LVS rule file, comprises:
in the processor, performing operations for a Layout Versus Schematic (LVS) rule file generator module, the operations comprising:
receiving the data structure;
iterating through the data structure and automatically encoding the entry for each particular device into computer executable instructions that comply with a LVS rule file syntax and that are capable of being interpreted by a LVS verification module; and
writing the computer executable instructions to the LVS rule file.

### Claim 5 (depends on 4)

The method of claim 4, wherein the computer executable instructions in the LVS rule file comprise instructions for instructing the LVS verification module on how to:
interpret and process graphical layout data in a vector graphics binary file to generate a layout netlist;
interpret and process a schematic netlist that includes a textual representation of a circuit schematic;
compare the layout netlist to the schematic netlist; and
determine whether the layout netlist matches the schematic netlist.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
in the processor, performing operations for the LVS verification module, the operations comprising:
executing LVS verification processing to generate LVS verification results, wherein the LVS verification results comprise a set of result files, where each result file corresponds to a particular device.

### Claim 7 (depends on 6)

The method of claim 6, wherein executing LVS verification processing, comprises:
generating LVS verification results that indicate whether or not each particular device as specified by the graphical layout data matches each particular device as specified by the textual representation according to constraints specified in the LVS rule file, when it is determined that there is not match, wherein the LVS verification results include details regarding where a mismatch exists.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
in the processor, performing operations for a regression test suite generator module, the operations comprising:
automatically generating, based on the entry for each particular device from the data structure that corresponds to the DRM document, a regression test data suite that comprises:
a valid entry that is unique for each particular device, wherein each valid entry comprises:
a set of valid layout data for that particular device when implemented correctly, and
a set of valid schematic data for that particular device that comprises a correct textual representation of a schematic for that particular device when implemented correctly, and
a plurality of invalid entries for each particular device, wherein each invalid entry comprises:
a set of invalid layout data for that particular device.

### Claim 9 (depends on 8)

The method of claim 8, wherein automatically generating the regression test data suite, comprises:
receiving the data structure of the DRM document, iterating through the entry for each particular device in the data structure of the DRM document; and for each particular device: creating the valid entry for that particular device;
for each particular device: generating a baseline netlist that corresponds to the valid entry for that particular device.

### Claim 10 (depends on 9)

The method of claim 9, wherein automatically generating the regression test data suite, further comprises:
for each particular device: creating a first set of invalid entries, wherein each of the first set of invalid entries for that particular device is created by adding a prohibited layer to layout data for that particular device to generate the first set of invalid layout data for that particular device.

### Claim 11 (depends on 10)

The method of claim 10, wherein automatically generating the regression test data suite, further comprises:
for each particular device: creating a second set of invalid entries, wherein each of the second set of invalid entries for that particular device is created by removing a required layer for that particular device to generate the second set of invalid layout data for that particular device.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
in the processor, performing operations for the LVS verification module, the operations comprising:
for each particular device:
comparing the set of valid layout data for that particular device to other baseline netlists for each of the other devices; and
determining whether the set of valid layout data for that particular device matches any of the other baseline netlists for each one of the other devices; and
successfully completing verification when it is determined that the set of valid layout data for that particular device does not match any of the other baseline netlists for each one of the other devices.

### Claim 13

A computer program product for use with a computer, the computer program product comprising a non-transitory computer-readable storage medium comprising computer-executable instructions stored thereon, the computer-executable instructions performing steps comprising:
processing a design rule manual (DRM) document to generate a data structure that corresponds to the DRM document, wherein the data structure comprises: a list of all layers of an integrated circuit that is specified by the DRM document, a list of all devices of the integrated circuit that are specified by the DRM document, and an entry for each particular device, wherein each entry specifies a list of all prohibited layers for each particular device, and a list of all required layers for each particular device; and
automatically generating, based on the entries for each particular device in the data structure, a Layout Versus Schematic (LVS) rule file.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the step of automatically generating the LVS rule file, comprises:
receiving the data structure;
iterating through the data structure and automatically encoding the entry for each particular device into computer executable instructions that comply with a LVS rule file syntax and that are capable of being interpreted by a LVS verification module, wherein the computer executable instructions comprise instructions on how to: interpret and process graphical layout data in a vector graphics binary file to generate a layout netlist; interpret and process a schematic netlist that includes a textual representation of a circuit schematic; compare the layout netlist to the schematic netlist; and determine whether the layout netlist matches the schematic netlist; and
writing the computer executable instructions to the LVS rule file.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein the computer-executable instructions perform steps further comprising:
automatically generating, based on the entry for each particular device from the data structure that corresponds to the DRM document, a regression test data suite that comprises:
a valid entry that is unique for each particular device, wherein each valid entry comprises:
a set of valid layout data for that particular device when implemented correctly, and
a set of valid schematic data for that particular device that comprises a correct textual representation of a schematic for that particular device when implemented correctly, and
a plurality of invalid entries for each particular device, wherein each invalid entry comprises:
a set of invalid layout data for that particular device.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the automatically generating, based on the entry for each particular device from the data structure that corresponds to the DRM document, the regression test data suite, comprises:
generating, for each particular device, a baseline netlist that corresponds to the valid entry for that particular device;
creating a first set of invalid entries, for each particular device, by adding a prohibited layer to layout data for that particular device to generate the first set of invalid layout data for that particular device;
creating, for each particular device, a second set of invalid entries for that particular device by removing a required layer for that particular device to generate the second set of invalid layout data for that particular device.

### Claim 17

A system for performing electronic design automation tasks, the system comprising:
a computer processor;
a storage memory coupled to said computer processor;
an input apparatus for inputting a design rule manual (DRM) document; and
a computer program configured to include software modules including:
a parsing module configured to processes the DRM document to generate a data structure that comprises: a list of all layers of an integrated circuit that is specified by the DRM document, a list of all devices of the integrated circuit that are specified by the DRM document, and an entry for each particular device, wherein each entry specifies a list of all prohibited layers for each particular device, and a list of all required layers for each particular device; and
a Layout Versus Schematic (LVS) rule file generator module configured to automatically generate, based on the entries for each particular device in the data structure, a LVS rule file.

### Claim 18 (depends on 17)

The system of claim 17, wherein the LVS rule file generator module is further configured to iterate through the data structure and automatically encode the entry for each particular device into computer executable instructions that comply with a LVS rule file syntax and that are capable of being interpreted by a LVS verification module, and to write the computer executable instructions to the LVS rule file.

### Claim 19 (depends on 18)

The system of claim 18, wherein the computer executable instructions comprise instructions on how to instruct the LVS verification module: interpret and process graphical layout data in a vector graphics binary file to generate a layout netlist; interpret and process a schematic netlist that includes a textual representation of a circuit schematic; compare the layout netlist to the schematic netlist; and determine whether the layout netlist matches the schematic netlist.

### Claim 20 (depends on 17)

The system of claim 17, the software modules further comprising:
a regression test suite generator module configured to automatically generate, based on the entry for each particular device from the data structure that corresponds to the DRM document, a regression test data suite that comprises:
a valid entry that is unique for each particular device, wherein each valid entry comprises: a set of valid layout data for that particular device when implemented correctly, and a set of valid schematic data for that particular device that comprises a correct textual representation of a schematic for that particular device when implemented correctly, and
a plurality of invalid entries for each particular device, wherein each invalid entry comprises: a set of invalid layout data for that particular device.

### Claim 21 (depends on 20)

The system of claim 20, wherein the regression test suite generator module is further configured to, for each particular device, generate a baseline netlist that corresponds to the valid entry for that particular device, create a first set of invalid entries by adding a prohibited layer to layout data for that particular device to generate the first set of invalid layout data for that particular device, and create a second set of invalid entries for that particular device by removing a required layer for that particular device to generate the second set of invalid layout data for that particular device.
