System and method for automatic timing-based register placement and register location adjustment in an integrated circuit (IC)
First Claim
Patent Images
1. A computer-implemented method for register placement in an integrated circuit (IC), comprising:
- determining with a processor a data path between circuit elements;
placing at least one register along the data path;
performing with the processor a static timing analysis on the data path;
extracting with the processor top-level timing data to develop an extended timing path, the extended timing path comprising a plurality of timing path segments;
processing the top-level timing data with the processor to determine whether the extended timing path violates a timing requirement; and
moving the at least one register along the data path to satisfy the timing requirement if the timing requirement is violated;
wherein a timing path segment comprises a driving pin and a receiving pin connected by line segments, the line segments selected by;
connecting with the processor a plurality of points on a circuit into a plurality of bounding boxes, a first bounding box having the driving pin and a second bounding box having the receiving pin;
logically combining with the processor the bounding boxes to form a polygon, the polygon having a plurality of segments defined by selected points from the plurality of bounding boxes; and
the timing path segment chosen by selecting with the processor line segments that form a shortest route between the driving pin and the receiving pin.
10 Assignments
0 Petitions
Accused Products
Abstract
An embodiment of a method for register placement in an integrated circuit (IC) includes determining a data path between circuit elements, placing at least one register along the data path, performing a static timing analysis on the data path, extracting top-level timing data to develop an extended timing path, the extended timing path comprising a plurality of timing path segments; processing the top-level timing data to determine whether the extended timing path violates a timing requirement, and moving the at least one register along the data path to satisfy the timing requirement if the timing requirement is violated.
-
Citations
15 Claims
-
1. A computer-implemented method for register placement in an integrated circuit (IC), comprising:
-
determining with a processor a data path between circuit elements; placing at least one register along the data path; performing with the processor a static timing analysis on the data path; extracting with the processor top-level timing data to develop an extended timing path, the extended timing path comprising a plurality of timing path segments; processing the top-level timing data with the processor to determine whether the extended timing path violates a timing requirement; and moving the at least one register along the data path to satisfy the timing requirement if the timing requirement is violated; wherein a timing path segment comprises a driving pin and a receiving pin connected by line segments, the line segments selected by; connecting with the processor a plurality of points on a circuit into a plurality of bounding boxes, a first bounding box having the driving pin and a second bounding box having the receiving pin; logically combining with the processor the bounding boxes to form a polygon, the polygon having a plurality of segments defined by selected points from the plurality of bounding boxes; and the timing path segment chosen by selecting with the processor line segments that form a shortest route between the driving pin and the receiving pin. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for register placement in an integrated circuit (IC), comprising:
-
a data path between circuit elements; at least one register placed along the data path; logic for performing a static timing analysis on the data path; logic for extracting top-level timing data to develop an extended timing path, the extended timing path comprising a plurality of timing path segments; logic for processing the top-level timing data to determine whether the extended timing path violates a timing requirement; and logic for moving the at least one register along the data path to satisfy the timing requirement if the timing requirement is violated; wherein a timing path segment comprises a driving pin and a receiving pin connected by line segments, the line segments selected by; connecting a plurality of points on a circuit design into a plurality of bounding boxes, a first bounding box having the driving pin and a second bounding box having the receiving pin; logically combining the bounding boxes to form a polygon, the polygon having a plurality of segments defined by selected points from the plurality of bounding boxes; and the timing path segment chosen by selecting line segments that form a shortest route between the driving pin and the receiving pin. - View Dependent Claims (7, 8, 9, 10)
-
-
11. An integrated circuit (IC) assembly, comprising:
-
an integrated circuit chip having a plurality of circuit elements connected by data paths; at least one register placed along the data path; logic for performing a static timing analysis on the data path; logic for extracting top-level timing data to develop an extended timing path, the extended timing path comprising a plurality of timing path segments; logic for processing the top-level timing data to determine whether the extended timing path violates a timing requirement; and logic for moving the at least one register along the data path to satisfy the timing requirement if the timing requirement is violated; wherein a timing path segment comprises a driving pin and a receiving pin connected by line segments, the line segments selected by; connecting a plurality of points on a circuit design into a plurality of bounding boxes, a first bounding box having the driving pin and a second bounding box having the receiving pin; logically combining the bounding boxes to form a polygon, the polygon having a plurality of segments defined by selected points from the plurality of bounding boxes; the timing path segment chosen by selecting line segments that form a shortest route between the driving pin and the receiving pin. - View Dependent Claims (12, 13, 14, 15)
-
Specification