Loop Removal in Electronic Design Automation Layouts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Electronic design automation (EDA) tools face inefficiencies and errors due to the presence of loops in graphical objects, such as self-intersecting polygons and wires, which complicate integrated circuit design and manufacturing.

Innovation Solution

A system that uses a cursor to detect and remove loops in graphical objects by examining line segments between points and modifying the sequence of points to eliminate intersections, thereby preventing loops from forming during the creation of layout designs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If loops are allowed in graphical objects during layout creation, then drawing flexibility is improved, but manufacturing reliability deteriorates due to self-intersecting polygons and wire loops causing verification failures

Engineering Contradiction:
Improvedrawing flexibilityVSAvoidmanufacturing reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary loop detection and removal during the graphical object creation process by monitoring the sequence of points as they are added. When a loop is detected (when a new point would intersect with a previous line segment), the system proactively removes the problematic point before it can cause verification failures, thus preventing rather than correcting the error later

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements continuous feedback by checking each new point against all previous line segments in the graphical object. This real-time monitoring provides immediate feedback about potential loop formation, allowing the system to maintain drawing flexibility while ensuring manufacturing reliability by preventing invalid geometries from being created in the first place

Inventive Principle:
Principle #23Feedback

2Manufacturing precision

If loop detection and removal is performed in real-time during point input, then manufacturing precision is improved by preventing loop errors, but processing time increases due to continuous intersection checking

Engineering Contradiction:
Improvelayout accuracyVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs loop detection and removal as a preliminary action during the point input process itself, rather than as a separate post-processing step. By integrating the detection into the creation workflow and using efficient algorithms that check new points against previous segments, the system ensures layout accuracy without requiring significant additional processing time after design completion

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the system automatically removes loops by modifying the sequence of points, then layout validity is improved, but user control over the design process is reduced

Engineering Contradiction:
Improvelayout validityVSAvoiduser control
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system implements self-service by automatically detecting and removing loops without requiring user intervention. When a loop is detected during point input, the system autonomously modifies the sequence of points to eliminate the loop, maintaining layout validity while minimizing disruption to the user's design workflow. The user simply continues drawing, and the system handles the correction transparently

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9448706B2Loop removal in electronic design automation
Publication Date: 2016.09.20 SYNOPSYS INC
  • US9448706B2 patent drawing
  • US9448706B2 patent drawing
  • US9448706B2 patent drawing

AI summary

Some embodiments provide a system that facilitates graphical object creation in an electronic design automation (EDA) application. During operation, the system uses a cursor to obtain a sequence of points from a user for creating a graphical object in a layout. Next, the system detects a loop in the graphical object based at least on the sequence of points and a current position of the cursor. Finally, the system modifies the sequence of points to remove the loop from the graphical object.