A pair of synchronized clock sources provides phase and frequency synchronous first and second clocks accompanied by first and second control signals to a clock selection circuit having a data selector comprising a first synchronizer and a second synchronizer which re-times the first and second control signals, and these re-timed outputs that are coupled to an asynchronous state machine. The asynchronous state machine changes state by logically operating on the re-timed control signals in conjunction with a state bit. This state bit is used to control the multiplexer, which achieves glitch-free switching between the first clock source and the second clock source.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A clock selector for selecting between a first and a second clock source, said first and second clock source being phase and frequency synchronous and having a period T.sub.cyc, said selector comprising: a multiplexer having a first input for receiving said first clock source, a second input for receiving said second clock source, a control input, and an output, said multiplexer coupling said first input to said output when said control input is inactive, and coupling said second input to said output when said control input is active, said coupling from input to output occurring within a time T.sub.mux after said control input changes value; a first synchronizer coupled to said first clock source and accepting as an input a first clock quality signal, and producing as output a synchronized first clock quality signal within a time T.sub.sync1 after the occurrence of an edge on said first clock source; a second synchronizer coupled to said second clock source and accepting as an input a second clock quality signal, and producing as output a synchronized second clock quality signal within a time T.sub.syn2 after the occurrence of an edge on said second clock source; an asynchronous state machine (ASM) having a first input, a second input, memory, and an output coupled to said memory, said output changing within a time T.sub.asm after application of said input, said ASM output coupled to said multiplexer control input, said ASM first input coupled to said first synchronizer output, said ASM second input coupled to said second synchronizer output, when said memory value is inactive, said memory value changes to active only when said first synchronizer output indicates said first clock quality is bad and said second synchronizer output indicates said second clock quality is good, said memory maintaining an inactive value at all other times, when said memory value is active, said memory value changes to inactive only when said first synchronizer output indicates said first clock quality is good and said second synchronizer output indicates said second clock quality is bad, said memory maintaining an active value at all other times.
2. The selector of claim 1 where T.sub.sync1 +T.sub.mux +T.sub.asm <=1/2(T.sub.cyc).
3. The selector of claim 1 where T.sub.sync2 +T.sub.mux +T.sub.asm <=1/2(T.sub.cyc).
4. The selector of claim 1 where at least one of said first synchronizer first clock source edge or said second synchronizer second clock source edge is a positive edge.
5. The selector of claim 1 where at least one of said first synchronizer first clock source edge or said second synchronizer second clock source edge is a negative edge.
6. The selector of claim 1 where at least one of said first synchronizer or said second synchronizer is a D flip flop.
7. The selector of claim 1 where said memory comprises an RS flip flop.
8. The selector of claim 7 where said RS flip flop has a SET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
9. The selector of claim 7 where said RS flip flop has a SET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
10. The selector of claim 7 where said RS flip flop has a RESET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
11. The selector of claim 7 where said RS flip flop has a RESET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
12. The selector of claim 7 where said memory comprises a D flip flop with an asynchronous SET and an asynchronous RESET input.
13. The selector of claim 12 where said D flip flop has a SET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
14. The selector of claim 12 where said D flip flop has a SET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
15. The selector of claim 12 where said D flip flop has a RESET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
16. The selector of claim 12 where said D flip flop has a RESET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
17. A redundant clock generator and selector comprising: a first clock generator having a first variable frequency oscillator source coupled to a first output buffer having a plurality of outputs, each said output having an electrical length L1, said first variable frequency oscillator having an input for varying said frequency, one of said first output buffer output being a first clock source, a second clock generator having a second variable frequency oscillator source coupled to a second output buffer having a plurality of outputs, each said output having an electrical length L1, said second variable frequency oscillator having an input for varying said frequency, one of said second output buffer outputs being a second clock source, a first phase detector having a local input and a remote input and producing an output proportional to the phase error between said local input and said remote input, said first phase detector coupled to a first error amplifier providing an output proportional to said phase error multiplied by a frequency dependent gain, said first error amplifier output coupled to said first variable frequency oscillator input, a second phase detector having a local input and a remote input and producing an output proportional to the phase error between said local input and said remote input, said second phase detector coupled to a second error amplifier providing an output proportional to said phase error multiplied by a frequency dependant gain, said second error amplifier output coupled to said second variable frequency oscillator input, said first phase detector remote input coupled to one of said second output buffer outputs and having an electrical length L0, said first phase detector local input coupled to one of said first output buffer outputs and having an electrical length L0+L1, said second phase detector remote input coupled to one of said first output buffer outputs and having an electrical length L0, said second phase detector local input coupled to one of said second output buffer outputs and having an electrical length L0+L1, a multiplexer having a first input, a second input, a control input, and an output, said multiplexer coupling said first input to said output when said control input is inactive, and coupling said second input to said output when said control input is active, said coupling from input to output occurring within a time T.sub.mux after said control input changes value, said multiplexer first input coupled to one of said first output buffer outputs, said multiplexer second input coupled to one of said second output buffer outputs; a first synchronizer coupled to said first clock source and accepting as an input a first clock quality signal, and producing as output a synchronized first clock quality signal within a time T.sub.sync1 after the occurrence of an edge on said first clock source; a second synchronizer coupled to said second clock source and accepting as an input a second clock quality signal, and producing as output a synchronized second clock quality signal within a time T.sub.syc2 after the occurrence of an edge on said first clock source; an asynchronous state machine (ASM) having a first input, a second input, memory, and an output coupled to said memory, said output changing within a time T.sub.asm after application of said input, said ASM output coupled to said multiplexer control input, said ASM first input coupled to said first synchronizer output, said ASM second input coupled to said second synchronizer output, when said memory value is inactive, said memory value changes to active only when said first synchronizer output indicates said first clock quality is bad and said second synchronizer output indicates said second clock quality is good, said memory maintaining an inactive value at all other times, when said memory value is active, said memory value changes to inactive only when said first synchronizer output indicates said first clock quality is good and said second synchronizer output indicates said second clock quality is bad, said memory maintaining an active value at all other times.
18. The selector of claim 17 where Ts.sub.sync1 +T.sub.mux +T.sub.asm <=1/2(T.sub.cyc).
19. The selector of claim 17 where T.sub.sync2 +T.sub.mux +T.sub.asm <=1/2(T.sub.cyc).
20. The selector of claim 17 where at least one of said first synchronizer first clock source edge or said second synchronizer second clock source edge is a positive edge.
21. The selector of claim 17 where at least one of said first sychronizer first clock source edge or said second synchronizer second clock source edge is a negative edge.
22. The selector of claim 17 where at least one of said first synchronizer or said second synchronizer is a D flip flop.
23. The selector of claim 17 where said memory comprises an RS flip flop.
24. The selector of claim 23 where said RS flip flop has a SET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
25. The selector of claim 23 where said RS flip flop has a SET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
26. The selector of claim 23 where said RS flip flop has a RESET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
27. The selector of claim 23 where said RS flip flop has a RESET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
28. The selector of claim 23 where said memory comprises a D flip flop with an asynchronous SET and an asynchronous RESET input.
29. The selector of claim 23 where said D flip flop has a SET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
30. The selector of claim 28 where said D flip flop has a SET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
31. The selector of claim 28 where said D flip flop has a RESET input asserted when the following logical statement is true: (said memory value) & !(said ASM first input) & (said ASM second input).
32. The selector of claim 28 where said D flip flop has a RESET input asserted when the following logical statement is true: !(said memory value) & (said ASM first input) & !(said ASM second input).
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 7, 2000
May 29, 2001
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.