The present invention relates to the fields of integrated circuit (IC), and more specifically, the present invention relates to programmable delay line circuits with glitch avoidance, and their usage in reconfigurable circuits.
A programmable delay line (hereafter called a delay line) is a circuit where an input signal may be passed to the output of the delay line after a programmably determined delay. Delay line circuits are typically used to adjust the relative delay difference between two signals to achieve reliable data transfer. However, there may be several disadvantages of the known delay line circuits. One of the potential disadvantages is that most of the known delay line circuits suffer from glitches. Another potential disadvantage is that the known delay line circuits may have a low adjustability regarding the number of delays and the step of each delay in accordance with various applications.
Embodiments of the present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:
Illustrative embodiments of the present invention include, but are not limited to delay line circuits constructed with multiplexers.
Various aspects of the illustrative embodiments will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternate embodiments may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that alternate embodiments may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrative embodiments.
Further, various operations will be described as multiple discrete operations, in turn, in a manner that is most helpful in understanding the illustrative embodiments; however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation.
The phrase “in one embodiment” is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may. The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise.
Gray Code is a binary numeral system where two successive values differ in only one bit. Table 1 provides an example of decimal numbers 0 to 15 and their corresponding binary Gray Code values. In various embodiments, a delay value of a delay line circuit may represent the discrete number of delays to be added into an input signal. In various embodiments, the delay value may be encoded in Gray Code.
For the embodiments, the delay line circuit 100 may further comprise five control gates 111 to 151 and the five control gates may be configured to receive the delay value encoded in Gray Code. In accordance with various embodiments, the control gates may be five different AND gates that are configured to output logic 0 or 1 respectively based on the delay value. In various embodiments, the output of control gate 111 may be coupled to the control terminals of multiplexers 120 and 190; the output of control gate 121 may be coupled to the control terminals of multiplexers 130 and 180; the output of control gate 131 may be coupled to the control terminals of multiplexers 140 and 170; the output of control gate 141 may be coupled to the control terminal of multiplexer 160; the output of control gate 151 may be coupled to the control terminal of multiplexer 150. In various embodiments, when the delay value represents decimal number 0, only control gates 111 and 121 may be configured to output logic 1; when the delay value represents decimal number 1, only control gates 121 and 131 may be configured to output logic 1; when the delay value represents decimal number 2, only control gates 131 and 141 may be configured to output logic 1; when the delay value represents decimal number 3, only control gates 141 and 151 may be configured to output logic 1; when the delay value represents decimal number 4, only control gate 151 may be configured to output logic 1. In various embodiments, the control terminal of multiplexer 110 may be coupled with an external signal which may be logic 0.
In various embodiments, when the delay value represents decimal number 1, the control terminal of multiplexers 130, 140, 170 and 180 may be coupled to logic “1” and the control terminals of the other multiplexers may be coupled to logic “0”. In various embodiments, the input signal may be passed through multiplexers 110 and 120 to the input terminal “0” of multiplexer 130, but may not be further passed through multiplexer 130 because the control terminal of multiplexer 130 is coupled to logic “1”. Instead, the input signal may be turned around and coupled to the input terminal “1” of multiplexer 170. As stated above, when the delay value represents decimal number 1, the control terminal of multiplexer 170 may be coupled to logic “1”. So, the input signal may be passed through multiplexer 170 to the input terminal “0” of multiplexer 180. However, as stated above, when the delay value represents decimal number 1, the control terminal of multiplexer 180 may be coupled to “1”, thus the value at the input terminal “0” of multiplexer 180 cannot be passed through. Rather, in various embodiments, the output from multiplexer 110 may be coupled to the input terminal “1” of multiplexer 180. So, the input signal may be passed through multiplexers 110 and 180 to the input terminal “0” of multiplexer 190. And because when the delay value represents decimal number 1, the control terminal of multiplexer 190 may be coupled to be logic “0”, the input signal may be passed through the multiplexer 190 as the output of the delay line circuit 100. In various embodiments, the input signal may be passed to the output of the delay line circuit 100 through multiplexers 110, 180 and 190 when the delay value represents decimal number 1.
In various embodiments, as illustrated in
As illustrated in
In various embodiments, the delay line circuit may also comprise N+1 control gates. In various embodiments, control gate A may be configured to control multiplexers B and C, and A is an integer ranges from 1 to N−1, B is an integer that may be described as B=A+1, and C is an integer that may be described as C=2N+2−A. In various embodiments, control gate N may be configured to control multiplexer N+2, and control gate N+1 may be configured to control multiplexer N+1. In various embodiments, the control terminal of the first multiplexer may be coupled to a constant value such as logic 0. In various embodiments, control gate D may be configured to output logic 1 only when the delay value equals to D−2 or D−1, wherein D is an integer ranges from 2 to N+1. In various embodiments, the first control gate may output logic 1 only when the delay value is logic 0. Also, in various embodiments, the control gates may be AND gates and due to the characteristic of Gray Code that two successive values differ in only one bit, AND gates with M−1 inputs may suffice to be used in the delay line circuit 300 if the delay value is an M-bit Gray Code value, where M is an integer.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described, without departing from the scope of the embodiments of the present invention. This application is intended to cover any adaptations or variations of the embodiments discussed herein. Therefore, it is manifestly intended that the embodiments of the present invention be limited only by the claims and the equivalents thereof.