Register pull-out for sequential circuit blocks in circuit designs
First Claim
Patent Images
1. A method, comprising:
- determining, using computer hardware, a net of a circuit design having a driver that is a macro circuit block driving a plurality of loads;
determining, using the computer hardware, a placement difficulty of the net based upon a placement difficulty of the driver and a placement difficulty of the plurality of loads;
wherein the placement difficulty of the driver depends on a number of primitives of a same type as the driver in a device and a total number of primitives across types in the device;
wherein the placement difficulty of the plurality of loads depends on, for each load of the plurality of loads, a number of primitives of a same type as the load in the device and a total number of primitives across types in the device; and
in response to determining that the placement difficulty of the net exceeds a threshold placement difficulty, modifying, using the computer hardware, the circuit design by pulling a register from the driver to a location on the device external to the driver and changing internal logic of the driver based upon the pulled register.
1 Assignment
0 Petitions
Accused Products
Abstract
Register pull-out for sequential circuit blocks may include determining, using computer hardware, a net of a circuit design having a driver that is a macro circuit block driving a plurality of loads and determining, using the computer hardware, a placement difficulty of the net based upon a type of the driver and number and type of the plurality of loads. In response to determining that the placement difficulty of the net exceeds a threshold placement difficulty, the computer hardware is capable of modifying the circuit design by pulling a register from the driver to a location on a device external to the driver and changing internal logic of the driver based upon the pulled register.
-
Citations
20 Claims
-
1. A method, comprising:
-
determining, using computer hardware, a net of a circuit design having a driver that is a macro circuit block driving a plurality of loads; determining, using the computer hardware, a placement difficulty of the net based upon a placement difficulty of the driver and a placement difficulty of the plurality of loads; wherein the placement difficulty of the driver depends on a number of primitives of a same type as the driver in a device and a total number of primitives across types in the device; wherein the placement difficulty of the plurality of loads depends on, for each load of the plurality of loads, a number of primitives of a same type as the load in the device and a total number of primitives across types in the device; and in response to determining that the placement difficulty of the net exceeds a threshold placement difficulty, modifying, using the computer hardware, the circuit design by pulling a register from the driver to a location on the device external to the driver and changing internal logic of the driver based upon the pulled register. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a processor configured to initiate operations including; determining a net of a circuit design having a driver that is a sequential circuit block driving a plurality of loads; determining a placement difficulty of the net based upon a placement difficulty of the driver and a placement difficulty of the plurality of loads; wherein the placement difficulty of the driver depends on a number of primitives of a same type as the driver in a device and a total number of primitives across types in the device; wherein the placement difficulty of the plurality of loads depends on, for each load of the plurality of loads, a number of primitives of a same type as the load in the device and a total number of primitives across types in the device; and in response to determining that the placement difficulty of the net exceeds a threshold placement difficulty, modifying the circuit design by pulling a register from the driver to a location on the device external to the driver and changing internal logic of the driver based upon the pulled register. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product, comprising:
-
a computer readable storage medium having program code stored thereon, the program code executable by computer hardware to initiate operations including; determining a net of a circuit design having a driver that is a sequential circuit block driving a plurality of loads; determining a placement difficulty of the net based upon a placement difficulty of the driver and a placement difficulty of the plurality of loads; wherein the placement difficulty of the driver depends on a number of primitives of a same type as the driver in a device and a total number of primitives across types in the device; and wherein the placement difficulty of the plurality of loads depends on, for each load of the plurality of loads, a number of primitives of a same type as the load in the device and a total number of primitives across types in the device; and in response to determining that the placement difficulty of the net exceeds a threshold placement difficulty, modifying the circuit design by pulling a register from the driver to a location on the device external to the driver and changing internal logic of the driver based upon the pulled register. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification