Register clustering for clock network topology generation
First Claim
1. A method performed by at least one processor, comprising:
- receiving, by the at least one processor, a physical netlist of a placed integrated circuit (IC) chip design, the physical netlist comprising a plurality of registers;
obtaining, by the at least one processor, timing criticalities of register pairs in the registers;
assigning weights to the register pairs based on the timing criticalities of the register pairs; and
forming, by the at least one processor, clusters of the registers comprising;
identifying candidate registers that are in physical vicinity of a first cluster; and
selecting from the candidate registers a first register to be added to the first cluster by giving priority to a candidate register in a register pair across a boundary of the first cluster and with a higher timing criticality over a candidate register located closer to the first cluster, the registers in the same cluster having shorter non-common clock paths than the registers in different clusters, and the selecting comprising;
if a first candidate register in the candidate registers of the first cluster is unclustered, selecting the first candidate register as the first register to be added to the first cluster if sum of weights of other candidate registers in register pairs across the boundary of the first cluster is optimized.
1 Assignment
0 Petitions
Accused Products
Abstract
In some embodiments, in a method performed by at least one processor, a physical netlist of a placed integrated circuit (IC) chip design is received by the at least one processor. The physical netlist comprises a plurality of registers. Timing criticalities of register pairs in the registers are obtained by the at least one processor. Clusters of the registers are formed by the at least one processor. When forming cluster of the registers, candidate registers that are in physical vicinity of a first cluster are identified, and a first register is selected to be added to the first cluster by giving priority to a candidate register in a register pair across a boundary of the first cluster and with a higher timing criticality over a candidate register located closer to the first cluster. The registers in the same cluster have shorter non-common clock paths than the registers in different clusters.
15 Citations
14 Claims
-
1. A method performed by at least one processor, comprising:
-
receiving, by the at least one processor, a physical netlist of a placed integrated circuit (IC) chip design, the physical netlist comprising a plurality of registers; obtaining, by the at least one processor, timing criticalities of register pairs in the registers; assigning weights to the register pairs based on the timing criticalities of the register pairs; and forming, by the at least one processor, clusters of the registers comprising; identifying candidate registers that are in physical vicinity of a first cluster; and selecting from the candidate registers a first register to be added to the first cluster by giving priority to a candidate register in a register pair across a boundary of the first cluster and with a higher timing criticality over a candidate register located closer to the first cluster, the registers in the same cluster having shorter non-common clock paths than the registers in different clusters, and the selecting comprising; if a first candidate register in the candidate registers of the first cluster is unclustered, selecting the first candidate register as the first register to be added to the first cluster if sum of weights of other candidate registers in register pairs across the boundary of the first cluster is optimized. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
at least one processor, configured to execute program instructions which configure the at least one processor as; a timing analysis tool, configured to receive a physical netlist of a placed integrated circuit (IC) chip design comprising a plurality of registers and obtain timing criticalities of register pairs in the registers; a weight-assigning module configured to assign weights to the register pairs based on the timing criticalities of the register pairs; and a cluster-forming module, configured to receive the physical netlist and the timing criticalities of the register pairs and form clusters of the registers by performing operations comprising; identifying candidate registers that are in physical vicinity of a first cluster; and selecting from the candidate registers a first register to be added to the first cluster by giving priority to a candidate register in a register pair across a boundary of the first cluster and with a higher timing criticality over a candidate register located closer to the first cluster, the registers in the same cluster having shorter non-common clock paths than the registers in different clusters, and the selecting comprising; if a first candidate register in the candidate registers of the first cluster is unclustered, selecting the first candidate register as the first register to be added to the first cluster if sum of weights of other candidate registers in register pairs across the boundary of the first cluster is optimized; and at least one memory configured to store the program instructions. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium storing program instructions that when executed by a computer cause the computer to perform a method, the method comprising:
-
receiving, by the at least one processor, a physical netlist of a placed integrated circuit (IC) chip design, the physical netlist comprising a plurality of registers; obtaining, by the at least one processor, timing criticalities of register pairs in the registers; assigning weights to the register pairs based on the timing criticalities of the register pairs; and forming, by the at least one processor, clusters of the registers comprising; identifying candidate registers that are in physical vicinity of a first cluster; and selecting from the candidate registers a first register to be added to the first cluster by giving priority to a candidate register in a register pair across a boundary of the first cluster and with a higher timing criticality over a candidate register located closer to the first cluster, the registers in the same cluster having shorter non-common clock paths than the registers in different clusters, and the selecting comprising; if a first candidate register in the candidate registers of the first cluster is unclustered, selecting the first candidate register as the first register to be added to the first cluster if sum of weights of other candidate registers in register pairs across the boundary of the first cluster is optimized. - View Dependent Claims (12, 13, 14)
-
Specification