Optimal distance based buffer tree for data path and clock
AssigneeFreescale Semiconductor, Inc.
InventorMrugesh Shah
Life of this patent
Estimating the term…
Abstract
A device development tool selects a source component and identifies a plurality of sink components in a device design layout. The device development tool determines whether the sink components are configured in a single-sided layout, a multi-sided layout, or a multi-distance layout. Next, the device development tool computes a first level center of gravity for the plurality of sink components and also computes an X distance and a Y distance from the source component to the first level center of gravity. The device development tool then groups the plurality of sink components into sets and places buffers in the layout using an algorithm that is specific for the identified layout type.
Claims20
A computer-implemented method comprising:
- selecting a source component included in a device design layout;
- identifying a plurality of sink components that depend upon the source component, the plurality of sink components included in the device design layout;
- computing, by a processor, a first level center of gravity for the plurality of sink components;
- computing, by the processor, an X distance and a Y distance from the source component to the first level center of gravity, the X distance corresponding to an X-axis of the device design layout and the Y distance corresponding to a Y-axis of the device design layout;
- determining whether the X distance is greater than the Y distance;
- in response to determining that the X distance is greater than the Y distance, dividing the plurality of sink components into two first level sets by computing an X-axis line through the first level center of gravity, the X-axis line parallel to the X-axis;
- in response to determining that the Y distance is greater than the X distance, dividing the plurality of sink components into the two first level sets by computing a Y-axis line through the first level center of gravity, the Y-axis line parallel to the Y-axis;
- and
- placing a plurality of buffers in the device design layout based upon locations of a plurality of second level center of gravities of the two first level sets, wherein the placement of the plurality of buffers optimizes one or more critical paths between the source component and one or more of the plurality of sink components.
A computer program product stored in a non-transitory computer readable medium, comprising functional descriptive material that, when executed by an information handling system, causes the information handling system to perform actions that include:
- selecting a source component included in a device design layout;
- identifying a plurality of sink components that depend upon the source component, the plurality of sink components included in the device design layout;
- computing a first level center of gravity for the plurality of sink components;
- computing an X distance and a Y distance from the source component to the first level center of gravity, the X distance corresponding to an X-axis of the device design layout and the Y distance corresponding to a Y-axis of the device design layout;
- determining whether the X distance is greater than the Y distance;
- in response to determining that the X distance is greater than the Y distance, dividing the plurality of sink components into two first level sets by computing an X-axis line through the first level center of gravity, the X-axis line parallel to the X-axis;
- in response to determining that the Y distance is greater than the X distance, dividing the plurality of sink components into the two first level sets by computing a Y-axis line through the first level center of gravity, the Y-axis line parallel to the Y-axis;
- and
- placing a plurality of buffers in the device design layout based upon locations of a plurality of second level center of gravities of the two first level sets, wherein the placement of the plurality of buffers optimizes one or more critical paths between the source component and one or more of the plurality of sink components.
An information handling system comprising:
- one or more processors;
- a memory accessible by at least one of the processors;
- a nonvolatile storage area accessible by at least one of the processors;
- a set of instructions stored in the memory and executed by at least one of the processors in order to perform actions of:
- selecting a source component included in a device design layout;
- identifying a plurality of sink components that depend upon the source component, the plurality of sink components included in the device design layout;
- computing a first level center of gravity for the plurality of sink components;
- computing an X distance and a Y distance from the source component to the first level center of gravity, the X distance corresponding to an X-axis of the device design layout and the Y distance corresponding to a Y-axis of the device design layout;
- determining whether the X distance is greater than the Y distance;
- in response to determining that the X distance is greater than the Y distance, dividing the plurality of sink components into two first level sets by computing an X-axis line through the first level center of gravity, the X-axis line parallel to the X-axis;
- in response to determining that the Y distance is greater than the X distance, dividing the plurality of sink components into the two first level sets by computing a Y-axis line through the first level center of gravity, the Y-axis line parallel to the Y-axis;
- and
- placing a plurality of buffers in the device design layout based upon locations of a plurality of second level center of gravities of the two first level sets, wherein the placement of the plurality of buffers optimizes one or more critical paths between the source component and one or more of the plurality of sink components.
Dependencies are inferred from the claim text.