This invention relates to a circuit that takes two analog inputs and produces two pulse outputs that encode a “Hadamard” operation. One pulse output encodes the average of the two analog inputs. The other pulse output encodes one half of the difference of the two analog inputs.
In the prior art, arithmetic operations on analog input signals are typically performed either in the (1) original analog domain or in the (2) digital domain after an ADC conversion. In the analog domain the disadvantage is that accuracy is limited by dynamic range of the analog adding components such as analog adders. In the digital domain the disadvantage is that speed is limited by the performance of ADC conversion. Previous work on arithmetic operations on pulse type signals have been limited to methods based on stochastic logic. See J. Keane and L. Atlas, “Impulses and Stochastic Arithmetic for Signal Processing,” 2001. Methods based on stochastic logic are also limited in accuracy and in convergence speeds.
The circuit of the invention avoids the accuracy limitation of the analog computing, the speed limitation of the ADC conversion, and the speed and accuracy limitations of pulse stochastic logic. Assuming ideal elements the new circuit converges to the exact solution. The circuit is very compact and fast. The key circuit components are simple, intrinsically-linear, 1-bit digital to analog converters.
Preferred embodiments of the invention utilize Individual Time Encoder Circuits, which are known, per se, in the prior art and have been used before to time-encode a single analog signal input into a signal pulse output with no attempt to perform another function such as arithmetic operations. See A. Lazar and L Toth, “Perfect Recovery and Sensitivity Analysis of Time Encoded Bandlimited Signals,” IEEE Trans. on Circuits and Systems—I, vol. 51, no. 10, pp. 2060-2073, October 2004.
In one aspect, the hadamard gate of the invention includes two strongly cross-coupled limit cycle oscillators. Each limit cycle oscillator includes an amplifier, a summing node, an integrator, a hysteresis quantizer, a self-feedback 1-bit DAC (Digital-to-Analog Converter) and a cross-feedback 1 bit DAC. Each oscillator output drives its own self-feedback DAC and the cross-feedback DAC of the other oscillator.
The hadamard gate of the invention takes two inputs and performs arithmetic operations on the inputs with the solutions being time-encoded. The arithmetic operations and time encoding is performed simultaneously. The only signals coupling one oscillator with the other oscillator are pulse signals with only two amplitude, values, the information being encoded in the timing of the signals. Assuming ideal elements the circuit pulse outputs converges to the exact desired solution with no quantization error.
The disclosed hadamard gate allows performing fast and accurate arithmetic operations in the pulse domain. It can be applied for real-time processing of input analog signals, such as signals from RF or hyperspectral sensors.
Several embodiments of circuits utilizing Hadamard gates are disclosed. These circuits include a Pulse Domain Square Gate and a Pulse Domain Multiplication Gate.
a is a simplified diagram of a symbol of the pulse Hadamard gate of the present invention.
b shows the internal components of the pulse Hadamard gate of
c shows the circuit details of a preferred embodiment of each Unit Element/limit cycle oscillator depicted in
a and 4b depict the circuit diagram of a Hadamard gate (see
a is a simplified diagram of a symbol of the Pulse Domain Square Gate embodiment of the present invention.
b shows the internal components of the Pulse Domain Square Gate of
a and 7b depict the circuit diagram of a Pulse Domain Square Gate (see
a is a simplified diagram of a symbol of the Pulse Domain Product Gate embodiment of the present invention.
b shows the internal components of the Pulse Domain Product Gate of
a is a simplified diagram of a symbol of the pulse Hadamard gate 10 of the present invention. The circuit takes two analog inputs a and b and produces two pulse outputs. The first pulse output encodes (a+b)/2. The second pulse output encodes (a−b)/2. This is the first circuit to be described in this disclosure.
b shows preferred internal components of the pulse Hadamard gate. It preferably comprises two circuits denoted as Unit Elements UE11 and UE12. Each unit element is preferably embodied as a limit cycle oscillator 15 as shown in
c shows the circuit details of a preferred embodiment of each Unit Element or limit cycle oscillator 15. The preferred embodiment includes a transconductance amplifier, g1, a summing node Σ, an integrator 17, hysteresis quantizer 19, and two 1 bit Digital-to-Analog converters (DACs) g2 and g3. The 1 bit DACs are asynchronous. They take a logical input voltage with two possible levels and produce a scaled output current with two possible levels. These 1 bit DAC elements are simple, compact and accurate when implemented in VLSI. As they operate with only two input levels and two output levels, they are inherently linear. Since the DACs are asynchronous they need no clock signal. The disclosed Hadamard Gate self-oscillates. The frequency of self-oscillation depends mainly on internal circuit parameters and weakly on the input signals.
In
These parameters result in a self-oscillating frequency of approximately 0.25 Hz.
The first parameter value (g1) denotes the linear gain of the input transconductance amplifiers. The next two parameter values (g2, g3) represent the gain of the two 1 bit DACs. The next two values are the positive and negative voltage levels VTH+ and VTH− at the output of the hysteresis quantizer 19. The parameters for both Unit Elements UE11 and UE12 15 are identical, except for the gain of DAC used to scale the pulse-cross feedback signal between the two oscillators. This DAC gain has an opposite sign in the case of each Unit Element UE11 and UE12.
b shows waveforms corresponding to an exemplary embodiment demonstrating of operation of the Hadamard circuit 10 described above. In this exemplary embodiment the inputs are two constant analog voltages which are set to a=+0.5V and b=+0.8V for the purposes of this example, which inputs are shown adjacent the hadamard gate 10 (see
The top two graphs of
The bottom graph of
The very top graph of
y1=Δφ1+/180−1 (Equation 1)
In ideal operation the expected encoded value, y1, of the first output should be equal to first Hadamard computation, namely (a+b)/2, or 0.65 for this example. The third graph of
The second graph of
y2=Δφ2+/180−1 (Equation 2)
In ideal operation the expected encoded value, y2, of the second output should be equal to second Hadamard computation, namely (a−b)/2, or −0.15 for this particular example. The fourth graph of
A summary of operation of the circuit afore-described follows. The encoded data at the circuit outputs always converge to the ideal target solution.
For each output pulse period:
Circuit has 1 stable phase attractor. Attractor depends on inputs a and b, according to:
Δφ1
Δφ2
Outputs always (for any input & initial condition) are attracted to the unique stable phase attractor
Δφ1+→Δφ1
Δφ2+→Δφ2
The convergence to the ideal target solution is exponentially fast.
e1=y1−y1—ideal (Equation 3a)
e2=y2−y2—ideal (Equation 3b)
where y1 and y2 correspond to the reconstructed data from the two actual pulse waveforms, and y1_ideal and y2_ideal correspond to the ideal solution. It can be observed that the errors decay exponentially over time, which corresponds to a straight line in the plot of
A Pulse Domain Square Gate
The Hadamard Gate 10 described above can be used in a number of interesting ways beyond the example described above. It is used in the implementation of the second circuit of this disclosure, namely, a pulse domain square gate 20.
a shows a symbol of a Pulse Domain Square Gate 20. The Pulse Domain Square Gate 20 takes one analog input x and produces one pulse domain output z. The pulse domain output z encodes as one-half of the square of the input x, so z=x2/2.
b depicts graphs showing a computer simulation of the pulse domain square circuit 20 with an exemplary input value. In this example the input is a constant analog voltage.
a shows the pulse domain square gate setup with its analog input voltage being set to x=+0.4V for the purpose of this example.
The three graphs in upper portion of
During each cycle the signals za and zb have one positive pulse, while z has two positive pulses. The signal za time encodes a value proportional to the input signal x. For each cycle, the proportion of time that the signal za(t) is at the positive amplitude levels directly depends on the value of analog input x. The signal zb is a 50% duty cycle signal. The phase difference between these two self-synchronized pulse signals, za and zb, is dependent on x. For each cycle we define the following quantities:
Δt1++=Time interval during which za(t)=+1 and zb(t)=+1 (Definition 1a)
Δt1+−=Time interval during which za(t)=+1 and zb(t)=−1 (Definition 1b)
Δt1−−=Time interval during which za(t)=−1 and zb(t)=−1 (Definition 1c)
Δt1−+=Time interval during which za(t)=−1 and zb(t)=+1 (Definition 1d)
The signal z(t) encodes a value y which ideally corresponds to the square operation x2/2. The reconstruction equation to retrieve this encoded data using the quantities of Definition 1 is:
For this example, using x=0.4, the expected encoded value should be (0.4)2/2, which corresponds to 0.08. The last graph of
The convergence to the ideal target solution is exponentially fast.
These errors are defined according to the following equation:
error=y−yideal (Equation 4)
where y corresponds to the reconstructed data from the actual pulse waveform, and yideal corresponds to the ideal solution. It can be observed that the errors decay exponentially over time, which corresponds to a straight line in the plot of
The square gate 20 is suited for operation with fast changing analog inputs. When the analog inputs applied to the Hadamard gate 10 have a sharp transition, like a very large voltage step (a worst case scenario) the outputs converge to the ideal solution with about 80 dB accuracy in just two cycles, with a 56 dB improvement in each subsequent cycle. For other types of inputs without sharp transitions, like bandlimited inputs, very high accuracy, of about 80 dB is achieved in every cycle. Typically there is no need to do averaging over several cycles. In the examples shown before, using normalized unitary values for all circuit components, the cycle time has a normalized value of about 4 s. These normalized values are scaled according to the technology. As an example, using a fast current IC technology in InP, the cycle time is lower than 100 ps. In this technology the square gate 20 can do accurate arithmetic operations and time encoding of analog signals with bandwidths of close to 10 GHz.
A Pulse Domain Product Gate
a and 9b show a diagram of the third circuit of this disclosure. It is called a Pulse Domain Product Gate 25. It can be used as a mixer, if desired.
a shows the symbol of the Pulse Domain Product Gate 25.
The output time encoder 26 element is somewhat similar to a simple encoder of
Time Encoder with Dual Inputs
The preferred embodiment includes a summing node Σ, an integrator 17, a hysteresis quantizer 19, and three 1 bit Digital-to-Analog converters (DACs) g1, g2 and g3. The 1 bit DACs are asynchronous. They take a logical input voltage with two possible levels and produce a scaled output current with two possible levels. These 1 bit DAC elements are simple, compact and accurate when implemented in VLSI. As they operate with only input two levels and two output levels they are inherently linear. Since the DACs are asynchronous they need no clock signal.
Having described the invention in connection with a preferred implementation thereof as well as particular applications thereof to a pulse domain square gate and a pulse domain product (or multiplication) gate, modification will now suggest itself to those skilled in the art. As such the invention is not to be limited to the precise embodiments disclosed except as specifically required by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4383248 | Smith | May 1983 | A |
4939515 | Adelson | Jul 1990 | A |
5185715 | Zikan | Feb 1993 | A |
5345398 | Lippmann et al. | Sep 1994 | A |
5479170 | Cauwenberghs et al. | Dec 1995 | A |
5566099 | Shimada | Oct 1996 | A |
5894280 | Ginetti et al. | Apr 1999 | A |
6172536 | Yoshihara | Jan 2001 | B1 |
6452524 | Fraleigh et al. | Sep 2002 | B1 |
6473019 | Ruha et al. | Oct 2002 | B1 |
6975682 | Cosand | Dec 2005 | B2 |
7038608 | Gilbert | May 2006 | B1 |
7253761 | Hoyos | Aug 2007 | B1 |
7324035 | Harris | Jan 2008 | B2 |
7403144 | Cruz-Albrecht et al. | Jul 2008 | B1 |
7405686 | Laroia et al. | Jul 2008 | B2 |
7573956 | Lazar | Aug 2009 | B2 |
20060087467 | Itskovich | Apr 2006 | A1 |
20070069928 | Gehring | Mar 2007 | A1 |