IP Library Granted Patent US 9,342,640
Granted Patent B1
US 9,342,640 · App. 14/229,358 · Granted May 17, 2016

Method and apparatus for protecting, optimizing, and reporting synchronizers

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,342,640
App. No.
14/229,358
Granted
May 17, 2016
Kind
B1
Abstract

A method for designing a system on a target device using an electronic design automation (EDA) tool including identifying synchronizer chains in a system design using timing relationships. According to one embodiment of the present invention, the method includes conveniently reporting system reliability considering synchronization, and automatically protecting and optimizing synchronizer chains to improve system robustness.

Claims (35)

1. A method for designing a system on a target device using an electronic design automation (EDA) tool, comprising:

identifying a desirable mean-time-between-failure (MTBF) for a synchronizer chain to be implemented with programmable resources on the target device;

computing a desirable chain slack for the synchronizer chain from the desirable MTBF for the synchronizer chain; and

computing slacks on all the hops of the synchronizer chain based on a current slack and the desirable chain slack, wherein at least one of the identifying and computing is performed by a processor.

2. The method of claim 1 , wherein identifying a desirable MTBF for a synchronizer chain comprises calculating a desirable MTBF for the chain based on a number of anticipated synchronizers and a system MTBF target.

3. The method of claim 1 , wherein computing slacks on all the hops of the synchronizer chain comprises mapping slack.

4. The method of claim 3 , wherein mapping slack comprises annotating the actual chain slack minus the desired chain slack.

5. The method of claim 3 , wherein mapping slack comprises dividing excess slack among various hops of the synchronizer chain, if the current slack for the synchronizer chain is greater than the desirable slack.

6. The method of claim 1 , further comprising optimizing the synchronizer chains by selecting back-bias settings to improve the time constants of synchronization storage elements to achieve desirable MTBF.

7. The method of claim 1 , further comprising optimizing the synchronizer chains by locating the synchronizer chain elements in a small region and selecting favorable routing resources to connect them to minimize the delay between them.

8. The method of claim 1 , further comprising optimizing the synchronizer chains by placing components of synchronizer chain in a small region and selecting routing resources to connect the components of the synchronizer chain to reduce the delay between the components of the synchronizer chain.

9. The method of claim 1 further comprising protecting elements of the synchronizer chains that enable one of reliable synchronization and capture of a signal from a first timing domain to a second timing domain that is asynchronous with respect to the first timing domain by preventing register duplication during compilation.

10. The method of claim 1 further comprising reporting a quality of the synchronizer chains to a user, wherein the quality takes into consideration state-dependent filtering of metastability events based on logic within and logic after a synchronizer chain, and states of other inputs to the logic, wherein a data rate of the synchronizer chains affects the filtering, and wherein at least one of the identifying and reporting is performed by a processor.

11. The method of claim 1 , further comprising identifying synchronizer chains in a system design by:

identifying destinations of asynchronous paths;

designating the destinations of the asynchronous paths identified as candidates for heads of synchronizer chains;

filtering the candidates for heads of synchronizer chains; and

identifying synchronizer chains associated with remaining candidates for heads of synchronizer chains.

12. The method of Claim 1 further comprising generating a data file operable to program the target device to physically implement the system.

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

identifying a desirable mean-time-between-failure (MTBF) for a synchronizer chain to be implemented with programmable resources on a target device;

computing a desirable chain slack for the synchronizer chain from the desirable MTBF for the synchronizer chain; and

computing slacks on all the hops of the synchronizer chain based on a current slack and the desirable chain slack.

14. The non-transitory computer readable medium of claim 13 , wherein identifying a desirable MTBF for a synchronizer chain comprises calculating a desirable MTBF for the chain based on a number of anticipated synchronizers and a system MTBF target.

15. The non-transitory computer readable medium of claim 13 , wherein computing slacks on all the hops of the synchronizer chain comprises mapping slack.

16. The non-transitory computer readable medium of claim 15 , wherein mapping slack comprises annotating the actual chain slack minus the desired chain slack.

17. The non-transitory computer readable medium of claim 15 , wherein mapping slack comprises dividing excess slack among various hops of the synchronizer chain, if the current slack for the synchronizer chain is greater than the desirable slack.

18. The non-transitory computer readable medium of claim 13 further comprising protecting elements of the synchronizer chains that enable one of reliable synchronization and capture of a signal from a first timing domain to a second timing domain that is asynchronous with respect to the first timing domain by preventing register duplication during compilation.

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

reporting a quality of synchronizer chains, to be implemented with programmable resources on the target device, to a user, wherein the quality takes into consideration state-dependent filtering of metastability events based on digital logic within and digital logic after a synchronizer chain, and states of other inputs to the digital logic, wherein a data rate of the synchronizer chains affects the filtering, and wherein the reporting is performed by a processor.

20. The method of claim 19 , wherein reporting the quality of the synchronizer chains comprises displaying a design mean-time-between-failure (MTBF) value that reflects failure rates of the synchronizer chains.

21. The method of claim 19 , wherein reporting the quality of the synchronizer chains comprises displaying a mean-time-between-failure (MTBF) value for each of the synchronizer chains.

22. The method of Claim 19 further comprising:

performing one of synthesis, placement, and routing utilizing the slacks computed;

and generating a data file operable to program the target device to physically implement the system.

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 Mar 28, 2014
From: FUNG, RYAN; BETZ, VAUGHN; NETO, DAVID
To: ALTERA CORPORATION
Reel/Frame 032562/0076 →