US11757439B2ActiveUtilityA1

Chained programmable delay elements

58
Assignee: EFINIX INCPriority: Feb 2, 2021Filed: Jan 25, 2022Granted: Sep 12, 2023
Est. expiryFeb 2, 2041(~14.6 yrs left)· nominal 20-yr term from priority
Inventors:Marcel Gort
H03K 5/1502H03K 19/1774H03K 5/133H03K 2005/00019H03K 19/17744
58
PatentIndex Score
0
Cited by
10
References
18
Claims

Abstract

Delay elements and multiplexers are in programmable delay elements. Each programmable delay element has a chain of delay elements to produce successive delays of a clock of the programmable delay element. Each programmable delay element has a first multiplexer to select among an input clock and delay element outputs in the chain of delay elements to produce a skewed clock output of the programmable delay element. In at least a subset of the programmable delay elements, each programmable delay element has a second multiplexer to select among clocks that include a first clock, and a second clock that is from one of the delay elements of another programmable delay element to produce the clock of the programmable delay element.

Claims

exact text as granted — not AI-modified
I claim: 
     
       1. An electronic circuitry apparatus comprising:
 a plurality of delay elements; 
 a plurality of multiplexers; 
 the plurality of delay elements and the plurality of multiplexers in a plurality of programmable delay elements (PDEs) with each PDE having a subset of the plurality of delay elements and a subset of the plurality of multiplexers, each PDE having a chain of delay elements to produce successive delays of a clock of the PDE and a first multiplexer to select among an input clock and delay element outputs in the chain of delay elements to produce a skewed clock output of the PDE; and 
 each PDE of at least a subset of the plurality of PDEs having a second multiplexer to select among a plurality of clocks comprising a first clock that is an input clock to the PDE of the at least a subset of the plurality of PDEs and a second clock that is from one of the delay elements of another one of the plurality of PDEs to produce the clock for the chain of delay elements of the PDE, wherein: 
 selecting through the second multiplexer, in a first PDE of the plurality of PDEs, comprises selecting among the first clock and a maximum delay at an end of the chain of delay elements of a lower one of the plurality of middle PDEs to produce the clock of the first PDE; 
 selecting through the first multiplexer, in the first PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the first PDE to produce the skewed clock output of the first PDE; 
 selecting through the second multiplexer, in each PDE of a plurality of middle PDEs, comprises selecting among the first clock, a maximum delay clock at an end of the chain of delay elements of a preceding PDE, and a maximum delay clock at an end of the chain of delay elements of a succeeding PDE to produce the clock of the PDE; 
 selecting through the first multiplexer, in each PDE of the plurality of middle PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the PDE to produce the skewed clock output of the PDE; 
 selecting through the second multiplexer, in a last PDE of the plurality of PDEs, comprises selecting among the first clock and a maximum delay at an end of the chain of delay elements of an upper one of the plurality of middle PDEs to produce the clock of the last PDE; and 
 selecting through the first multiplexer, in the last PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the last PDE to produce the skewed clock output of the last PDE, so that the plurality of PDEs comprises a bidirectional chain of delay elements. 
 
     
     
       2. The electronic circuitry apparatus of  claim 1 , wherein:
 each of the plurality of PDEs comprises three delay elements in the chain of delay elements, and a four input multiplexer as the first multiplexer to produce the skewed clock output of the PDE through selection among the first clock and output of each of the three delay elements; and 
 the plurality of PDEs is in an FPGA (field programmable gate array). 
 
     
     
       3. The electronic circuitry apparatus of  claim 1 , wherein:
 the plurality of PDEs comprises a first PDE having a first chain of delay elements to produce successive delays of the first clock, and the first multiplexer of the first PDE to produce the skewed clock output of the first PDE through selection among the first clock and output of each delay element of the first chain of delay elements; and 
 each successive PDE of the plurality of PDEs in succession after the first PDE having a chain of delay elements, the second multiplexer of the successive PDE to produce the clock of the successive PDE through selection among the first clock and a maximum delay clock at an end of the chain of delay elements of a preceding PDE, and the first multiplexer of the successive PDE to produce the skewed clock output of the successive PDE through selection among the first clock and output of each delay element of the chain of delay elements of the successive PDE, so that the plurality of PDEs comprises a unidirectional chain of delay elements. 
 
     
     
       4. The electronic circuitry apparatus of  claim 1 , wherein:
 the plurality of PDEs comprises a first PDE, a plurality of middle PDEs and a last PDE, the first PDE having a chain of delay elements, a second multiplexer of the first PDE to produce the clock of the first PDE through selection among the first clock and a maximum delay at an end of the chain of delay elements of a lower one of the plurality of middle PDEs, and a first multiplexer of the first PDE to produce the skewed clock output of the first PDE through selection among the first clock and output of each delay element of the chain of delay elements of the first PDE; 
 each PDE of the plurality of middle PDEs having a chain of delay elements, a second multiplexer of the middle PDE to produce the clock of the middle PDE through selection among the first clock, a maximum delay clock at an end of the chain of delay elements of a preceding PDE, and a maximum delay clock at an end of the chain of delay elements of a succeeding PDE, and a first multiplexer of the middle PDE to produce the skewed clock output of the middle PDE through selection among the first clock and output of each delay element of the chain of delay elements of the middle PDE; and 
 the last PDE having a chain of delay elements, a second multiplexer of the last PDE to produce the clock of the last PDE through selection among the first clock and a maximum delay at an end of the chain of delay elements of an upper one of the plurality of middle PDEs, and a first multiplexer to produce the skewed clock output of the last PDE through selection among the first clock and output of each delay element of the chain of delay elements of the last PDE, so that the plurality of PDEs comprises a bidirectional chain of delay elements. 
 
     
     
       5. The electronic circuitry apparatus of  claim 1 , wherein:
 each of the plurality of PDEs having a chain of delay elements, a second multiplexer of the PDE to produce the clock of the PDE through selection among the first clock and a maximum delay clock at an end of the chain of delay elements of a preceding PDE, and a first multiplexer of the PDE to produce the skewed clock output of the PDE through selection among the first clock and output of each delay element of the chain of delay elements of the PDE so that the plurality of PDEs comprises a unidirectional circular chain of delay elements. 
 
     
     
       6. The electronic circuitry apparatus of  claim 1 , wherein:
 each of the plurality of PDEs having a chain of delay elements, the second multiplexer of the PDE to produce the clock of the PDE through selection among the first clock, a maximum delay clock at an end of the chain of delay elements of a first other PDE and a maximum delay clock at an end of the chain of delay elements of a second other PDE, and the first multiplexer of the PDE to produce the skewed clock output of the PDE through selection among the first clock and output of each delay element of the chain of delay elements of the PDE so that the plurality of PDEs comprises a bidirectional circular chain of delay elements. 
 
     
     
       7. The electronic circuitry apparatus of  claim 1 , further comprising:
 selection logic to control the plurality of multiplexers to select a plurality of delays according to the delay elements and the skewed clock outputs of the PDEs for routing one or more individual clocks to individual clocked circuits, one or more group clocks to groups of clocked circuits, and one or more main clocks to a plurality of clocked circuits, so that the plurality of PDEs comprises a hierarchical chain of delay elements that provides skewed clocks to clocked circuits in a hierarchy. 
 
     
     
       8. A method of operating an integrated circuit having multiplexers and delay elements to provide skewed clocks, the method comprising:
 producing successive delays of a clock, through a chain of delay elements, in each of a plurality of programmable delay elements (PDEs) having a subset of the multiplexers and delay elements of the integrated circuit; 
 selecting, through a second multiplexer, in each PDE of at least a subset of the plurality of PDEs, among at least a first clock and a second clock that is from one of the delay elements of another one of the plurality of PDEs to produce the clock for the chain of delay elements of the PDE; and 
 
       selecting, through a first multiplexer, among an input clock and delay element outputs in the chain of delay elements to produce a skewed clock output of the PDE, in each of the plurality of PDEs, wherein:
 selecting through the second multiplexer, in a first PDE of the plurality of PDEs, comprises selecting among the first clock and a maximum delay at an end of the chain of delay elements of a lower one of the plurality of middle PDEs to produce the clock of the first PDE; 
 selecting through the first multiplexer, in the first PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the first PDE to produce the skewed clock output of the first PDE; 
 selecting through the second multiplexer, in each PDE of a plurality of middle PDEs, comprises selecting among the first clock, a maximum delay clock at an end of the chain of delay elements of a preceding PDE, and a maximum delay clock at an end of the chain of delay elements of a succeeding PDE to produce the clock of the PDE; 
 selecting through the first multiplexer, in each PDE of the plurality of middle PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the PDE to produce the skewed clock output of the PDE; 
 selecting through the second multiplexer, in a last PDE of the plurality of PDEs, comprises selecting among the first clock and a maximum delay at an end of the chain of delay elements of an upper one of the plurality of middle PDEs to produce the clock of the last PDE; and 
 selecting through the first multiplexer, in the last PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the last PDE to produce the skewed clock output of the last PDE, so that the plurality of PDEs comprises a bidirectional chain of delay elements. 
 
     
     
       9. The method of  claim 8 , wherein:
 producing the successive delays through the chain of delay elements comprises producing the successive delays through three delay elements; and 
 selecting through the first multiplexer comprises selecting, through a four-input multiplexer, among the first clock and output of each of the three delay elements to produce the skewed clock output of the PDE. 
 
     
     
       10. The method of  claim 8 , wherein:
 selecting through the first multiplexer, in a first PDE of the plurality of PDEs, comprises selecting among the first clock and output of each delay element of a first chain of delay elements to produce the skewed clock output of the first PDE; 
 producing the successive delays of the clock, in the first PDE, comprises producing the successive delays of the first clock through the first chain of delay elements; 
 selecting through the second multiplexer, in each successive PDE of the plurality of PDEs in succession after the first PDE, comprises selecting among the first clock and a maximum delay clock at an end of the chain of the delay elements of a preceding PDE to produce the clock of the successive PDE; and 
 selecting through the first multiplexer, in each successive PDE of the plurality of PDEs in succession after the first PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the successive PDE to produce the skewed clock output of the successive PDE, so that the plurality of PDEs comprises a unidirectional chain of delay elements. 
 
     
     
       11. The method of  claim 8 , wherein:
 selecting through the second multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock and a maximum delay clock at an end of the chain of delay elements of a preceding PDE to produce the clock of the PDE; and 
 selecting through the first multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the PDE to produce the skewed clock output of the PDE, so that the plurality of PDEs comprises a unidirectional circular chain of delay elements. 
 
     
     
       12. A method of operating an integrated circuit having multiplexers and delay elements to provide skewed clocks, the method comprising:
 producing successive delays of a clock, through a chain of delay elements, in each of a plurality of programmable delay elements (PDEs) having a subset of the multiplexers and delay elements of the integrated circuit; 
 selecting, through a second multiplexer, in each PDE of at least a subset of the plurality of PDEs, among at least a first clock and a second clock that is from one of the delay elements of another one of the plurality of PDEs to produce the clock for the chain of delay elements of the PDE; and 
 selecting, through a first multiplexer, among an input clock and delay element outputs in the chain of delay elements to produce a skewed clock output of the PDE, in each of the plurality of PDEs, wherein: 
 selecting through the second multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock, a maximum delay clock at an end of the chain of delay elements of a first other PDE and a maximum delay clock at an end of the chain of delay elements of a second other PDE to produce the clock of the PDE; and 
 selecting through the first multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements to produce the skewed clock output of the PDE, so that the plurality of PDEs comprises a bidirectional circular chain of delay elements. 
 
     
     
       13. The method of  claim 8 , further comprising:
 operating the PDEs through selection logic to select a plurality of delays according to the delay elements and the skewed clock outputs of the PDEs for routing one or more individual clocks to individual clocked circuits, one or more group clocks to groups of clocked circuits, and one or more main clocks to a plurality of clocked circuits, so that the plurality of PDEs comprises a hierarchical chain of delay elements that provides skewed clocks to clocked circuits in a hierarchy. 
 
     
     
       14. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:
 programming a field programmable gate array (FPGA), to: 
 produce successive delays of a clock, through a chain of delay elements, in each of a plurality of programmable delay elements (PDEs) having a subset of multiplexers and delay elements of the FPGA; 
 select, through a second multiplexer, in each PDE of at least a subset of the plurality of PDEs, among at least a first clock and a second clock that is from one of the delay elements of another one of the plurality of PDEs to produce the clock for the chain of delay elements of the PDE; and 
 select, through a first multiplexer, among an input clock and delay element outputs in the chain of delay elements to produce a skewed clock output of the PDE, in each of the plurality of PDEs, wherein: 
 selecting through the second multiplexer, in a first PDE of the plurality of PDEs, comprises selecting among the first clock and a maximum delay at an end of the chain of delay elements of a lower one of the plurality of middle PDEs to produce the clock of the first PDE; 
 selecting through the first multiplexer, in the first PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the first PDE to produce the skewed clock output of the first PDE; 
 selecting through the second multiplexer, in each PDE of a plurality of middle PDEs, comprises selecting among the first clock, a maximum delay clock at an end of the chain of delay elements of a preceding PDE, and a maximum delay clock at an end of the chain of delay elements of a succeeding PDE to produce the clock of the PDE; 
 selecting through the first multiplexer, in each PDE of the plurality of middle PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the PDE to produce the skewed clock output of the PDE; 
 selecting through the second multiplexer, in a last PDE of the plurality of PDEs, comprises selecting among the first clock and a maximum delay at an end of the chain of delay elements of an upper one of the plurality of middle PDEs to produce the clock of the last PDE; and 
 selecting through the first multiplexer, in the last PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the last PDE to produce the skewed clock output of the last PDE, so that the plurality of PDEs comprises a bidirectional chain of delay elements. 
 
     
     
       15. The computer-readable media of  claim 14 , wherein programming the FPGA comprises:
 selecting through the first multiplexer, in a first PDE of the plurality of PDEs, comprises selecting among the first clock and output of each delay element of a first chain of delay elements to produce the skewed clock output of the first PDE; 
 producing the successive delays of the clock, in the first PDE, comprises producing the successive delays of the first clock through the first chain of delay elements; 
 selecting through the second multiplexer, in each successive PDE of the plurality of PDEs in succession after the first PDE, comprises selecting among the first clock and a maximum delay clock at an end of the chain of the delay elements of a preceding PDE to produce the clock of the successive PDE; and 
 selecting through the first multiplexer, in each successive PDE of the plurality of PDEs in succession after the first PDE, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the successive PDE to produce the skewed clock output of the successive PDE, so that the plurality of PDEs comprises a unidirectional chain of delay elements. 
 
     
     
       16. The computer-readable media of  claim 14 , wherein programming the FPGA comprises:
 selecting through the second multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock and a maximum delay clock at an end of the chain of delay elements of a preceding PDE to produce the clock of the PDE; and 
 the selecting through the first multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements in the PDE to produce the skewed clock output of the PDE, so that the plurality of PDEs comprises a unidirectional circular chain of delay elements. 
 
     
     
       17. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:
 programming a field programmable gate array (FPGA), to: 
 produce successive delays of a clock, through a chain of delay elements, in each of a plurality of programmable delay elements (PDEs) having a subset of multiplexers and delay elements of the FPGA; 
 select, through a second multiplexer, in each PDE of at least a subset of the plurality of PDEs, among at least a first clock and a second clock that is from one of the delay elements of another one of the plurality of PDEs to produce the clock for the chain of delay elements of the PDE; and 
 
       select, through a first multiplexer, among an input clock and delay element outputs in the chain of delay elements to produce a skewed clock output of the PDE, in each of the plurality of PDEs, wherein programming the FPGA comprises:
 selecting through the second multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock, a maximum delay clock at an end of the chain of delay elements of a first other PDE and a maximum delay clock at an end of the chain of delay elements of a second other PDE to produce the clock of the PDE; and 
 selecting through the first multiplexer, in each of the plurality of PDEs, comprises selecting among the first clock and output of each delay element of the chain of delay elements to produce the skewed clock output of the PDE, so that the plurality of PDEs comprises a bidirectional circular chain of delay elements. 
 
     
     
       18. The computer-readable media of  claim 14 , wherein the instructions further cause the processor to further program the FPGA to:
 control the PDEs through selection logic to select a plurality of delays according to the delay elements and the skewed clock outputs of the PDEs for routing one or more individual clocks to individual clocked circuits, one or more PDE clocks to PDEs of clocked circuits, and one or more main clocks to a plurality of clocked circuits, so that the plurality of PDEs comprises a hierarchical chain of delay elements that provides skewed clocks to clocked circuits in a hierarchy.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.