# US 10,769,346 B1 · Method, system, and computer program product for rearrangement of objects within an electronic design

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

- Number: US 10,769,346 B1
- Document ID: US10769346B1
- Status: Granted
- Kind: B1
- Application number: 15/857,561
- Filed: 2017-12-28
- Granted: 2020-09-08
- Earliest claimed: 2017-12-28
- Assignees: Cadence Design Systems, Inc.
- Applicants: Cadence Design Systems, Inc.
- Inventors: Henry Yu; Hui Xu; Karun Sharma; Sandipan Ghosh
- Web page: https://patentgrep.com/patent/US10769346B1

## 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 3/0486: Drag-and-drop
- G06F 30/31: Design entry, e.g. editors specifically adapted for circuit design
- G06F 30/392: Floor-planning or layout, e.g. partitioning or placement
- G06F 30/394: Routing (G06F30/396 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed is an approach for implementing placement for an electronic design, where when a dragged object is moved into a desired area, existing objects in that location are automatically moved as necessary in correspondence to the movement of the dragged object. Existing objects are only moved if they are causing a spacing violation or overlap with the dragged object being moved, either directly or indirectly.

## Claims

### Claim 1

A method for implementing placement for an electronic design, comprising:
identifying a movement of an object within an electronic design, where the movement of the object causes one or more overlaps with one or more existing objects in the electronic design;
selecting an overlap from the one or more overlaps to correct;
identifying respective costs that respectively correspond to different possible solutions to correct the overlap, wherein a respective cost for a possible solution is determined based at least in part upon information of a perturbation or wirelength that pertains to the possible solution;
selecting a solution having a lower cost to correct the overlap; and
visually displaying the object moved to a dragged location, wherein movement of the one or more existing objects is also displayed to locations corresponding to the solution having the lower cost to resolve the overlap.

### Claim 2 (depends on 1)

The method of claim 1, wherein the overlap is corrected with a movement mode corresponding to at least one of an any direction mode, preserve dragged location mode, preserve relative location mode, insert single row mode, or insert multiple row mode.

### Claim 3 (depends on 1)

The method of claim 1, wherein a cost is calculated by considering a combination of cost factors including at least one or more of a first cost factor for overlaps, a second cost factor for perturbation, a third cost factor for wirelength, a fourth cost factor for placement constraints, or a fifth cost factor for design rule correctness.

### Claim 4 (depends on 1)

The method of claim 1, wherein a cost is calculated for the solution that does not involve movement of an object between rows, and where the cost does not include a cost factor for wirelength.

### Claim 5 (depends on 4)

The method of claim 4, wherein a chain of devices is considered as a single object for object movement calculations.

### Claim 6 (depends on 1)

The method of claim 1, wherein the electronic design corresponds to a row-based design, and wherein the object being moved and the one or more existing objects are located within one or more rows within the row-based design.

### Claim 7 (depends on 6)

The method of claim 6, wherein the one or more existing objects are moved within a row to correct the overlap.

### Claim 8

A computer program product embodied on a non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to execute a set of acts, the set of acts comprising:
identifying a movement of an object within an electronic design, where the movement of the object causes one or more overlaps with one or more existing objects in the electronic design;
selecting an overlap from the one or more overlaps to correct;
identifying respective costs that respectively correspond to different possible solutions to correct the overlap, wherein a respective cost for a possible solution is determined based at least in part upon information of a perturbation or wirelength that pertains to the possible solution;
selecting a solution having a lower cost to correct the overlap; and
visually displaying the object moved to a dragged location, wherein movement of the one or more existing objects is also displayed to locations corresponding to the solution having the lower cost to resolve the overlap.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the overlap is corrected with a movement mode corresponding to at least one of an any direction mode, preserve dragged location mode, preserve relative location mode, insert single row mode, or insert multiple row mode.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein a cost is calculated by considering a combination of cost factors including at least one or more of a first cost factor for overlaps, a second cost factor for perturbation, a third cost factor for wirelength, a fourth cost factor for placement constraints, or a fifth cost factor for design rule correctness.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein a cost is calculated for the solution that does not involve movement of an object between rows, and where the cost does not include a cost factor for wirelength.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein a chain of devices is considered as a single object for object movement calculations.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein the electronic design corresponds to a row-based design, and wherein the object being moved and the one or more existing objects are located within one or more rows within the row-based design.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the one or more existing objects are moved within a row to correct the overlap.

### Claim 15

A system for implementing a circuit design, comprising:
a processor;
a memory for holding programmable code; and
wherein the programmable code includes instructions for identifying a movement of an object within an electronic design, where the movement of the object causes one or more overlaps with one or more existing objects in the electronic design; selecting an overlap from the one or more overlaps to correct; identifying respective costs that respectively correspond to different possible solutions to correct the overlap, wherein a respective cost for a possible solution is determined based at least in part upon information of a perturbation or wirelength that pertains to the possible solution; selecting a solution having a lower cost to correct the overlap; and visually displaying the object moved to a dragged location, wherein movement of the one or more existing objects is also displayed to locations corresponding to the solution having the lower cost to resolve the overlap.

### Claim 16 (depends on 15)

The system of claim 15, wherein the overlap is corrected with a movement mode corresponding to at least one of an any direction mode, preserve dragged location mode, preserve relative location mode, insert single row mode, or insert multiple row mode.

### Claim 17 (depends on 15)

The system of claim 15, wherein a cost is calculated by considering a combination of cost factors including at least one or more of a first cost factor for overlaps, a second cost factor for perturbation, a third cost factor for wirelength, a fourth cost factor for placement constraints, or a fifth cost factor for design rule correctness.

### Claim 18 (depends on 15)

The system of claim 15, wherein a cost is calculated for the solution that does not involve movement of an object between rows, and where the cost does not include a cost factor for wirelength.

### Claim 19 (depends on 18)

The system of claim 18, wherein a chain of devices is considered as a single object for object movement calculations.

### Claim 20 (depends on 15)

The system of claim 15, wherein the electronic design corresponds to a row-based design, and wherein the object being moved and the one or more existing objects are located within one or more rows within the row-based design.
