# US 8,788,994 B2 · Routing of local clock interconnects

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

- Number: US 8,788,994 B2
- Document ID: US8788994B2
- Status: Granted
- Kind: B2
- Application number: 13/538,593
- Filed: 2012-06-29
- Published: 2014-01-02
- Granted: 2014-07-22
- Earliest claimed: 2012-06-29
- Assignees: International Business Machines Corporation
- Applicants: Haitian Hu; Chin Ngai Sze
- Inventors: Haitian Hu; Chin Ngai Sze
- Web page: https://patentgrep.com/patent/US8788994B2

## CPC

- G06F 30/394: Routing (G06F30/396 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In an improved routing of local clock interconnects, an endpoint including a representation of a pin is selected. An original delay is calculated in a route segment that supplies a clock signal to the pin. When the original delay exceeds a delay threshold, a cross-link is added in the route such that the cross-link completes a non-tree sub-network including the segment. The non-tree sub-network is a part of a non-tree network of interconnects carrying the clock signal. A revised delay is calculated in the segment without using delay information corresponding to another non-tree sub-network. The non-tree sub-network is virtually manipulated such that the revised delay can be computed in the manner of computing delay of a tree network. The route is modified using the revised delay in the segment such that a clock skew at the pin is reduced.

## Claims

### Claim 1

A computer implemented method for improved routing of local clock interconnects in an integrated circuit (IC) design, the computer implemented method comprising:
selecting, from a set of endpoints in the IC design, an endpoint, wherein the endpoint is an electronic component represented in the IC design, and includes a representation of a pin at which an electrical connection in the IC design can be configured;
calculating an original delay in a segment in a route that supplies a clock signal to the pin from a distribution point;
adding, responsive to the original delay exceeding a delay threshold, a cross-link in the route such that the cross-link completes a non-tree sub-network including the segment, wherein the non-tree sub-network is a part of a non-tree network of interconnects carrying the clock signal in the IC design;
calculating, using a processor and a memory, a revised delay in the segment without using delay information corresponding to another non-tree sub-network in the non-tree network, wherein the calculating the revised delay includes
virtually manipulating the non-tree sub-network to compute a downstream delay value from the distribution point,
wherein the downstream delay value is computed without using an upstream delay value from the distribution point, and
wherein the downstream delay value enables computing the upstream delay value from the distribution point; and
modifying the route using the revised delay in the segment such that a clock skew at the pin is reduced.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, wherein the virtually manipulating further comprises:
determining a point in the route at which the delay in the route is at a maximum value;
creating a first virtual pin and a second virtual pin near the point; and
distributing a total load capacitance corresponding to the maximum value to the first virtual pin at a first end of the route and the second virtual pin at a second end of the route, such that a first portion of downstream capacitance in the non-tree sub-network is assigned to the first virtual pin and a second portion of downstream capacitance in the non-tree sub-network is assigned to the second virtual pin.

### Claim 3 (depends on 2)

The computer implemented method of claim 2, wherein the first and the second portions are each one half of the maximum value.

### Claim 4 (depends on 1)

The computer implemented method of claim 1, wherein the threshold is a portion of a total threshold, the portion being allocated to the first layer.

### Claim 5 (depends on 1)

The computer implemented method of claim 1, further comprising:
removing, responsive to the revised delay exceeding the threshold, the cross-link.

### Claim 6 (depends on 1)

The computer implemented method of claim 1, further comprising:
adding a second cross-link in a different route such that the second cross-link completes a another non-tree sub-network including the segment.

### Claim 7 (depends on 1)

The computer implemented method of claim 1, further comprising:
selecting a first layer corresponding to the endpoint in which the pin of the endpoint is located; and
routing, forming the route, the pin to a second layer, wherein the second layer is the next higher layer to the first layer in the IC design, and wherein the segment is iteratively selected from the route.

### Claim 8 (depends on 1)

The computer implemented method of claim 1, wherein the another non-tree sub-network is upstream from the non-tree sub-network in the non-tree network.

### Claim 9

A computer usable program product comprising a computer usable storage device including computer usable code for improved routing of local clock interconnects in an integrated circuit (IC) design, the computer usable code comprising:
computer usable code for selecting, from a set of endpoints in the IC design, an endpoint, wherein the endpoint is an electronic component represented in the IC design, and includes a representation of a pin at which an electrical connection in the IC design can be configured;
computer usable code for calculating an original delay in a segment in a route that supplies a clock signal to the pin;
computer usable code for adding, responsive to the original delay exceeding a delay threshold, a cross-link in the route such that the cross-link completes a non-tree sub-network including the segment, wherein the non-tree sub-network is a part of a non-tree network of interconnects carrying the clock signal in the IC design;
computer usable code for calculating, using a processor and a memory, a revised delay in the segment without using delay information corresponding to another non-tree sub-network in the non-tree network, wherein the calculating the revised delay includes
virtually manipulating the non-tree sub-network to compute a downstream delay value from the distribution point,
wherein the downstream delay value is computed without using an upstream delay value from the distribution point, and
wherein the downstream delay value enables computing the upstream delay value from the distribution point; and
computer usable code for modifying the route using the revised delay in the segment such that at least one of (i) a clock skew at the pin is reduced, (ii) a power dissipation of clock distribution is reduced, (iii) a maximum clock skew in the IC design is reduced, (iv) a size of clock network is reduced, (v) a clock jitter in the IC design is reduced, and (vi) a maximum clock latency in the IC design is reduced.

### Claim 10 (depends on 9)

The computer usable program product of claim 9, wherein the virtually manipulating further comprises:
computer usable code for determining a point in the route at which the delay in the route is at a maximum value;
computer usable code for creating a first virtual pin and a second virtual pin near the point; and
computer usable code for distributing a total load capacitance corresponding to the maximum value to the first virtual pin at a first end of the route and the second virtual pin at a second end of the route, such that a first portion of downstream capacitance in the non-tree sub-network is assigned to the first virtual pin and a second portion of downstream capacitance in the non-tree sub-network is assigned to the second virtual pin.

### Claim 11 (depends on 10)

The computer usable program product of claim 10, wherein the first and the second portions are each one half of the maximum value.

### Claim 12 (depends on 9)

The computer usable program product of claim 9, wherein the threshold is a portion of a total threshold, the portion being allocated to the first layer.

### Claim 13 (depends on 9)

The computer usable program product of claim 9, further comprising:
computer usable code for removing, responsive to the revised delay exceeding the threshold, the cross-link.

### Claim 14 (depends on 9)

The computer usable program product of claim 9, further comprising:
computer usable code for adding a second cross-link in a different route such that the second cross-link completes a another non-tree sub-network including the segment.

### Claim 15 (depends on 9)

The computer usable program product of claim 9, further comprising:
computer usable code for selecting a first layer corresponding to the endpoint in which the pin of the endpoint is located; and
computer usable code for routing, forming the route, the pin to a second layer, wherein the second layer is the next higher layer to the first layer in the IC design, and wherein the segment is iteratively selected from the route.

### Claim 16 (depends on 9)

The computer usable program product of claim 9, wherein the another non-tree sub-network is upstream from the non-tree sub-network in the non-tree network.

### Claim 17 (depends on 9)

The computer usable program product of claim 9, wherein the computer usable code is stored in a computer readable storage medium in a data processing system, and wherein the computer usable code is transferred over a network from a remote data processing system.

### Claim 18 (depends on 9)

The computer usable program product of claim 9, wherein the computer usable code is stored in a computer readable storage medium in a server data processing system, and wherein the computer usable code is downloaded over a network to a remote data processing system for use in a computer readable storage medium associated with the remote data processing system.

### Claim 19

A data processing system for improved routing of local clock interconnects in an integrated circuit (IC) design, the data processing system comprising:
a storage device, wherein the storage device stores computer usable program code; and
a processor, wherein the processor executes the computer usable program code, and wherein the computer usable program code comprises:
computer usable code for selecting, from a set of endpoints in the IC design, an endpoint, wherein the endpoint is an electronic component represented in the IC design, and includes a representation of a pin at which an electrical connection in the IC design can be configured;
computer usable code for calculating an original delay in a segment in a route that supplies a clock signal to the pin;
computer usable code for adding, responsive to the original delay exceeding a delay threshold, a cross-link in the route such that the cross-link completes a non-tree sub-network including the segment, wherein the non-tree sub-network is a part of a non-tree network of interconnects carrying the clock signal in the IC design;
computer usable code for calculating, using a processor and a memory, a revised delay in the segment without using delay information corresponding to another non-tree sub-network in the non-tree network, wherein the calculating the revised delay includes
virtually manipulating the non-tree sub-network to compute a downstream delay value from the distribution point,
wherein the downstream delay value is computed without using an upstream delay value from the distribution point, and
wherein the downstream delay value enables computing the upstream delay value from the distribution point; and
computer usable code for modifying the route using the revised delay in the segment such that at least one of (i) a clock skew at the pin is reduced, (ii) a power dissipation of clock distribution is reduced, (iii) a maximum clock skew in the IC design is reduced, (iv) a size of clock network is reduced, (v) a clock jitter in the IC design is reduced, and (vi) a maximum clock latency in the IC design is reduced.

### Claim 20 (depends on 19)

The data processing system of claim 19, wherein the virtually manipulating further comprises:
computer usable code for determining a point in the route at which the delay in the route is at a maximum value;
computer usable code for creating a first virtual pin and a second virtual pin near the point; and
computer usable code for distributing a total load capacitance corresponding to the maximum value to the first virtual pin at a first end of the route and the second virtual pin at a second end of the route, such that a first portion of downstream capacitance in the non-tree sub-network is assigned to the first virtual pin and a second portion of downstream capacitance in the non-tree sub-network is assigned to the second virtual pin.
