IP Library Granted Patent US 9,195,793
Granted Patent B1
US 9,195,793 · App. 14/154,623 · Granted Nov 24, 2015

Method and apparatus for relocating design modules while preserving timing closure

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,195,793
App. No.
14/154,623
Granted
Nov 24, 2015
Kind
B1
Abstract

A method for designing a system on a target device includes generating a solution for the system. A solution for a module of the system identified by a user is preserved. The preserved solution for the module is implemented at a location on the target device identified by the user.

Claims (48)

1. A method for designing a system on a target device, comprising:

generating a solution for the system;

preserving a solution for a module of the system identified by a user; and

implementing the preserved solution for the module at a location on the target device identified by the user which is a different location than which the preserved solution is based on.

2. The method of claim 1 , wherein implementing the preserved solution comprises translating the preserved solution to be implemented at the location.

3. The method of claim 2 , wherein translating the preserved solution comprises:

computing a displacement vector for the module in response to receiving a displacement location for the module;

determining whether any logic elements reside in the module; and

for each logic element residing in the module, identify a location to place the logic element to form a displaced module by applying the displacement vector to a location of the logic element in the module.

4. The method of claim 1 , wherein implementing the preserved solution for the module at a location on the target device identified by the user comprises moving the module from a location which the preserved solution is based on to the different location.

5. The method of claim 1 , wherein implementing the preserved solution for the module at a location on the target device identified by the user comprises replicating the module at a plurality of locations on the target device.

6. The method of claim 1 , wherein generating the solution comprises generating a placement solution.

7. The method of claim 1 , wherein generating the solution comprises generating a routing solution.

8. The method of claim 1 further comprising performing timing analysis on the system.

9. The method of claim 1 , wherein the module of the system comprises a plurality of components for performing a logic function.

10. The method of claim 1 further comprising identifying displacement options for the module of the system.

11. The method of claim 10 , wherein identifying the displacement options for the module of the system comprises identifying other locations on the target device having resources similar to that of an area having a selected location and size on the target device.

12. The method of claim 11 , wherein identifying other locations on the target device comprises looking up predetermined locations having resources similar to those in the area on a table.

13. The method of claim 10 , wherein identifying the displacement options for the module of the system comprises identifying other locations on the target device having resources similar to that of an area having a selected location and size on the target device and capable of performing a function within a selected timing variation.

14. The method of claim 10 further comprising displaying the identified displacement options to the user on a graphical user interface.

15. The method of claim 14 , wherein the displacement option is selected by the user by selecting one or more identified displacement options displayed on the graphical user interface.

16. The method of claim 1 further comprising:

determining whether any wires reside in the module; and

for each wire residing in the module, selecting a routing resource to form a displaced module by applying the displacement vector to a location of the wire in the module.

17. The method of claim 1 further comprising:

determining if a global routing resource resides in the module; and

for each global routing resource residing in the module, connecting the global routing resource to a displaced module.

18. The method of claim 1 further comprising:

determining if a clock spine resides in the module;

for each clock spine residing in the module, connecting the clock spine to the displaced module if the clock spine is within a predetermined distance from the displacement location; and

if the clock spine is outside the predetermined distance, connecting a displaced module to a nearest clock spine.

19. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method comprising:

generating a solution for a system;

preserving a solution for a module of the system identified by a user; and

implementing the preserved solution for the module at a location on a target device identified by the user which is a different location than which the preserved solution is based on.

20. The non-transitory computer readable medium of claim 19 , wherein implementing the preserved solution comprises translating the preserved solution to be implemented at the location by:

computing a displacement vector for the module in response to receiving a displacement location for the module;

determining whether any logic elements reside in the module; and

for each logic element residing in the module, identify a location to place the logic element to form a displaced module by applying the displacement vector to a location of the logic element in the module.

21. The non-transitory computer readable medium of claim 20 , wherein translating the preserved solution to be implemented at the location further comprises:

determining whether any wires reside in the module; and

for each wire residing in the module, selecting a routing resource to form the displaced module by applying the displacement vector to a location of the wire in the module.

22. The non-transitory computer readable medium of claim 19 , wherein the method further comprises identifying displacement options for the module of the system by identifying other locations on the target device having resources similar to that of an area having a selected location and size on the target device.

23. The non-transitory computer readable medium of claim 19 , wherein the preserved solution is implemented in the system.

24. A method for designing a system on a target device, comprising:

generating a solution for the system;

preserving a solution for a module of the system; and

implementing the preserved solution for the module of the system in the system at a location on the target device which is a different location than which the preserved solution is based on.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2014
From: WHEELER, MARK STEPHEN; CHIU, GORDON RAYMOND
To: ALTERA CORPORATION
Reel/Frame 031963/0087 →