Incremental Routing Pin Assignment for Chip Design Layouts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The high runtime of global-routing based pin assignment in chip design layouts, especially when performed incrementally, leads to time and cost prohibitive issues due to the need for frequent reinitialization of the global routing and pin assignment engines during design changes.

Innovation Solution

Implementing an incremental pin assignment process that updates the global routing and pin assignment engines dynamically in memory, avoiding complete reinitialization upon design changes, and using an observer pattern to maintain data consistency between the design database and engines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If global routing-based pin assignment is performed incrementally with frequent design changes, then pin assignment quality of results is improved, but processing time and runtime become prohibitively high due to repeated reinitialization

Engineering Contradiction:
Improvepin assignment qualityVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs global routing once at the beginning to establish routing information, then uses this pre-computed routing data for subsequent pin assignment operations. This preliminary routing action eliminates the need to reinitialize the global routing engine during incremental pin assignment updates, significantly reducing processing time while maintaining pin assignment quality.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent separates the global routing process from the pin assignment process. The global routing is performed once and stored, while pin assignment is performed incrementally multiple times using the stored routing information. This segmentation allows the time-consuming routing calculation to be done once rather than repeated with each pin assignment update.

Inventive Principle:
Principle #1Segmentation

2Stability of the object's composition

If global routing engine is reinitialized frequently during incremental pin assignment, then data consistency is maintained, but computational overhead and cost increase significantly

Engineering Contradiction:
Improvedata consistencyVSAvoiddesign efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The routing information is computed preliminarily and stored before pin assignment operations begin. This pre-computed routing data remains valid throughout incremental pin assignment updates, eliminating the need for repeated reinitialization while maintaining data consistency through the use of the stored routing information.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the routing information from the global routing engine and stores it separately. This copied routing data can be used for multiple pin assignment operations without requiring the original global routing engine to be reinitialized, thus maintaining data consistency while reducing computational overhead.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11853680B2Incremental routing based pin assignment
Publication Date: 2023.12.26 SYNOPSYS INC
  • US11853680B2 patent drawing
  • US11853680B2 patent drawing
  • US11853680B2 patent drawing

AI summary

The present disclosure relates to a chip design layout process. More specifically, the present disclosure is directed to an incremental routing-based pin assignment technique. One example method generally includes: performing routing and pin assignment for a chip design layout, one or more objects of the chip design layout being associated with a routing engine and a pin assignment engine stored in memory; detecting a change associated with the one or more objects of the chip design layout; updating, via one or more processors, at least one of the routing engine or the pin assignment engine stored in the memory in response to the detected change and based on the association between the one or more objects and the routing engine or pin assignment engine; and performing another routing and pin assignment based on the updated at least one of the routing engine or the pin assignment engine.