IP Library Granted Patent US 7,557,606
Granted Patent B1
US 7,557,606 · App. 12/105,146 · Granted Jul 7, 2009

Synchronization of data signals and clock signals for programmable logic devices

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 7,557,606
App. No.
12/105,146
Granted
Jul 7, 2009
Kind
B1
Abstract

Techniques for synchronizing data signals and clock signals of a programmable logic device (PLD) are provided. In one example, a method includes preparing an initial configuration of the PLD identifying a plurality of data paths associated with the data signals and a plurality of clock paths associated with the clock signals. The method also includes identifying a hold time violation associated with at least one of the data paths, wherein at least one of the clock signals is used to synchronize the data path. The method further includes selectively adjusting a delay period of a delay element of at least one of the clock paths associated with the clock signal to attempt to correct the hold time violation without concurrently attempting to correct any setup time violation associated with the data path.

Claims (47)

1. A method of synchronizing data signals and clock signals of a programmable logic device (PLD), the method comprising:

preparing an initial configuration of the PLD identifying a plurality of data paths associated with the data signals and a plurality of clock paths associated with the clock signals;

identifying a hold time violation associated with at least one of the data paths, wherein at least one of the clock signals is used to synchronize the data path; and

selectively adjusting a delay period of a delay element of at least one of the clock paths associated with the clock signal to attempt to correct the hold time violation without concurrently attempting to correct any setup time violation associated with the data path.

2. The method of claim 1 , further comprising selectively adjusting a timing preference from a first value to a second value if the hold time violation is not corrected by the adjusting of the delay period, wherein the timing preference is associated with the clock signal.

3. The method of claim 2 , further comprising repeating the adjusting of the delay period and the adjusting of the timing preference until the timing preference reaches a maximum value.

4. The method of claim 2 , further comprising preparing a revised configuration of the PLD using the adjusted timing preference.

5. The method of claim 2 , wherein the timing preference is a clock period associated with the clock signal.

6. The method of claim 2 , wherein the first value of the timing preference is a minimum value and the second value of the timing preference value is a value between the minimum value and a maximum value.

7. The method of claim 2 , wherein the hold time violation is a first hold time violation, the data path is a first data path, the delay period is a first delay period, the delay element is a first delay element, the clock path is a first clock path, and the clock signal is a first clock signal, the method further comprising:

identifying a second hold time violation associated with at least a second one of the data paths; and

refraining from attempting to correct the second hold time violation if selective adjustment of a second delay period of a second delay element of a second clock path associated with a second clock signal used to synchronize the second data path cannot satisfy a hold time constraint associated with the second data path.

8. The method of claim 2 , wherein the data path is a first data path, the delay period is a first delay period, the delay element is a first delay element, the clock path is a first clock path, and the clock signal is a first clock signal, the method further comprising:

determining that a second one of the data paths satisfies an associated hold time constraint; and

refraining from adjusting a second delay period of a second delay element of a second clock path associated with a second clock signal used to synchronize the second data path if the hold time constraint is satisfied for all available delay periods of the second delay element.

9. The method of claim 2 , wherein the timing preference is a first timing preference, the clock signal is a first clock signal, the hold time violation is a first hold time violation, the data path is a first data path, the delay period is a first delay period, the delay element is a first delay element, and the clock path is a first clock path, the method further comprising:

identifying a second hold time violation associated with at least a second one of the data paths, wherein the second clock signal is used to synchronize the data path;

selectively adjusting a second delay period of a second delay element of at least a second one of the clock paths associated with a second one of the clock signals to attempt to correct the second hold time violation without concurrently attempting to correct any setup time violation associated with the second data path;

selectively adjusting a second timing preference from a third value to a fourth value if the second hold time violation is not corrected by the adjusting of the second delay period, wherein the second timing preference is associated with the second clock signal; and

sorting the first and second timing preferences based on their relative impact on setup time slack values of the PLD, wherein the adjusting of the first delay period and the adjusting of the first timing preference are performed prior to the adjusting of the second delay period and the adjusting of the second timing preference based on the sorting.

10. A computer readable medium on which is stored a computer program for performing the method of claim 1 .

11. A system comprising:

one or more processors; and

one or more memories adapted to store a plurality of computer readable instructions which when executed by the one or more processors are adapted to cause the system to perform a method of synchronizing data signals and clock signals of a programmable logic device (PLD), the method comprising:

preparing an initial configuration of the PLD identifying a plurality of data paths associated with the data signals and a plurality of clock paths associated with the clock signals,

