Clock Buffer Insertion for Programmable IC Timing Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing circuit layouts for programmable integrated circuits is challenging due to aggressive timing requirements, making it difficult to identify and rectify timing issues once the design is mapped, placed, or placed and routed.

Innovation Solution

The method involves determining critical paths in a placed circuit design and strategically inserting or modifying clock buffers and programmable resources to optimize timing, either by replicating clock buffers, cascading them, or increasing the signal path length to adjust the arrival times of clock signals at sequential elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the design is mapped, placed, or placed and routed early to establish timing baselines, then the timing baseline is established, but timing issues become much more difficult to fix later

Engineering Contradiction:
Improvetiming baseline establishmentVSAvoiddifficulty to fix timing issues
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The patent performs timing analysis and identifies critical paths during the placement phase, before routing is complete. This preliminary action allows the system to proactively identify and prepare timing correction strategies (such as inserting clock buffers) before the design is finalized, making it easier to address timing issues later without requiring major redesign.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If clock buffers are added to fix timing violations on critical paths, then timing constraints are met, but device resources are consumed

Engineering Contradiction:
Improvetiming constraint satisfactionVSAvoidclock buffer usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent selectively inserts clock buffers only at specific locations where timing violations occur on critical paths, rather than uniformly distributing them throughout the design. The system analyzes each critical path individually and places buffers only where necessary to meet timing constraints, optimizing the balance between timing reliability and resource consumption.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent dynamically adjusts clock buffer insertion decisions based on timing analysis parameters such as critical path delay, clock skew requirements, and available slack. By changing these timing parameters and re-evaluating the design, the system determines the minimum necessary buffer insertion to meet constraints while conserving resources.

Inventive Principle:
Principle #35Parameter changes

3Speed

If multiple clock buffers are used to drive sequential elements on critical paths, then clock signal distribution is improved, but clock skew may increase

Engineering Contradiction:
Improveclock signal deliveryVSAvoidclock skew control
Core Design Contradiction:
SpeedVSManufacturing precision

Solution Approach 1:

The patent performs iterative timing analysis that measures actual clock arrival times at sequential elements and uses this feedback to adjust clock buffer placement and configuration. The system evaluates the impact of each buffer insertion on clock skew and adjusts subsequent buffer placements to minimize skew while maintaining improved clock signal delivery speed.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9235660B1Selective addition of clock buffers to a circuit design
Publication Date: 2016.01.12 XILINX INC
  • US9235660B1 patent drawing
  • US9235660B1 patent drawing
  • US9235660B1 patent drawing

AI summary

In an approach for processing a circuit design by a programmed processor, a placed circuit design that has been placed on programmable resources of a programmable integrated circuit (IC) is input. A critical path is determined from a first sequential element to a second sequential element assigned to the placed circuit design. A first clock buffer that provides a clock signal to the first and second sequential elements is determined, and an unused clock buffer is selected based on proximity to the first sequential element. The circuit design is modified to include the unused clock buffer as a second clock buffer coupled to receive a clock signal in parallel with the first clock buffer and to provide a clock signal to the first sequential element.