Register Pull-Out for Macro Circuit Block Placement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern circuit designs face significant challenges in meeting aggressive timing requirements due to high placement difficulty of nets with macro circuit blocks as drivers, leading to increased processing time and unreliable placement processes, especially when resources on the target IC are heavily utilized.

Innovation Solution

A method is implemented to determine the placement difficulty of nets by calculating the difficulty of both the driver and loads, and if it exceeds a threshold, a register is pulled from the driver to an external location, modifying the circuit design to change internal logic and bypass the register, allowing for more flexible placement and routing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If registers are kept within macro circuit blocks, then circuit functionality is maintained, but placement difficulty increases and timing requirements cannot be met

Engineering Contradiction:
Improvetiming requirement fulfillmentVSAvoidplacement difficulty
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts registers from macro circuit blocks and relocates them to external locations on the device. This is achieved by identifying nets with high placement difficulty, selecting registers within those nets, and moving them outside the original macro block boundaries. The extraction resolves the contradiction by reducing placement complexity while maintaining circuit functionality through proper net connectivity preservation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the circuit design by separating registers from their parent macro circuit blocks. This segmentation allows independent optimization of macro block placement and register placement, enabling the placement tool to achieve better timing closure by positioning registers at optimal locations independent of macro block constraints.

Inventive Principle:
Principle #1Segmentation

2Productivity

If more resources are utilized on the target IC, then circuit functionality is enhanced, but placement difficulty and processing time increase

Engineering Contradiction:
Improvecircuit functionalityVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary register extraction and relocation before the main placement process. By pre-identifying nets with high placement difficulty and moving their associated registers to external locations, the patent prepares the circuit design in advance, reducing the computational burden and processing time during the actual placement phase when resources are heavily utilized.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If register locations are constrained within macro blocks, then internal logic is simplified, but wirelength increases and signal delays worsen

Engineering Contradiction:
Improveinternal logic complexityVSAvoidwirelength
Core Design Contradiction:
Device complexityVSLength of moving object

Solution Approach 1:

The patent applies local quality by allowing different parts of the circuit to have different register placement strategies. Registers within macro blocks remain in place when placement difficulty is low, while registers in nets with high placement difficulty are extracted and relocated to optimal external locations. This localized approach minimizes wirelength and signal delays only where necessary, without unnecessarily complicating the overall circuit architecture.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10642951B1Register pull-out for sequential circuit blocks in circuit designs
Publication Date: 2020.05.05 XILINX INC
  • US10642951B1 patent drawing
  • US10642951B1 patent drawing
  • US10642951B1 patent drawing

AI summary

Register pull-out for sequential circuit blocks may include determining, using computer hardware, a net of a circuit design having a driver that is a macro circuit block driving a plurality of loads and determining, using the computer hardware, a placement difficulty of the net based upon a type of the driver and number and type of the plurality of loads. In response to determining that the placement difficulty of the net exceeds a threshold placement difficulty, the computer hardware is capable of modifying the circuit design by pulling a register from the driver to a location on a device external to the driver and changing internal logic of the driver based upon the pulled register.