identifying a hold time violation associated with at least one of the data paths, wherein at least one of the clock signals is used to synchronize the data path, and

selectively adjusting a delay period of a delay element of at least one of the clock paths associated with the clock signal to attempt to correct the hold time violation without concurrently attempting to correct any setup time violation associated with the data path.

12. The system of claim 11 , wherein the method further comprises selectively adjusting a timing preference from a first value to a second value if the hold time violation is not corrected by the adjusting of the delay period, wherein the timing preference is associated with the clock signal.

13. The system of claim 12 , wherein the method further comprises repeating the adjusting of the delay period and the adjusting of the timing preference until the timing preference reaches a maximum value.

14. The system of claim 12 , wherein the method further comprises preparing a revised configuration of the PLD using the adjusted timing preference.

15. The system of claim 12 , wherein the timing preference is a clock period associated with the clock signal.

16. The system of claim 12 , wherein the first value of the timing preference is a minimum value and the second value of the timing preference value is a value between the minimum value and a maximum value.

17. The system of claim 12 , wherein the hold time violation is a first hold time violation, the data path is a first data path, the delay period is a first delay period, the delay element is a first delay element, the clock path is a first clock path, and the clock signal is a first clock signal, wherein the method further comprises:

identifying a second hold time violation associated with at least a second one of the data paths; and

refraining from attempting to correct the second hold time violation if selective adjustment of a second delay period of a second delay element of a second clock path associated with a second clock signal used to synchronize the second data path cannot satisfy a hold time constraint associated with the second data path.

18. The system of claim 12 , wherein the data path is a first data path, the delay period is a first delay period, the delay element is a first delay element, the clock path is a first clock path, and the clock signal is a first clock signal, wherein the method further comprises:

determining that a second one of the data paths satisfies an associated hold time constraint; and

refraining from adjusting a second delay period of a second delay element of a second clock path associated with a second clock signal used to synchronize the second data path if the hold time constraint is satisfied for all available delay periods of the second delay element.

19. The system of claim 12 , wherein the timing preference is a first timing preference, the clock signal is a first clock signal, the hold time violation is a first hold time violation, the data path is a first data path, the delay period is a first delay period, the delay element is a first delay element, and the clock path is a first clock path, wherein the method further comprises:

identifying a second hold time violation associated with at least a second one of the data paths, wherein the second clock signal is used to synchronize the data path;

selectively adjusting a second delay period of a second delay element of at least a second one of the clock paths associated with a second one of the clock signals to attempt to correct the second hold time violation without concurrently attempting to correct any setup time violation associated with the second data path;

selectively adjusting a second timing preference from a third value to a fourth value if the second hold time violation is not corrected by the adjusting of the second delay period, wherein the second timing preference is associated with the second clock signal; and

sorting the first and second timing preferences based on their relative impact on setup time slack values of the PLD, wherein the adjusting of the first delay period and the adjusting of the first timing preference are performed prior to the adjusting of the second delay period and the adjusting of the second timing preference based on the sorting.

20. A system for synchronizing data signals and clock signals of a programmable logic device (PLD), the system comprising:

means for preparing an initial configuration of the PLD identifying a plurality of data paths associated with the data signals and a plurality of clock paths associated with the clock signals;

means for identifying a hold time violation associated with at least one of the data paths, wherein at least one of the clock signals is used to synchronize the data path; and

means for selectively adjusting a delay period of a delay element of at least one of the clock paths associated with the clock signal to attempt to correct the hold time violation without concurrently attempting to correct any setup time violation associated with the data path.

Assignments (4)
SECURITY INTEREST Recorded May 21, 2019
From: LATTICE SEMICONDUCTOR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 049980/0786 →
RELEASE OF SECURITY INTEREST Recorded May 21, 2019
From: JEFFERIES FINANCE LLC
To: LATTICE SEMICONDUCTOR CORPORATION; SILICON IMAGE, INC.; SIBEAM, INC.; DVDO, INC.
Reel/Frame 049827/0326 →
SECURITY INTEREST Recorded Mar 24, 2015
From: LATTICE SEMICONDUCTOR CORPORATION; SIBEAM, INC; SILICON IMAGE, INC.; DVDO, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 035308/0345 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2008
From: CHEN, XIAOTAO; ZHAO, JUN; TING, ERIC
To: LATTICE SEMICONDUCTOR CORPORATION
Reel/Frame 020821/0046 →