# Patent

## Title
Double data rate (DDR) counter, analog-to-digital converter (ADC) using the same, CMOS image sensor using the same and methods in DDR counter, ADC and CMOS image sensor

## Abstract

In a double data rate (DDR) counter and counting method used in, for example, an analog-to-digital conversion in, for example, a CMOS image sensor and method, a first stage of the counter generates a least significant bit (LSB) of the value in the counter. The first stage includes a first clock input and is edge-triggered on one of the rising and falling edges of a signal applied at the first clock input. The counter includes at least one second stage for generating another bit of the value in the counter. The second stage includes a second clock input and is edge-triggered on the other of the rising and falling edges of a signal applied at the second clock input.

## Background
RELATED APPLICATION
This application relies for priority under 35 U.S.C. 119(a) on Korean Patent Application number 10-2009-0011692, filed in the Korean Intellectual Property Office on Feb. 13, 2009, the entire contents of which are incorporated herein by reference.
BACKGROUND
1. Field of the Invention
This application relates to image sensors and analog-to-digital converters (ADCs) and counters for image sensors and, more particularly, to a counter and an ADC and methods in a CMOS image sensor.
2. Description of the Related Art
Complementary metal-oxide-semiconductor (CMOS) image sensors (CISs), which are widely used in digital cameras, capture optical signals and convert the optical signals into electrical signals. The CMOS image sensor has an active pixel sensor (APS) array that includes multiple pixels arranged in rows and columns. Each pixel typically includes a photodiode and a processing or read-out circuit. The photodiode generates electrical charge using absorbed light, converts the generated electrical charge into an analog voltage or current, and delivers the analog voltage or current to the read-out circuit. The read-out circuit converts the analog signal into a digital signal and outputs the digital signal.
An analog-to-digital converter (ADC) processes received pixel data, for example, data associated with all columns in a selected row of the APS array. In the analog-to-digital conversion process, a comparator receives an analog voltage and compares the analog voltage with a ramp voltage and uses a counter to count until the ramp voltage is greater than the analog voltage. Conventionally, when the ramp voltage exceeds the analog voltage, the count value in the counter is digital data corresponding to the analog voltage. That is, the count value is the digital data into which the analog voltage has been converted.
Such an ADC can include a correlated double sampling (CDS) circuit. CDS is a technique for measuring electrical values such as voltages or currents that allows for removal of an undesired offset, and is used frequently when measuring sensor outputs such as those in a CMOS image sensor. In CDS, the output of the sensor is measured twice—once in a known or reference condition and once in an unknown condition. The value measured from the known condition is then subtracted from the unknown condition to generate a value with a known relation to the physical quantity being measured. In dual CDS operation in a CMOS image sensor, an output node is reset to a predetermined reference value, a pixel charge (signal value) is transferred to the output node, and the final value of charge assigned to the pixel is the difference between the reset and signal values. The CDS circuit may also amplify the received reset and signal values.
High-speed counters, such as ripple counters, used in CDS consume a large amount of power. One particular cause of the power consumption in such counters is the frequent toggling of the least significant bit (LSB) in the counter. It is desirable to reduce the power consumption of the counter to reduce the overall power consumption in the ADC and in the CMOS image sensor.
SUMMARY
According to a first aspect, the inventive concept is directed to a double data rate (DDR) counter. The counter includes a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input. The counter also includes at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied at the second clock input.
In some embodiments, the counter further comprises a plurality of second stages for generating a plurality of other bits of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied to the respective clock input.
In some embodiments, the counter further comprises a circuit for determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter. In some embodiments, the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.
In some embodiments, the counter is a ripple counter.
In some embodiments, the first stage is positive edge triggered and the second stage is negative edge triggered.
In some embodiments, the counter further comprises a logic circuit for performing a logical operation on an output of the first stage and the output of the second stage to generate the LSB of the plurality of bits. In some embodiments, the logical operation is an XOR operation.
In some embodiments, the counter further comprises a count stop circuit for stopping counting of the counter. In some embodiments, the count stop circuit comprises a multiplexer for selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits. In some embodiments, the selection by the multiplexer is made in response to an input signal. In some embodiments, the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.
In some embodiments, the counter is one of a bit-wise inversion counter and an up/down counter. In some embodiments, the counter comprises a storage circuit for storing a status of the LSB of the plurality of bits.
In some embodiments, the counter further comprises a glitch filter for removing a glitch.
According to another aspect, the inventive concept is directed to an analog-to-digital converter (ADC) using correlated double sampling. The ADC includes an input for receiving an input signal and a double data rata (DDR) counter. The DDR counter includes a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input. The DDR counter also includes at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied at the second clock input. A value in the DDR counter is related to an analog-to-digital conversion of the input signal.
In some embodiments, the counter further comprises a plurality of second stages for generating a plurality of other bits of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied to the respective clock input.
In some embodiments, the counter further comprises a circuit for determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter. In some embodiments, the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.
In some embodiments, the counter is a ripple counter.
In some embodiments, the first stage is positive edge triggered and the second stage is negative edge triggered.
In some embodiments, the counter further comprises a logic circuit for performing a logical operation on an output of the first stage and the output of the second stage to generate the LSB of the plurality of bits. In some embodiments, the logical operation is an XOR operation.
In some embodiments, the counter further comprises a count stop circuit for stopping counting of the counter. In some embodiments, the count stop circuit comprises a multiplexer for selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits. In some embodiments, the selection by the multiplexer is made in response to an input signal. In some embodiments, the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.
In some embodiments, the counter is one of a bit-wise inversion counter and an up/down counter. In some embodiments, the counter comprises a storage circuit for storing a status of the LSB of the plurality of bits.
In some embodiments, the counter further comprises a glitch filter for removing a glitch.
According to another aspect, the inventive concept is directed to a CMOS image sensor including a pixel array and an analog-to-digital converter (ADC). The ADC includes a double data rate (DDR) counter, which includes a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input. The DDR counter also includes at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied at the second clock input.
In some embodiments, the counter further comprises a plurality of second stages for generating a plurality of other bits of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied to the respective clock input.
In some embodiments, the counter further comprises a circuit for determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter. In some embodiments, the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.
In some embodiments, the counter is a ripple counter.
In some embodiments, the first stage is positive edge triggered and the second stage is negative edge triggered.
In some embodiments, the counter further comprises a logic circuit for performing a logical operation on an output of the first stage and the output of the second stage to generate the LSB of the plurality of bits. In some embodiments, the logical operation is an XOR operation.
In some embodiments, the counter further comprises a count stop circuit for stopping counting of the counter. In some embodiments, the count stop circuit comprises a multiplexer for selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits. In some embodiments, the selection by the multiplexer is made in response to an input signal. In some embodiments, the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.
In some embodiments, the counter is one of a bit-wise inversion counter and an up/down counter. In some embodiments, the counter comprises a storage circuit for storing a status of the LSB of the plurality of bits.
In some embodiments, the counter further comprises a glitch filter for removing a glitch.
According to another aspect, the inventive concept is directed to a method of counting in a double data rate (DDR) counter. The method includes generating a least significant bit (LSB) of a plurality of bits of the counter in a first stage of the counter, the first stage having a first clock input. The method also includes generating another bit of the plurality of bits of the counter in at least one second stage of the counter, the at least one second stage having a second clock input. The method also includes edge-triggering the first stage of the counter on one of a rising edge and a falling edge of a signal applied at the first clock input. The method also includes edge-triggering the second stage of the counter on the other of the rising edge and the falling edge of a signal applied at the second clock input.
In some embodiments, the method further comprises generating a plurality of other bits of the counter in a plurality of second stages of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied to the respective clock input.
In some embodiments, the method further comprises determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter. In some embodiments, the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.
In some embodiments, the counter is a ripple counter.
In some embodiments, the first stage is positive edge triggered and the second stage is negative edge triggered.
In some embodiments, the method further comprises performing a logical operation on an output of the first stage and the output of the second stage to generate the LSB of the plurality of bits. In some embodiments, the logical operation is an XOR operation.
In some embodiments, the method further comprises stopping counting of the counter with a count stop circuit. In some embodiments, the method further comprises, using a multiplexer of the count stop circuit, selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits. In some embodiments, the selection by the multiplexer is made in response to an input signal. In some embodiments, the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.
In some embodiments, the counter is one of a bit-wise inversion counter and an up/down counter. In some embodiments, the method further comprises storing a status of the LSB of the plurality of bits using a storage circuit of the counter.
In some embodiments, the method further comprises filtering a glitch using a glitch filter circuit.
According to another aspect, the inventive concept is directed to a method of analog-to-digital conversion using correlated double sampling (CDS) using a double data rate (DDR) counter. The method includes receiving an input signal. The method also includes generating a least significant bit (LSB) of a plurality of bits of the counter in a first stage of the counter, the first stage having a first clock input. The method also includes generating another bit of the plurality of bits of the counter in at least one second stage of the counter, the at least one second stage having a second clock input. The method also includes edge-triggering the first stage of the counter on one of a rising edge and a falling edge of a signal applied at the first clock input. The method also includes edge-triggering the second stage of the counter on the other of the rising edge and the falling edge of a signal applied at the second clock input. A value in the counter is related to an analog-to-digital conversion of the input signal.
In some embodiments, the method further comprises generating a plurality of other bits of the counter in a plurality of second stages of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied to the respective clock input.
In some embodiments, the method further comprises determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter. In some embodiments, the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.
In some embodiments, the counter is a ripple counter.
In some embodiments, the first stage is positive edge triggered and the second stage is negative edge triggered.
In some embodiments, the method further comprises performing a logical operation on an output of the first stage and the output of the second stage to generate the LSB of the plurality of bits. In some embodiments, the logical operation is an XOR operation.
In some embodiments, the method further comprises stopping counting of the counter with a count stop circuit. In some embodiments, the method further comprises, using a multiplexer of the count stop circuit, selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits. In some embodiments, the selection by the multiplexer is made in response to an input signal. In some embodiments, the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.
In some embodiments, the counter is one of a bit-wise inversion counter and an up/down counter. In some embodiments, the method further comprises storing a status of the LSB of the plurality of bits using a storage circuit of the counter.
In some embodiments, the method further comprises filtering a glitch using a glitch filter circuit.
According to another aspect, the inventive concept is directed to a method of processing an image in a CMOS image sensor. The method includes providing a pixel array, and counting in a double data rate (DDR) counter for an analog-to-digital converter (ADC) for a double data rate (DDR) dual correlated double sampler (CDS). The counting includes generating a least significant bit (LSB) of a plurality of bits of the counter in a first stage of the counter, the first stage having a first clock input. The counting also includes generating another bit of the plurality of bits of the counter in at least one second stage of the counter, the at least one second stage having a second clock input. The counting also includes edge-triggering the first stage of the counter on one of a rising edge and a falling edge of a signal applied at the first clock input. The counting also includes edge-triggering the second stage of the counter on the other of the rising edge and the falling edge of a signal applied at the second clock input.
In some embodiments, the method further comprises generating a plurality of other bits of the counter in a plurality of second stages of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of the rising edge and the falling edge of a signal applied to the respective clock input.
In some embodiments, the method further comprises determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter. In some embodiments, the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.
In some embodiments, the counter is a ripple counter.
In some embodiments, the first stage is positive edge triggered and the second stage is negative edge triggered.
In some embodiments, the method further comprises performing a logical operation on an output of the first stage and the output of the second stage to generate the LSB of the plurality of bits. In some embodiments, the logical operation is an XOR operation.
In some embodiments, the method further comprises stopping counting of the counter with a count stop circuit. In some embodiments, the method further comprises, using a multiplexer of the count stop circuit, selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits. In some embodiments, the selection by the multiplexer is made in response to an input signal. In some embodiments, the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.
In some embodiments, the counter is one of a bit-wise inversion counter and an up/down counter. In some embodiments, the method further comprises storing a status of the LSB of the plurality of bits using a storage circuit of the counter.
In some embodiments, the method further comprises filtering a glitch using a glitch filter circuit.



BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other features and advantages of the inventive concept will be apparent from the more particular description of preferred aspects of the inventive concept, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the inventive concept.
FIG. 1 includes a schematic block diagram of a general CMOS image sensor (CIS).
FIG. 2 is a schematic top-level block diagram of conventional sampling of an input signal for analog-to-digital conversion.
FIG. 3 is a schematic top-level block diagram of the process of correlated double sampling (CDS).
FIG. 4 is a schematic block diagram of CDS applied to a CMOS image sensor.
FIG. 5A is a schematic block diagram illustrating an embodiment of analog-to-digital conversion using CDS in a CMOS image sensor, according to the inventive concept. FIG. 5B is a schematic functional block diagram of the sampling performed in the CDS process. FIG. 5C is a timing diagram illustrating the timing of the CDS process.
FIGS. 6A-6D illustrate an up/down counter used in conventional approaches to CDS. Specifically, FIG. 6A is a schematic block diagram of an up/down counter. FIG. 6B is a block diagram illustrating operation of a one-bit up/down counter to illustrate the operation of the up/down counter of FIG. 6A. FIG. 6C is a timing diagram illustrating the operation of the up/down count and hold control of the one-bit counter of FIG. 6B. FIG. 6D is a diagram illustrating operation of CDS using the up/down counter of FIG. 6A.
FIGS. 7A-7F illustrate a bitwise inversion (BWI) counter used in conventional approaches to dual CDS. Specifically, FIG. 7A is a schematic block diagram of a BWI counter. FIG. 7B is a block diagram illustrating operation of a one-bit inversion counter to illustrate the operation of the BWI counter of FIG. 7A. FIG. 7C is a timing diagram illustrating the operation of the BWI control of the one-bit BWI counter of FIG. 7B. FIGS. 7D and 7E are timing diagrams illustrating operation of the BWI counter. FIG. 7F is a timing diagram illustrating operation of dual CDS using the BWI counter of FIG. 7A.
FIGS. 8A-8C illustrate a ripple counter used in conventional approaches to dual CDS. Specifically, FIG. 8A contains a schematic block diagram of a ripple counter. FIG. 8B is a timing diagram illustrating the toggling of data bits of the counter of FIG. 8A during counting. FIG. 8C is a table illustrating the relative frequency of bit toggling and relative power consumption for the bits in the ripple counter of FIG. 8A during counting.
FIGS. 9A-9C illustrate the existence of a glitch in the conventional column ADC ripple counter illustrated in FIG. 8A. Specifically, FIG. 9A is a schematic block diagram of a ripple counter with an additional glitch filter circuit used to eliminate the glitch. FIG. 9B is a timing diagram illustrating the glitch using the conventional ripple counter of FIG. 8A. FIG. 9C is a timing diagram illustrating the elimination of the glitch using the glitch filter with the ripple counter.
FIG. 10 contains a schematic block diagram of a DDR counter which reduces the amount of toggling in the LSB to reduce overall power consumption, in accordance with one embodiment of the present inventive concept.
FIG. 11A is a timing diagram of the operation of the counter illustrated in FIG. 10, and FIG. 11B is a truth table of the XOR logical operation performed on data bit values D0′ and D[1].
FIG. 12 is a schematic block diagram of another embodiment of a DDR counter according to the inventive concept.
FIG. 13 is a schematic block diagram of another embodiment of a DDR down counter according to the inventive concept.
FIG. 14 is a schematic block diagram of another embodiment of a DDR down counter according to the inventive concept.
FIG. 15A is a schematic block diagram of another embodiment of a DDR counter according to the inventive concept. FIG. 15B is a timing diagram illustrating possible error in a DDR counter.
FIG. 16A is a schematic block diagram of another embodiment of a DDR counter according to the inventive concept. FIGS. 16B and 16C contain timing diagrams illustrating the operation of the counter of FIG. 16A through counting and inversion for the case in which the value in the counter at the time of inversion is an even number and the case in which the value in the counter at the time of inversion is an odd number, respectively. FIGS. 16D-16F are truth tables illustrating the counting process in the counter of FIG. 16A.
FIG. 17A is a schematic block diagram of another embodiment of a DDR counter according to the inventive concept. FIGS. 17B and 17C contain timing diagrams illustrating the operation of the counter of FIG. 17A through counting, hold and counting mode change for the case in which the value in the counter at the time of hold and mode change is an even number and the case in which the value in the counter at the time of hold and mode change is an odd number, respectively. FIGS. 17D and 17E are truth tables illustrating the counting process in the counter of FIG. 17A.
FIG. 18 contains a flow chart illustrating a process of counting in a DDR counter, according to one embodiment of the inventive concept.
FIG. 19 contains a flow chart illustrating a process of counting in a DDR counter, according to another embodiment of the inventive concept.
FIG. 20 contains a flow chart illustrating a process of analog-to-digital conversion, according to an embodiment of the inventive concept.
FIG. 21 contains a flow chart illustrating a process of analog-to-digital conversion, according to another embodiment of the inventive concept.
FIG. 22 contains a flow chart illustrating a process of processing an image in a CMOS image sensor according to an embodiment of the inventive concept.
FIG. 23 contains a flow chart illustrating a process of correlated double sampling (CDS), which can be carried out, for example, in a CMOS image sensor, according to an embodiment of the inventive concept.
FIG. 24 is a schematic block diagram of an embodiment of a CMOS image sensor according to the inventive concept.
FIG. 25 is a schematic block diagram of a CMOS image sensor using column analog-to-digital conversion, according to another embodiment of the inventive concept.
FIGS. 26A-26C include schematic functional block diagrams of CCD systems using the analog-to-digital conversion and DDR counting of the inventive concept.
FIG. 27 contains a schematic block diagram of an image signal processing system according to embodiments of the inventive concept.
FIG. 28 contains a schematic block diagram of a digital still camera according to embodiments of the inventive concept.
FIG. 29 contains a schematic block diagram of a general processing system according to embodiments of the inventive concept.



DETAILED DESCRIPTION
FIG. 1 includes a schematic block diagram of a general CMOS image sensor (CIS) 10. The CIS 10 may be used, for example, in a digital still camera. Referring to FIG. 1, the CIS 10, which converts external image data into digital data and stores the digital data, includes a timing controller 12, an active pixel sensor array (APS), or, simply, a pixel array 20, an analog-to-digital converter (ADC) 30, and a buffer 40.
The pixel array 20 receives external image data, i.e., from outside the CMOS image sensor 10, and outputs an analog signal Va to ADC 30 in response to control signals Rx, Tx and Sel received from the timing controller 12. The analog signal Va may also be referred to as a “pixel signal” or “data signal” or “image signal” or “input signal” or the like. The ADC 30 includes a comparator 31, a counter 32 and a ramp voltage generator 33. The comparator 31 receives the analog signal Va and receives a ramp signal Vr from ramp voltage generator 33. A “ramp signal” is a signal, such as ramp signal Vr, in which the voltage level of the signal increases or decreases over time, i.e., in proportion to time. The ramp signal Vr may also be referred to herein as ramp voltage or ramp voltage signal Vr. The voltage level of ramp signal Vr may, for example, increase or decrease at a constant rate. In the exemplary illustration of FIG. 1, the ramp voltage signal Vr increases with time. The counter 32 receives a clock signal CLK, a control signal RST and a control signal BWI. Control signal RST may be referred to herein as a reset signal RST and control signal BWI may be referred to herein as inversion signal BWI. In addition, counter 32 counts in response to clock signal CLK while analog signal Va is compared with ramp signal Vr. Comparator 31 compares analog signal Va with ramp signal Vr, and outputs a comparison signal LATCH to counter 32 in response to detecting a defined voltage difference between analog signal Va and ramp signal Vr. When the ramp voltage signal Vr and the analog signal Va “crossover,” i.e., when the ramp voltage Vr becomes larger than the analog signal Va in this illustration, the LATCH signal becomes active, and, in response, the counter 32 stops the counting. When the counter 32 stops counting in response to clock signal CLK stopping, a count value stored in counter 32 is digital data that corresponds to analog signal Va. The digital data that has been converted from analog signal Va is stored in buffer 40. In addition, timing controller 12 transmits a control signal RA_d to buffer 40 to receive a data signal R_D from buffer 40.
The foregoing description relates to conventional analog-to-digital conversion in a CMOS image sensor.
FIG. 2 is a schematic top-level block diagram of conventional sampling of an input signal for analog-to-digital conversion. Referring to FIG. 2, an input voltage Vin is applied at an input to the CDS system. An error factor e, representative of such sources of error as input offset of amplifiers, 1/f noise, switching noise, etc., is summed with the input signal Vin at summing node 21. A first amplifier having gain A1 receives the summed signal and amplifies the summed signal and applies the amplified summed signal to the input of a second amplifier having gain A2. The output Vout is taken across a load L. The output Vout can be expressed by Vout=Vin*A1*A2+e*A1*A2. Thus, the error e is amplified by A1 and A2 and can be a significant factor in the output signal Vout.
Correlated double sampling is used to reduce or eliminate the error term e. CDS is described in detail in, for example, U.S. Pat. Nos. 5,771,070 and 6,677,993, the contents of which patents are incorporated herein in their entirety by reference.
FIG. 3 is a schematic top-level block diagram of the process of CDS. Referring to FIG. 3, an error cancelling capacitor C is inserted between the amplifiers A1 and A2, such that a voltage Vp−Vn is developed across the capacitor C. In CDS, two sampling procedures are performed. First, indicated by (1), a reference signal Vref is sampled. Then, indicated by (2), the input signal Vin is sampled. In the first sampling process (1),

Vd=Vp−Vn=(0*A1+e*A1)−0=e*A1

Vout=0.

In the second sampling process (2),

Vd=Vp−Vn=(Vin*A1+e*A1)−(Vin*A1)=e*A1

Vout=Vin*A1*A2.

Hence, using CDS, the error term e is eliminated.

FIG. 4 is a schematic block diagram of CDS applied to a CMOS image sensor. Referring to FIG. 4, a photodiode (PD) 15 of the CMOS image sensor provides two signals, Vsig, which is the pixel image signal based on light incident on the pixel, and Vres, which is the reference signal or reset or “dark” level of the pixel. During the first sampling (1),

Vd=Vp−Vn=(Vres*A1+e*A1)−Vdd/2

Vout=Vdd/2

Vd=Vp−Vn=(Vsig*A1+e*A1)−[Vdd/2−(Vres−Vsig)*A1].

During the second sampling (2),

Vout=(Vres−Vsig)*A1*A2.

Hence, as noted above, using CDS, the error term e is eliminated.

FIG. 5A is a schematic block diagram illustrating an embodiment of analog-to-digital conversion using analog CDS in a CMOS image sensor. FIG. 5B is a schematic functional block diagram of the sampling performed in the analog CDS process. FIG. 5C is a timing diagram illustrating the timing of the analog CDS process. Referring to FIGS. 5A-5C, the CMOS image sensor 50 includes a pixel array 52 which provides pixel analog outputs to analog-to-digital converters (ADCs) 54. It is noted that in this embodiment, column analog-to-digital conversion is performed. That is, each column of the pixel array is connected to a column ADC 54. The details of only one column ADC circuit 54 is shown in FIG. 5A for clarity of illustration.
The pixel array columns output their respective analog signal outputs to their respective column ADCs 54. Each ADC 54 includes a CDS block 58 for carrying out analog CDS on the pixel signal outputs and generating outputs to be analog-to-digital converted. The CDS output signal is applied to a noninverting input of a respective comparator 60. A ramp generator 56 in the ADC 54 generates the ramp voltage signal and applies the signal to the inverting input of the comparator 60. The comparator output controls latching of data from counter 62 into the latches 66.
When a pixel signal is received from the pixel array 52, the CDS begins in the CDS block 58. The CDS begins with the sampling as described above. The counter enable block 64 starts the counting for the sampling in the counter 62, and the analog-to-digital conversion sampling is carried out in the CDS block 58. The ramp generator 56 applies the ramp voltage signal to the comparator 60. When the counting and sampling are complete, the OUT2 signal toggles from low to high, and the counter value is stored in the latch 66 and output from the ADC 54 as the digital-converted version of the input signal. It is noted that each column ADC 54 includes its own CDS block 58, comparator 60, latches 66 and counter 62.
Another approach to analog-to-digital conversion involves the use of dual CDS. Under dual CDS, two counting and sampling processes are performed. In conventional dual CDS, an up/down counter is typically used. When a pixel signal is received from the pixel array, the dual CDS begins with the first sampling process as described above. Using FIG. 5A as a reference, under dual CDS, the counter enable block starts the first counting for the first sampling in the up/down counter, and the analog-to-digital conversion first sampling is carried out in the CDS block. The ramp generator applies the ramp voltage signal to the comparator. When the first counting and first sampling are complete, the second sampling begins in the CDS block. The counter performs a second counting during the second sampling. When the second sampling is completed, the counter value is stored in a latch and output from the ADC as the digital-converted version of the input signal.
In some ADCs using dual CDS, one type of up/down counter is used as the ADC column counter. In such approaches, during the first sampling, the counter counts down. When the first sampling is complete, the counter begins counting up for the second sampling. An example of an up/down counter used in CDS for an ADC is described in, for example, U.S. Pat. Nos. 7,129,883 and 7,088,279, both of which are incorporated herein in their entirety by reference.
FIGS. 6A-6D illustrate an up/down counter used in conventional approaches to dual CDS. Specifically, FIG. 6A is a schematic block diagram of the up/down counter 70. FIG. 6B is a block diagram illustrating operation of a one-bit up/down counter to illustrate the operation of the up/down counter 70 of FIG. 6A. FIG. 6C is a timing diagram illustrating the operation of the up/down count and hold control of the one-bit counter of FIG. 6B. FIG. 6D is a diagram illustrating operation of dual CDS using the up/down counter 70.
Referring to FIGS. 6A and 6D, the up/down counter 70 includes, for example, four stages 71-74 configured using, for example, four D flip-flops. Each stage includes an edge-triggered clock input CLK and an output clock CLKo connected to the clock input CLK of the next stage. Each stage also includes a data output OUT representing bits D[0], D[1], D[2] and D[4] of the value in the counter 70. It is noted that D[0] represents the least significant bit (LSB) of the value in the counter 70. An UP/DN input to each stage controls the up or down counting direction of the stage. A HOLD input is used to temporarily stop the counting of each stage. An input clock signal CLK is applied along with the output of the ADC comparator to an AND gate 75 to generate the clock signal that is input to the edge-triggered clock inputs of the counter first stage 71.
During dual CDS using the up/down counter 70 of FIGS. 6A-6D, the counter 70 counts in the down direction during the first sampling, i.e., the sampling of the reference signal. When the first sampling is complete, i.e., when the comparator outputs a signal indicating the crossover of the ramp voltage signal and the reference signal, the counter is temporarily held, i.e., stopped, by the HOLD control signal transitioning to an active high state applied at the HOLD inputs of the stages. Then, upon initiation of the second sampling, i.e., the sampling of the analog input image data signal, the counter 70 is released by the HOLD signal transitioning back to the inactive low state and begins counting up from the previously down-counted value. When the comparator output signal indicates the crossover of the ramp voltage signal and the analog input image data signal, the counter output is the difference between the analog-to-digital converted value of the reference signal and that of the analog input image data signal, which is used as the dual CDS analog-to-digital conversion of the image data, with the error/noise contribution removed.
FIG. 6B contains a detailed schematic block diagram of one of the up/down counting stages 71, 72, 73, 74 of the up/down counter 70 of FIG. 6A. FIG. 6C contains a timing diagram of the up/down and hold control used to control the counter during dual CDS. Referring to FIGS. 6B and 6C, each stage includes a D flip-flop 76 and two selection circuits 77, 78, e.g., multiplexers. As shown in FIG. 6B, the multiplexer 77 selects, under control of the HOLD signal, one of the Q and /Q outputs of the flip-flop 76 to be fed back and applied to the D input of the flip-flop 76. When the HOLD signal is inactive low, the /Q output is applied back to the D input, and the counter 70 counts. When the HOLD signal is active high, the Q output is applied back to the D input, and the counting stops.
The multiplexer 78 selects, under control of the UP/DN control signal, one of the Q and /Q outputs to be the CLKo output signal of the stage applied as the CLK signal to the next stage. When the UP/DN signal is active high, the /Q output is selected, and the counter counts down. When the UP/DN signal is inactive low, the Q output is selected, and the counter counts up. During the down counting of the first sampling, the UP/DN signal is active high. Upon completion of the first counting, after the HOLD signal transitions to active high to hold the counting, the UP/DN signal transitions to low to change the counting mode from down to up. Next, the HOLD signal transitions back to inactive low to start the second counting in the up direction.
In other dual CDS approaches, a bit-wise inversion (BWI) counter is used as the ADC counter instead of the up/down counter described above. CDS using one type of BWI counter is described in, for example, United States Patent Application Publication number US 2008/0111059, the entire contents of which are incorporated herein by reference. FIGS. 7A-7F illustrate a BWI counter used in conventional approaches to dual CDS. Specifically, FIG. 7A is a schematic block diagram of a BWI counter 80. FIG. 7B is a block diagram illustrating operation of a one-bit inversion counter to illustrate the operation of the BWI counter 80 of FIG. 7A. FIG. 7C is a timing diagram illustrating the operation of the BWI control of the one-bit BWI counter of FIG. 7B. FIGS. 7D and 7E are timing diagrams illustrating operation of the BWI counter 80. FIG. 7F is a timing diagram illustrating operation of dual CDS using the BWI counter 80.
Referring to FIGS. 7A and 7F, the BWI counter 80 includes, for example, four stages 81, 82, 83, 84 implemented using, for example, four D flip-flops. Each stage includes an edge-triggered clock input CLK and a data output signal OUT representing data D of the stage. The four data output signals D[0], D[1], D[2], D[3] represent the data contents of the counter 80. It is noted that data signal D[0] represents the LSB of the value in the counter 80. Two inversion signals INV1 and INV2 control the inversion of the bits in the stages of the counter 80. An input clock signal CLK is applied along with the output of the ADC comparator to an AND gate 85 to generate the clock signal that is applied to the edge-triggered clock input CLK of the first stage 81. The D output signal from each stage serves as the clock signal for the immediately following stage and is applied to the edge-triggered CLK input of the immediately following stage.
Referring to FIG. 7F, during dual CDS using the BWI counter 80, the counter 80 counts in the up direction during the first sampling, i.e., the sampling of the reference signal. When the first sampling is complete, i.e., when the comparator outputs a signal indicating the crossover of the ramp voltage signal and the reference signal, the counter 80 carries out the inversion under the control of the two inversion signals INV1 and INV2. The second sampling, i.e., the sampling of the analog input image data signal, is then initiated, starting at the inverted value stored in the counter 80. During the second sampling, the counter 80 again counts in the up direction. When the comparator indicates the crossover of the ramp voltage signal and the analog input image data signal, the counter output is the difference between the analog-to-digital converted value of the reference signal and that of the analog input image data signal, which is used as the CDS analog-to-digital conversion of the image data, with the error/noise contribution removed.
FIG. 7B contains a detailed schematic block diagram of one of the BWI counting stages 81, 82, 83, 84 of the BWI counter 80 of FIG. 7A. FIG. 7C contains a timing diagram of the operation of the inversion control signals INV1 and INV2 during the dual CDS process in the one-bit inversion counter of FIG. 7B. Referring to FIGS. 7B and 7C, the counting stage 81, 82, 83, 84 includes a D flip-flop 86 and a selection circuit such as multiplexer 87. As shown, the control signals are used to apply the clock signal CLKi to the CK input of the D flip-flop 86 during inversion to invert the value of the data bit stored in the flip-flop 86. Specifically, during counting, the INV1 signal is inactive low, such that the multiplexer 87 applies the clock signal CLK [D(N−1)], i.e., the data output D of the previous stage, to the edge-triggered CK input of the flip-flop 86 via the output signal CLKi from the multiplexer 87. When the inversion is to be carried out, the inversion signal INV1 transitions to the active high state, such that the multiplexer 87 applies the second inversion signal INV2 to the CK input of the flip-flop 86 via the multiplexer output signal CLKi. When the second inversion control signal INV2 transitions from high to low, the signal CLKi also transitions from high to low, and the flip-flop 86 is triggered to invert its data contents.
FIGS. 7D and 7E contain timing diagrams illustrating the one-bit inversion operation in detail. FIG. 7D illustrates the case in which the first inversion control signal INV1 transitions to the active high state while the input clock signal CLK [D(N−1)] is in the high state, and FIG. 7E illustrates the case in which the first inversion control signal transitions to the active high state while the input clock signal CLK [D(N−1)] is in the low state. As shown in FIGS. 7D and 7E, regardless of the state of the input clock signal CLK [D(N−1)], the data D in the flip-flop is inverted when the second inversion control signal transitions from high to low.
In column parallel single slope ADC approaches, a ripple counter has been commonly used as the ADC counter. FIGS. 8A-8C illustrate a ripple counter used in conventional approaches to column parallel single slope ADC. Specifically, FIG. 8A contains a schematic block diagram of a ripple counter 90. FIG. 8B is a timing diagram illustrating the toggling of data bits of the counter 90 during counting. FIG. 8C is a table illustrating the relative frequency of bit toggling and relative power consumption for the bits in a ripple counter during counting. In single slope ADC, the counter is a global counter and column latch. When the comparator of each column toggles, the column latch of the toggled column catches the output of the global counter at the moment the comparator toggles. This is done for each column.
Referring to FIG. 8A, the ripple counter 90 is illustrated as including four stages, each of which includes a D flip-flop 91, 92, 93, 94. Each stage includes an edge-triggered clock input CK and a data output signal Q representing data D of the stage. The four illustrated data output signals D[0], D[1], D[2], D[3] represent the data contents of the counter 90. It is noted that data signal D[0] represents the LSB of the value in the counter 90. Data signal D[3] represents the most significant bit (MSB) of the value in the counter 90. An input clock signal CLK is applied along with the output of the ADC comparator to an AND gate 95 to generate the clock signal CLKi that is applied to the edge-triggered clock input CK of the first stage 91. The D output signal from each stage serves as the clock signal for the immediately following stage and is applied to the edge-triggered CK input of the immediately following stage.
Referring to FIGS. 8B and 8C, it is noted that during counting in the conventional ripple counter 90 illustrated in FIG. 8A, the count in the counter 90 is updated on each trailing edge of the input clock signal CLK. The LSB of the value in the counter D[0] toggles in every count update. The bit D[1] toggles half as frequently, the bit D[2]toggles half again as frequently, and the MSB D[3] toggles the least frequently. The relative power consumption contributed by the toggling of each bit is also tabulated in the table of FIG. 8C. It is noted that the toggling of the LSB D[0] is responsible for more than half of the total power consumption due to bit toggling.
FIGS. 9A-9C illustrate the existence of a “glitch” in the conventional column ADC ripple counter 90 illustrated in FIG. 8A. Specifically, FIG. 9A is a schematic block diagram of a ripple counter 100 with an additional glitch filter circuit 98 used to eliminate the glitch. FIG. 9B is a timing diagram illustrating the glitch using the conventional ripple counter 90. FIG. 9C is a timing diagram illustrating the elimination of the glitch using the glitch filter 98 with the ripple counter 100.
Referring to FIG. 9A, the glitch filter 98 includes a D flip-flop 96 and a delay circuit 97. The comparator output from the ADC is applied to the D input of the D flip-flop 96. The clock input CLK is applied to the CK input of the flip-flop 96. The clock input CLK is also applied to the input of the delay circuit 97, and a delayed version of the clock, delayed by the delay circuit 97, is applied to one of the inputs of the AND gate 95. A filtered version of the comparator output, generated by the D flip-flop 96, appears at the Q output of the flip-flop 96 and is applied to the other input of the AND gate 95. The output of the AND gate 95 is applied to the CK input of the first stage 91 of the ripple counter 100 as the input clock signal CLKi.
FIG. 9B illustrates the glitch in the ripple counter 90 of FIG. 8A. Referring to FIGS. 8A and 9B, if the comparator output oscillates, i.e., repeatedly changes states, before settling, then the clock input signal CLKi applied to the CK input of the first stage 91 may also oscillate, i.e., change states. These oscillations in the CLKi signal cause undesired counting in the ripple counter 90. That is, as noted in the timing diagram of FIG. 9B, the bits of the counter D[0] and D[1] may change states as the counter 90 carries out the undesired additional counting caused by the glitch. As a result, the value of the count in the counter 90 is inaccurate.
The glitch filter circuit 98 of FIG. 9A eliminates this problem by introducing sampling i.e. filtering the comparator output at the positive edge of the CLK. Referring to FIG. 9C, which shows the timing of signals in the ripple counter 100 with the glitch filter circuit 98, oscillations in the comparator output as it settles at its new state do not result in oscillations in the input clock signal CLKi applied at the CK input of the first stage 91. Thus, the additional undesired counting caused by the glitch is eliminated, resulting in an accurate value in the counter 100.
It is noted that in the conventional column ADC ripple counter, as illustrated in FIGS. 8A and 9A, the input clock frequency is the same as the operating frequency of the counter. This poses a restriction on the operational frequency of the counter. This together with the high power consumption in the toggling of the LSB of the counter results in significant drawbacks in the conventional column ADC counter.
In high-speed circuits, such as the counter used in column ADC of CMOS image sensors, is it desirable to operate at high frequency and to control power consumption. Double data rate (DDR) counters have been widely used to provide circuits which operate at higher frequencies than conventional counters. Generally, DDR counters count on both edges, i.e., rising edge and falling edge, of the input clock signal, instead of on only the rising edge or falling edge of the input clock signal. As a result, DDR counters operate at twice the frequency of the input clock frequency.
According to the inventive concept, a DDR counter is provided in which the counter counts at twice the input clock frequency, while the frequency of toggling of the LSB of the counter is reduced. This results in a high-speed DDR counter, which can be used, for example, in column ADC performing CDS in a CMOS image sensor, with substantially reduced power consumption, due to the reduction in toggling of the LSB.
FIG. 10 contains a schematic block diagram of a DDR counter 200 which reduces the amount of toggling in the LSB to reduce overall power consumption, in accordance with one embodiment of the present inventive concept. The DDR counter 200 can be used in, for example, column ADC using CDS in a CMOS image sensor.
Referring to FIG. 10, the counter 200 is shown to include four stages 202, 204, 206, 208, each of which includes a D flip-flop. Each of the flip-flops includes a data input D, data outputs Q and /Q and an edge-triggered clock input CK. Each /Q output is connected back to the data input D of its own flip-flop stage. The counter input clock signal CLKi is applied to the edge-triggered clock input CK of the first-stage flip-flop 202 and that of the second-stage flip-flop 204. The Q output of each of the second and third stages 204, 206 is applied to the edge-triggered clock input CK of the next stage. In the embodiment of the counter 200 of the inventive concept in FIG. 10, the clock input CK of the first stage 202 is positive-edge-triggered, and the subsequent stages 204, 206, 208 are negative-edge-triggered.
The counter stages 202, 204, 206, 208 generate the data outputs D0′, D[1], D[2] and D[3]. The counter includes an XOR gate 210 which performs an XOR logical operation on the data outputs D0′ and D[1] to generate the data output D[0], which is the LSB of the value in the counter 200. Thus, the value in the counter 200 includes data bits D[0], D[1], D[2], D[3], where D[0] is the LSB, D[3] is the MSB and D[0] is generated by an XOR operation carried out on D0′ and D[1]. It is noted that the XOR operation can be performed either in the counter 200 or in circuitry external to the counter 200.
FIG. 11A is a timing diagram of the operation of the counter 200 illustrated in FIG. 10, and FIG. 11B is a truth table of the XOR logical operation performed on D0′ and D[1]. As shown in FIGS. 11A and 11B, the value of the count in the counter 200 is updated on every edge of the input clock signal CLKi. The is, the value of the LSB of the counter value changes on every edge of the clock signal, and, therefore, the counter 200 behaves like a DDR counter, operating at twice the frequency of the input clock signal. However, the first-stage data bit D0′ does not toggle on every edge of the clock signal. Instead, it only toggles on every rising edge of the clock signal, since the first-stage flip-flop 202 is positive-edge-triggered. Hence, although counting is carried out by the counter 200 as a DDR counter, the actual toggling of the bits in the flip-flops, in particular, the LSB flip-flop 202, does not occur at twice the input clock frequency. This results in substantial reduction in power consumption caused by the toggling of bits in a flip-flop counter.
It is noted that the signals D0′ and D[1] have a phase difference of 90 degrees. This 90-degree phase difference is developed by clocking the first and second-stage flip-flops on different edges of the input clock signal CLKi. The 90-degree phase difference between the D0′ and D[1] signals is implemented in all of the various embodiments of counters of the inventive concept described herein.
FIG. 12 is a schematic block diagram of another embodiment of a DDR counter 250 according to the inventive concept. The embodiment of FIG. 12 is similar to the embodiment of FIG. 10. The input clock signal CLKi is applied to the edge-triggered clock inputs CK of the first and second-stage D flip-flops 252 and 254. However, in the embodiment of FIG. 12, the first stage D flip-flop 252 is positive-edge-triggered, the second stage D flip-flop 254 is negative-edge-triggered, and the third and fourth-stage D flip-flops 256, 258 are both positive-edge-triggered. Also, the second and third-stage /Q outputs are used as the clock inputs for their respective next stages, in contrast to the embodiment of FIG. 10, in which the Q outputs of the second and third stages clock their respective next stages.
FIG. 13 is a schematic block diagram of another embodiment of a DDR counter 300 according to the inventive concept. The embodiment of FIG. 13 is similar to the embodiments of FIGS. 10 and 12, except that the counter of FIG. 13 is a down counter. The input clock signal CLKi is applied to the edge-triggered clock inputs CK of the first and second-stage D flip-flops 302 and 304. The first stage D flip-flop 302 is negative-edge-triggered, the second stage D flip-flop 304 is positive-edge-triggered, and the third and fourth-stage D flip-flops 306, 308 are both positive-edge-triggered. Also, the second and third-stage Q outputs are used as the clock inputs for their respective next stages.
FIG. 14 is a schematic block diagram of another embodiment of a DDR counter 350 according to the inventive concept. The embodiment of FIG. 14 is similar to the embodiment of FIGS. 10, 12 and 13, and, like the counter 300 of FIG. 13, is a down counter. The input clock signal CLKi is applied to the edge-triggered clock inputs CK of the first and second-stage D flip-flops 352 and 354. In the embodiment of FIG. 14, the first stage D flip-flop 352 is negative-edge-triggered, the second stage D flip-flop 354 is positive-edge-triggered, and the third and fourth-stage D flip-flops 356, 358 are both negative-edge-triggered. Also, the second and third-stage /Q outputs are used as the clock inputs for their respective next stages.
FIG. 15A is a schematic block diagram of another embodiment of a DDR counter 400 according to the inventive concept. As with the other embodiments of DDR counters described herein, the DDR counter 400 of FIG. 15 reduces the amount of toggling in the LSB to reduce overall power consumption. The DDR counter 400 can be used in, for example, column ADC using CDS in a CMOS image sensor.
The counter 400 of FIG. 15A is a variation of the embodiments of the inventive concept described above. Specifically, the counter 400 of FIG. 15A includes a count stop circuit, in the form of, for example, multiplexer 412.
In some DDR counters, such as the modified ripple counter 200 of FIG. 10, it is possible that an error may occur at the time the comparator output signal indicates the crossover between the ramp signal and the analog input image data signal. FIG. 15B is a timing diagram illustrating the possible error. Referring to FIG. 15B, if the comparator output signal transitions from a low state to a high state while the input clock signal CLK is in a high state, then the clock signal CLKi will transition from high to low. This negative edge of the CLKi signal will cause an errant toggling of the bit D[1], as indicated in the dashed circle of FIG. 15B, resulting in an inaccurate count in the counter. It is noted that if the comparator output signal transitions from high to low while the input clock signal CLK is in a low state, then the error does not occur. The additional count stop configuration of the DDR counter 400 of FIG. 15A eliminates this potential source of error.
Referring to FIG. 15A, the DDR counter 400 with the count stop capability is shown to include four D flip-flop stages 402, 404, 406, 408. Each of the flip-flops includes a data input D, data outputs Q and /Q and an edge-triggered clock input CK. Each /Q output of the first, third and fourth stages is connected back to the data input D of its own flip-flop stage. The counter clock signal CLKi is applied to the edge-triggered clock input CK of the first-stage flip-flop 402. The CLKi signal is generated as the output of an AND gate 410, which performs an AND operation on the input clock signal CLK and the comparator output signal. The input clock signal CLK is also connected directly to the edge-triggered clock input CK of the second-stage flip-flop 404, bypassing the AND gate 410. The Q output of each of the second and third stages 404, 406 is applied to the edge-triggered clock input CK of the next stage. In the embodiment of the counter 400 of the inventive concept in FIG. 15A, the clock input CK of the first stage 402 is positive-edge-triggered, and the subsequent stages 404, 406, 408 are negative-edge-triggered.
The counter stages 402, 404, 406, 408 generate the data outputs D0′, D[1], D[2] and D[3]. The counter includes an XOR gate 414 which performs an XOR logical operation on the data outputs D0′ and D[1] to generate the data output D[0], which is the LSB of the value in the counter 400. Thus, the value in the counter 400 includes data bits D[0], D[1], D[2], D[3], where D[0] is the LSB, D[3] is the MSB and D[0] is generated by an XOR operation carried out on D0′ and D[1]. It is noted that the XOR operation can be performed either in the counter 400 or in circuitry external to the counter 400.
To eliminate the error described above, the counter 400 includes the count stop multiplexer 412. The Q output of the second-stage flip-flop 404 is applied to the X0 input of the multiplexer 412, and the /Q output of the second-stage flip-flop 404 is applied to the X1 input of the multiplexer 412. The comparator output signal is applied to the selection control input S of the multiplexer 412. When the comparator output signal is in a high state, the multiplexer 412 selects the /Q output of the flip-flop 404 to be fed back to the D input of the flip-flop 404. When the comparator output signal is in a low state, the multiplexer 412 selects the Q output of the flip-flop 404 to be fed back to the D input of the flip-flop 404.
Thus, referring again to the timing diagram of FIG. 15B, when the comparator output signal is in a low state, as it is when the counter 400 is counting during analog-to-digital conversion, the /Q output of the second-stage flip-flop 404 is fed back to the D input of the flip-flop 404 via the multiplexer 412, such that counting is carried out. When the comparator output signal transitions to a low state, such as when the crossover of the analog-to-digital conversion ramp signal and the analog input image signal occurs, the Q output of the D flip-flop 404 is fed back to the D input of the flip-flop 404, such that counting is stopped. This eliminates the error that may occur in the absence of the multiplexer 412.
FIG. 16A is a schematic block diagram of another embodiment of a DDR counter 500 according to the inventive concept. As with the other embodiments of DDR counters described herein, the DDR counter 500 of FIG. 16A reduces the amount of toggling in the LSB to reduce overall power consumption. The DDR counter 500 can be used in, for example, column ADC using CDS in a CMOS image sensor.
Referring to FIG. 16A, the DDR counter 500 is an inversion counter, i.e., a BWI counter of the type described above in connection with FIG. 7A. However, the BWI counter 500 of the inventive concept includes several improvements over and variations on the BWI counter of FIG. 7A.
As described above, during operation, the BWI counter counts up until the comparator output signal indicates the crossover of the ramp signal and the analog input image data signal. Then, an inversion is carried out on the bits stored in the counter, and the second sampling proceeds with the counter counting up from the inverted value stored in the counter after the inversion. When the comparator output signal indicates the second crossover during the second sampling, the analog-to-digital conversion value stored in the counter is the difference between the two counting values generated during the two sampling procedures.
The DDR counter 500 of FIG. 16A is shown to include, for example, four stages 502, 504, 506, 508, which are configured using D flip-flops. The third and fourth stages 506 and 508 are implemented as one-bit inversion counters of the type described above in connection with FIG. 7B. The value in the counter, represented by data bits D[0], D[1], D[2], D[3], is generated by the first through fourth stages, 502, 504, 506, 508, respectively. The LSB D[0] of the counter value is generated according to the inventive concept by performing an XNOR operation 524 on the value D0′ in the first-stage flip-flop 502 and the data value D[1] of the second stage 504. It is noted that the gate 524 is actually illustrated as an XNOR gate. Inversion of the output of the gate 524 is controlled by the first inversion control signal INV1, as described below in detail. Even though the gate shown in FIG. 16A is illustrated as an XNOR gate, it may be referred to herein as performing an XOR operation, in consideration of the inversion carried out under the control of the first inversion control signal INV1.
The DDR counter 500 of FIG. 16A includes a count stop circuit 510, which includes a multiplexer 511. The multiplexer 511 selects between the Q and /Q outputs of the second-stage flip-flop 504 to be fed back to the D input of the second-stage flip-flop 504, as described above in connection with the counter of FIG. 15A.
The DDR counter of FIG. 16A also includes a clock MUX circuit which includes multiplexer 518. The external clock signal CLK and a clock enable control signal CLK_EN, generated in, for example, a counter controller external to the counter 500, are applied to an AND gate 522, which may also be in the external counter controller. When counting is enabled by the CNT_EN signal, the CLK signal is passed through the AND gate 522 to generate the clock signal CLKc. The clock signal CLKc is applied to an inverter 520 to generate the inverted clock signal /CLKc. The clock signal CLKc and the inverted clock signal /CLKc are applied to inputs of the clock MUX multiplexer 518. The selection performed by the multiplexer 518 is controlled by the signal ST from the flip-flop 514. When the ST signal is in a high state, the inverted clock signal /CLKc is selected, and, when the ST signal is in a low state, the noninverted clock signal CLKc is selected. Based on this selection, the multiplexer 518 outputs either the noninverted clock signal CLKc or the inverted clock signal /CLKc as the clock signal CLKm.
The clock signal CLKm is applied to an input of an AND gate 516. The comparator output is applied to the other input of the AND gate 516. As a result of the AND operation 516, the clock signal CLKi is generated. The clock signal CLKi is applied to the positive-edge-triggered clock input CK of the first stage flip-flop 502, and the clock signal CLKm is applied to the X0 input of the multiplexer 528 of a BWI circuit 512 of the counter 500. Two inversion control signals INV1 and INV2 control the inversion operation of the counter 500. The first inversion control signal INV1 is also used to control the selection of the Q or /Q outputs of the first-stage flip-flop 502 to be fed back to the D input of the first-stage flip-flop 502.
During counting, the INV1 signal is inactive low, such that the multiplexer 528 applies the clock signal CLKm to the negative-edge-triggered CK input of the second-stage flip-flop 504 via the output signal from the multiplexer 528. When the inversion is to be carried out, the inversion signal INV1 transitions to the active high state, such that the multiplexer 528 applies the second inversion signal INV2 to the CK input of the flip-flop 504. When the second inversion control signal INV2 transitions from high to low, the flip-flop 504 is triggered to invert its data contents. The inversion control signals INV1 and INV2 also operate to invert the contents of the third and fourth stages 506, 508 in accordance with the description above in connection with FIGS. 7B and 7C.
The DDR counter 500 of FIG. 16A also includes a flip-flop 514 used to check and store the state or status of the LSB D[0], or, similarly, /D[0], at the time of the inversion. During counting, when the first inversion control signal INV1 is inactive low, the output of the XNOR gate 524 is not enabled. After inversion occurs and the second sampling and counting begin, it is important to ensure that the counter starts at the correct value to ensure an accurate second count. To that end, since the LSB D[0] is a combination (XOR or XNOR) of D0′ and D[1], one of those two bits, i.e., D0′ or D[1] must be toggled on the next positive edge of the clock signal CLKm as the second counting begins. The bit to be toggled again, i.e., D0′ or D[1], is determined by the state of the LSB D[0] when inversion takes place. Specifically, if the value in the counter 500 is even at the time of inversion, i.e., D[0]=0, D[1] should be toggled on the next positive edge of the clock signal CLKc. If the value in the counter 500 is odd at the time of inversion, i.e., D[0]=1, then D0′ should be toggled on the next positive edge of CLKc. This is accomplished by using the ST signal, which indicates the state of /D[0] at the time of inversion, to control the selection of either the clock signal CLKc or the inverted clock signal /CLKc via the multiplexer 518 in the clock MUX circuit.
FIGS. 16B and 16C contain timing diagrams illustrating the operation of the counter 500 through counting and inversion for both cases. Specifically, FIG. 16B illustrates the case in which the value in the counter 500 at the time of inversion is an even number, i.e., D[0]=0; and FIG. 16C illustrates the case in which the value in the counter 500 at the time of inversion is an odd number, i.e., D[0]=1. FIGS. 16D-16F are truth tables illustrating the process.
Referring to FIG. 16A-16F, when the comparator output signal and the CLK_EN signal are both high, the counter 500 counts under the clocking of clock signal CLKi. In the exemplary illustration in the timing diagram of FIG. 16B, the comparator output signal transitions to inactive low to indicate crossover after the counter has reached the value decimal 210, i.e., binary 102. Specifically, at the end of the first counting, D[0]=0, and D[1]=1. That is, the value in the counter 500 is an even number. It is noted that even though the counting has ended, the clock signals CLKc and /CLKc continue to run because the CNT_EN signal remains active high for a time. When the counting stops, because D[0]=0, the signal ST transitions from low to high and takes the value 1 when the first inversion control signal INV1 transitions to a high state to begin the bit inversion process and clocks the value of /D[0]=1 through the flip-flop 514. The first inversion control signal INV1 is used as the clock for the positive-edge-triggered CK input of the flip-flop 514. It also controls enabling the output of the XNOR gate 524, i.e., the data /D[0], to be applied to the D input of the flip-flop 514. It should be noted that the INV1 signal applied to the CK input of flip-flop 514 is delayed slightly (not shown) to allow the value of /D[0] to set up at the D input of flip-flop 514.
When the signal ST=1 is applied to the multiplexer 518 in the clock MUX circuit, the inverted clock signal /CLKc is selected as the CLKm signal applied to the AND gate 516 and multiplexer 528 input X0. The bits of the counter 500 are inverted when the second inversion control signal INV2 transitions to a low state. Next, the second counting begins since the comparator output signal transitions back to the high state between the INV1 and INV2 transitions. When this occurs, when the CNT_EN signal returns to active high, the clock signal CLKm begins clocking again with the inverted clock signal /CLKc being selected. On the next positive edge of the clock signal CLKc, i.e., a negative edge of CLKm, which is /CLKc, the bit D[1] generated in the second stage flip-flop 504 is toggled. After this toggling, the counting for the second sampling continues.
The timing diagram of FIG. 16C illustrates the situation in which the value in the counter 500 at the time of crossover, i.e., inversion, is an odd number. In this particular exemplary illustration, the value in the counter is decimal 310, i.e., binary 112. As shown in the timing diagram of FIG. 16C, when the value in the counter is odd, the noninverted clock signal CLKc is selected. After inversion and the second count is to begin, the value of D0′ in the first-stage flip-flop 502 is toggled on the next positive edge of the clock signal CLKm.
Referring to the truth tables of FIGS. 16D-16F, FIG. 16D shows the possible states of D[1], D[0] and D0′ after the first counting. FIG. 16E shows the states of the bits after inversion. FIG. 16F shows the states of the bits after the first clock positive edge of the second counting process. As shown in the truth tables, when the value in the counter at the end of the first counting is even, the first positive edge of the clock during the second counting toggles the D[1] bit; and, when the value in the counter at the end of the first counting is odd the first positive edge of the clock during the second counting toggles the D0′ bit.
FIG. 17A is a schematic block diagram of another embodiment of a DDR counter 600 according to the inventive concept. As with the other embodiments of DDR counters described herein, the DDR counter 600 of FIG. 17 reduces the amount of toggling in the LSB to reduce overall power consumption. The DDR counter 600 can be used in, for example, column ADC using CDS in a CMOS image sensor.
Referring to FIG. 17A, the DDR counter 600 is an up/down counter of the type described above in connection with FIG. 6A. However, the DDR up/down counter 600 of the inventive concept includes several improvements over and variations on the up/down counter of FIG. 6A.
As described above, during operation, the up/down counter 600 counts down until the comparator output signal indicates the crossover of the ramp signal and the analog input image data signal. Then, the counting is held momentarily before the second counting begins. During the second counting, the counter 600 counts in the up direction. When the comparator output signal indicates the second crossover during the second sampling, the analog-to-digital conversion value stored in the counter 600 is the difference between the two counting values generated during the two sampling procedures.
The DDR up/down counter 600 of FIG. 17A includes many features analogous to those of the BWI counter 500 described above in connection with FIGS. 16A-16F. For example, the clock circuitry and the clock MUX circuitry including multiplexer 518 are the same as those of the DDR counter 500. Also, the flip-flop 514, which stores the state or status of the counter LSB D[0] (or /D[0]) and generates the signal ST is similar to that of the counter 500, except that the flip-flop 514 of the counter 600 is clocked by the HOLD control signal rather than an inversion control signal.
The DDR counter 600 of FIG. 17A is shown to include, for example, four stages 602, 604, 606, 608, which are configured using D flip-flops. The third and fourth stages 606 and 608 are implemented as one-bit up/down counters of the type described above in connection with FIG. 6B. The value in the counter, represented by data bits D[0], D[1], D[2], D[3], is generated by the first through fourth stages, 602, 604, 606, 608, respectively. The LSB D[0] of the counter value is generated according to the inventive concept by performing an XOR operation 624 on the value D0′ in the first-stage flip-flop 602 and the value D[1] of the second stage 604. Enabling of the output of the XOR gate 624 is controlled by the HOLD control signal, as described below in detail.
The DDR counter 600 of FIG. 17A also includes a clock MUX circuit which includes multiplexer 518. The external clock signal CLK and a clock enable control signal CLK_EN, generated in, for example, a counter controller external to the counter 600, are applied to an AND gate 522, which may also be in the external counter controller. When counting is enabled by the CNT_EN signal, the CLK signal is passed through the AND gate 522 to generate the clock signal CLKc. The clock signal CLKc is applied to an inverter 520 to generate the inverted clock signal /CLKc. The clock signal CLKc and the inverted clock signal /CLKc are applied to inputs of the clock MUX multiplexer 518. The selection performed by the multiplexer 518 is controlled by the signal ST from the flip-flop 514. When the ST signal is in a high state, the inverted clock signal /CLKc is selected, and, when the ST signal is in a low state, the noninverted clock signal CLKc is selected. Based on this selection, the multiplexer 518 outputs either the noninverted clock signal CLKc or the inverted clock signal /CLKc as the clock signal CLKm.
The clock signal CLKm is applied to an input of an AND gate 516. The comparator output is applied to the other input of the AND gate 516. As a result of the AND operation 516, the clock signal CLKi is generated. The clock signal CLKi is applied to the positive-edge-triggered clock input CK of the first stage flip-flop 602, and the clock signal CLKm is applied to the negative-edge-triggered CLK input of the second stage 604. Two control signals, namely, an UP/DN control signal and a HOLD control signal, control the up and down counting operations of the counter 600. The HOLD control signal is used to hold or stop the counting temporarily, via the HOLD inputs of the stages. The HOLD signal is applied to a first input of an OR gate 628 along with an inverted version of the comparator output signal. The output of the OR gate is applied to the HOLD control input of the second stage 604. When the comparator output is inactive low or the HOLD control signal is active high, the counting is held or stopped via the HOLD inputs of the stages. The HOLD control signal is also used to control the selection of the Q or /Q outputs of the first-stage flip-flop 602 to be fed back to the D input of the first-stage flip-flop 602. When the HOLD control signal is inactive low, the /Q output of flip-flop 602 is selected via the X0 input of the multiplexer 626 to be fed back to the D input. When the HOLD control signal is active high, the Q output is selected.
During counting, the HOLD signal is inactive low to allow counting, and the UP/DN signal is active high, such that the counting proceeds in the down direction. When the comparator output signal transitions to the inactive low state, indicating the crossover of the ramp voltage signal and the analog input image data signal, the counting stops. The CNT_EN signal then transitions to inactive low. Then, the HOLD signal transitions to active high to hold the counting. The transition of the HOLD signal clocks the D flip-flop 514 such that it outputs the value of the bit D[0] at its Q output as the signal ST. The UP/DN control signal transitions to inactive low to change the direction of counting to the up direction. Then, the HOLD control signal transitions to inactive low to release the counter 600 for the second counting in the up direction. Then, the comparator output signal transitions back to active high, and then the CNT_EN signal also transitions back to active high such that counting in the up direction begins on the next positive edge of the CLKc signal.
As noted above, the DDR counter 600 of FIG. 17A also includes a flip-flop 514 used to check and store the state or status of the LSB D[0], or, similarly, /D[0], at the time of the hold and counting mode change, i.e., down counting to up counting. During counting, when the HOLD control signal is inactive low, the output of the XOR gate 624 is not applied to the D input of the flip-flop 514. When the HOLD signal transitions to active high, the value of D[0] is applied by the XOR gate 624 to the D input of flip-flop 514 and clocked through the flip-flop 514 to the Q output as signal ST. It should be noted that the HOLD signal applied to the CK input of flip-flop 514 is delayed slightly (not shown) to allow the value of D[0] to set up at the D input of flip-flop 514. When the first down counting begins, the signal ST is initially in the active high stated, such that the inverted clock signal /CLKc is selected as the CLKm signal for the down counting.
After the hold and counting mode change occur and the second sampling and counting begins, it is important to ensure that the counter 600 starts at the correct value to ensure an accurate second count. To that end, since the LSB D[0] is a combination (XOR) of D0′ and D[1], one of those two bits, i.e., D0′ or D[1] must be toggled on the next positive edge of the clock signal CLKc depending on the value of the ST signal, as the second counting begins. The bit to be toggled again, i.e., D0′ or D[1], is determined by the state of the LSB D[0] when the counting is held via the HOLD control signal. Specifically, if the value in the counter 600 is even at the time of the hold, i.e., D[0]=0, then the CLKm signal is inverted for the up counting at the positive edge of the HOLD control signal by selecting the noninverted clock signal CLKc via the state change from high to low of the ST signal and the multiplexer 518. As a result, the D0′ value is toggled on the next positive edge of the clock signal CLKc. In contrast, if the value in the counter 600 is odd at the time of the hold, i.e., D[0]=1, then the CLKm signal is not inverted at the positive edge of the HOLD control signal by selecting the inverted clock signal /CLKc via the ST signal and the multiplexer 518 for the up counting. That is, if the value in the counter 600 at the time of the hold is odd, then on the positive edge of the HOLD control signal, the value of ST does not change, and the inverted clock signal /CLKc continues to be selected as the clock signal CLKm for the up counting. As a result, the value of D[1] is toggled on the next positive edge of CLKc.
FIGS. 17B and 17C contain timing diagrams illustrating the operation of the counter 600 through counting, hold and counting mode change for both cases. Specifically, FIG. 17B illustrates the case in which the value in the counter 600 at the time of hold and mode change is an even number, i.e., D[0]=0; and FIG. 17C illustrates the case in which the value in the counter 600 at the time of hold and mode change is an odd number, i.e., D[0]=1. FIGS. 17D and 17E are truth tables illustrating the process.
Referring to FIG. 17A-17E, when the comparator output signal and the CLK_EN signal are both high, the counter 600 counts under the clocking of clock signal CLKi. As shown in the exemplary illustration in the timing diagram of FIG. 17B, the comparator output signal transitions to inactive low to indicate crossover after the counter has reached the value decimal 210, i.e., binary 102. Specifically, at the end of the first counting, D[0]=0, and D[1]=1. That is, the value in the counter 600 is an even number.
It is noted that even though the counting has ended, the clock signals CLKc and /CLKc continue to run because the CNT_EN signal remains active high for a time. When the HOLD control signal changes state from low to high, because D[0]=0 the signal ST changes state to active low to select the noninverted clock signal CLKc as the clock signal CLKm for the second counting via the multiplexer 518. Next, the UP/DN control signal transitions from high to low to change the counting mode of the second counting to up counting, and the comparator output signal transitions from low to high. Next, the HOLD control signal transitions from high to low to release the counter 600 for the second counting. Next, the CNT_EN signal transitions from low to high to begin the second counting. When the second counting begins, the value of D0′ is toggled on the first positive edge of the clock signal CLKc.
The timing diagram of FIG. 17C illustrates the situation in which the value in the counter 500 at the time of crossover, i.e., inversion, is an odd number. In this particular exemplary illustration, the value in the counter is decimal 310, i.e., binary 112. It is noted that even though the counting has ended, the clock signals CLKc and /CLKc continue to run because the CNT_EN signal remains active high for a time. When the HOLD control signal changes state from low to high, because D[0]=1 the signal ST remains in an active high state to select the inverted clock signal /CLKc as the clock signal CLKm for the second counting via the multiplexer 518. Next, the UP/DN control signal transitions from high to low to change the counting mode of the second counting to up counting, and the comparator output signal transitions from low to high. Next, the HOLD control signal transitions from high to low to release the counter 600 for the second counting. Next, the CNT_EN signal transitions from low to high to begin the second counting. When the second counting begins, the value of D[1] is toggled on the first positive edge of the clock signal CLKc.
Referring to the truth tables of FIGS. 17D and 17E, FIG. 17D shows the possible states of D[1], D[0] and D0′ after the first counting. FIG. 17E shows the states of the bits after the down-to-up counting mode change and the first count of the up count after the first positive clock edge of the second counting process. As shown in the truth tables, when the value in the counter at the end of the first counting is even, the first positive edge of the clock during the second counting toggles the D0′ bit; and, when the value in the counter at the end of the first counting is odd, the first positive edge of the clock during the second counting toggles the D[1] bit.
As described above in connection with FIGS. 9A-9C, a glitch filter 98, which includes a D flip-flop 96 and a delay circuit 97, can be used with any of the embodiments of DDR counters described herein in connection with the inventive concept.
FIG. 18 contains a flow chart illustrating a process of counting in a DDR counter, according to one embodiment of the inventive concept. Referring to FIG. 18, the process of DDR counting includes generating an LSB of a count value in a counter, as shown in step 1010. At least one other bit, e.g., a more significant bit of the count value in the counter, is generated in step 1020. The first stage of the counter, i.e., the stage containing the LSB, is clock edge triggered on one of the rising and falling edges of a clock input signal, as shown in step 1030. That is, the clock input of the first stage of the counter is edge triggered on either the rising edge or the falling edge of the clock input signal. The second stage of the counter, i.e., the stage containing another bit of the value in the counter, is clock edge triggered on the other of the rising and falling edge of the clock input signal, as shown in step 1040.
FIG. 19 contains a flow chart illustrating a process of counting in a DDR counter, according to another embodiment of the inventive concept. Referring to FIG. 19, a first bit signal, e.g., bit signal D0′, which toggles in response to an input clock signal, e.g., clock signal CLKi, is generated in step 1050. In step 1060, a second bit signal, e.g., bit signal D[1], is generated. The second bit signal has a 90-degree phase difference with respect to the first bit signal. Other more significant bit signals, e.g., bit signals D[2], D[3], . . . , are generated in step 1070. The other more significant bit signals D[2], D[3], . . . toggle in response to the second bit signal or an inversion signal of the first bit signal.
FIG. 20 contains a flow chart illustrating a process of analog-to-digital conversion, according to an embodiment of the inventive concept. Referring to FIG. 20, an analog input signal to be converted to digital is received in step 1080. An LSB is generated in a DDR counter in step 1090. At least one other bit is generated in the DDR counter in step 1100. A first stage of the DDR counter, i.e., the stage containing the LSB, is edge triggered on either the rising or falling edge of a clock input signal in step 1110. The second stage of the DDR counter, i.e., the stage containing the other bit of the DDR counter, is edge triggered on the other of the rising or falling edge of the clock input signal in step 1120.
FIG. 21 contains a flow chart illustrating a process of analog-to-digital conversion, according to another embodiment of the inventive concept. Referring to FIG. 21, a comparison signal is generated by comparing an analog signal to be converted with a reference signal, in step 1130. An input clock signal is generated based on a clock signal and the comparison signal in step 1140. A first bit signal, e.g., bit signal D0′, is generated in step 1150. The first bit signal is toggled in response to the input clock signal, e.g., input clock signal CLKi. A second bit signal, e.g., bit signal D[1], is generated in step 1160. The second bit signal toggles in response to the input clock signal. The second bit signal has a 90-degree phase difference with respect to the first bit signal. Other more significant bit signals, e.g., bit signals D[2]. D[3], . . . , are generated in step 1170. The other more significant bit signals toggle in response to the second bit signal or an inversion signal of the first bit signal.
FIG. 22 contains a flow chart illustrating a process of processing an image in a CMOS image sensor according to an embodiment of the inventive concept. Referring to FIG. 22, a pixel array is provided in step 1180. An analog input signal to be processed, including analog-to-digital converted, is received from the pixel array in step 1190. An LSB of a count value is generated in a DDR counter used in the analog-to-digital conversion in step 1200. At least one other bit, e.g., a more significant bit of the count value in the counter, is generated in step 1210. The first stage of the counter, i.e., the stage containing the LSB, is clock edge triggered on one of the rising and falling edges of a clock input signal, as shown in step 1220. That is, the clock input of the first stage of the counter is edge triggered on either the rising edge or the falling edge of the clock input signal. The second stage of the counter, i.e., the stage containing another bit of the value in the counter, is clock edge triggered on the other of the rising and falling edge of the clock input signal, as shown in step 1230.
FIG. 23 contains a flow chart illustrating a process of correlated double sampling (CDS), which can be carried out, for example, in a CMOS image sensor, according to an embodiment of the inventive concept. Referring to FIG. 23, counting is performed with respect to a first analog signal, which indicates a reset value, i.e., an offset value, in step 1240. The counting can be performed in accordance with the counting processes described herein with reference to FIG. 18 or 19. In step 1250, a second counting, with respect to a second analog signal, which can indicate a sensed value, is performed in step 1250. The second counting can also be performed in accordance with the counting processes described herein with reference to FIG. 18 or 19. In step 1260, a digital signal corresponding to a difference between the first and second analog signals is generated based on results of the counting of the first analog signal and the counting of the second analog signal.
In another aspect, the inventive concept is directed to a CMOS image sensor using any of the embodiments of the DDR counters described herein. FIG. 24 is a schematic block diagram of an embodiment of a CMOS image sensor according to the inventive concept. Referring to FIG. 24, the CMOS image sensor 1300 includes a pixel array 1306 for storing pixel data for an image in a two-dimensional array or matrix of rows and columns. The sensor 1300 is controlled by a control circuit 1312, which controls pixel row and column addressing. To that end, the control circuit 1312 is coupled to a row address decoder 1302 and a column address decoder 1310. The control circuit 1312 controls the address decoders for selecting the appropriate row and column lines for pixel readout and the row and column driver circuitry 1304 and 1308, which apply driving voltages to the drive transistor of the selected row and column lines. The row address decoder 1302 decodes pixel row addresses from the control circuit 1312 and addresses the decoded array rows via the row driver 1304. The column address decoder 1310 decodes pixel column addresses from the control circuit 1312 and addresses the decoded array columns via the column driver 1308. Pixels in each row in the array can all turn on at the same time by a row select line, and the pixel of each column can be selectively output by a column select line. The row lines are selectively activated by the row driver 1304 in response to the row address decoder 1302, and the column select lines are selectively activated by the column driver 1308 in response to the column address decoder 1310. Analog pixel image data signals are forwarded by the column driver 1308 to sample/hold circuitry 1314. The sampled and held analog image data signal is forwarded to the analog-to-digital converter (ADC) 1316 where the analog image data is converted to digital format. The ADC 1316 may include any of the embodiments of DDR counters of the inventive concept described herein in using correlated double sampling (CDS) to perform the analog-to-digital conversion. The converted digital data signal is forwarded by the ADC 1316 to image signal processing (ISP) circuitry 1318 and then to a serializer 1320. The signal can then be output to peripheral devices.
FIG. 25 is a schematic block diagram of a CMOS image sensor using column analog-to-digital conversion, according to another embodiment of the inventive concept. Referring to FIG. 25, the CMOS image sensor 1400 includes a pixel array 1406 for storing pixel data for an image in a two-dimensional array or matrix of rows and columns of pixels 1407. The sensor 1400 is controlled by a control circuit 1412, which controls pixel row and column addressing. To that end, the control circuit 1412 is coupled to a row address decoder 1402 and a column address decoder 1410. The control circuit 1412 controls the address decoders for selecting the appropriate row and column lines for pixel readout and the row and column driver circuitry 1404 and 1408, which apply driving voltages to the drive transistor of the selected row and column lines. The row address decoder 1402 decodes pixel row addresses from the control circuit 1412 and addresses the decoded array rows via the row driver 1404. The column address decoder 1410 decodes pixel column addresses from the control circuit 1412 and addresses the decoded array columns via the column driver 1408. Pixels in each row in the array can all turn on at the same time by a row select line, and the pixel of each column are selectively output by a column select line. The row lines are selectively activated by the row driver 1404 in response to the row address decoder 1402, and the column select lines are selectively activated by the column driver 1408 in response to the column address decoder 1410. Analog pixel image data signals are forwarded by the column driver 1408 to sample/hold circuitry in the form of CDS circuitry 1420 in the analog-to-digital converter (ADC) circuitry 1416 where the analog image data is converted to digital format. The ADC 1416 includes, for each column, CDS circuitry 1422, 1424, 1426, 1428, which provide the sampled and held analog image data signal to the noninverting inputs of comparators 1432, 1434, 1436, 1438, respectively. A ramp generator circuit 1430 provides the ramp signal of the analog-to-digital conversion to the inverting inputs of the comparators 1432, 1434, 1436, 1438. Under the control of a counter enable or counter control circuit 1448, the counter 1450 performs the analog-to-digital conversion counting while the ramp voltage signal and the analog image data signal from the CDS circuits 1422, 1424, 14226, 1428 are compared by the comparators 1432, 1434, 1436, 1438, respectively. Each column is provided with its own counter 1450, and the counter 1450 can be any of the embodiments of DDR counters described herein in connection with the inventive concept. When the analog-to-digital conversion using CDS is complete, the digital value in the counter 1450 representing the conversion value is stored for each column in latches or buffers 1440, 1442, 1444, 1446. The converted digital data signal is forwarded by the ADC 1416 to image signal processing (ISP) circuitry 1418 and then to a serializer. The signal can then be output to peripheral devices.
The DDR counters and analog-to-digital conversion using CDS according to the inventive concept are also applicable to charge-coupled devices (CCDs). FIGS. 26A-26C include schematic functional block diagrams of CCD systems using the analog-to-digital conversion and DDR counting of the inventive concept. It should be noted that any of the embodiments of DDR counters described herein are applicable to the CCD systems of FIGS. 26A-26C. The various CCD systems of FIGS. 26A-26C are distinguished by their methods of transferring charge. The system 1500 of FIG. 26A utilizes interline transfer; the system of FIG. 26B utilizes frame transfer; and the system 1700 of FIG. 26C utilizes frame interline transfer. Each of the systems includes an array of CCDs, referred to in the figures as “image areas” 1510, 1610, 1710. The analog image data from the image areas is read out and transferred for processing to ADCs 1520, 1620, 1720. The ADC circuitry and processes 1520, 1620, 1720 shown in FIGS. 1500, 1600, 1700 can be of the type described herein in connection with the various embodiments of ADC using CDS, and are applicable to single ADC, as opposed to column ADC. The counters used in the ADC circuits and processes can be any of the DDR counters described herein in connection with the various embodiments.
FIG. 27 contains a schematic block diagram of an image signal processing system 1800 according to embodiments of the inventive concept. Referring to FIG. 27, the image signal processing system 1800 includes an image sensor block 1810, an image processor 1820 and external devices 1850. The image sensor block 1810 includes a CMOS pixel array 1811, timing and control circuitry 1812 and ADC circuitry 1813. The ADC 1813 can be any of the embodiments of ADC circuitry described herein in connection with the various embodiments of the inventive concept. The ADC 1813 can include any of the embodiments of DDR counters used in analog-to-digital conversion performing CDS described herein.
The external devices can include JPEG and storage interface 1851 and display interface 1852.
The image processor 1820 can include various functional components such as color demosaicing 1821, color correction 1822, auto white balance 1823, gamma correction 1824, color space conversion 1825, auto white balance control 1826, auto exposure control 1827, a control register 1829, a serial interface 1830 and an external interface 1828. The output of the ADC 1813, generated in accordance with the inventive concept as described herein, is forwarded to the image processor 1830, specifically, the color demosaicing 1821, for example, for further processing.
FIG. 28 contains a schematic block diagram of a digital still camera according to embodiments of the inventive concept. Referring to FIG. 28, the digital still camera 1900 includes an array of CCD or CMOS sensors or pixels 1910, which are connected to a digital camera front end signal processor 1920. The front end signal processor 1920 is connected to a processor 1930. The digital still camera 1900 includes various other components as illustrated in FIG. 28. The front end signal processor 1920 and/or the processor 1930 contain the ADC circuitry performing the analog-to-digital conversion using dual CDS using any of the various embodiments of DDR counters described herein in connection with the inventive concept.
FIG. 29 contains a schematic block diagram of a general processing system according to embodiments of the inventive concept. The general processing system 2000 of FIG. 29 may be, or may be used in, for example, a computer system, a camera system, a scanning system, a machine vision system, a vehicle navigation system, a video telephone system, a surveillance camera system, and auto focus system, a star tracker system, a motion detection system, an image stabilization system, a medical imaging device or system, a data compression system for high-definition television, or other such system. All of these systems can be configured to include or use the present inventive concept as described herein.
Referring to FIG. 29, the processing system 2000 includes one or more CPUs 2001 connected to a local bus 2004. Also connected to the local bus 2004 is a device 2006 which can include one or more memory controllers 2002 and/or one or more primary bus bridges 2003, which can be integrated as a single device 2006 as shown or can be separate devices. A cache memory 2005 interfaces with the memory controller 2002, and can be the only cache memory in the system 2000. Alternatively, other devices, for example, CPUs 2001, may also include cache memories, which may form a cache hierarchy with cache memory 2005. Where the processing system 2000 includes peripherals or controllers which are bus masters or which support direct memory access (DMA), the memory controller 2002 may implement a cache coherency protocol. The memory controller 2002 is also interfaced with one or more memory buses 2007, which interface with one or more memory components 2008, which may include one or more memory devices 2200 and 2009. The plurality of memory buses 2007 may be operated in parallel, or different address ranges may be mapped to different memory buses 2007. The memory components may be, for example, memory cards and/or memory modules. The memory modules can be, for example, single inline memory modules (SIMMs) and/or dual inline memory modules (DIMMs). In the case of SIMM or DIMM, the additional devices 2009 may be a configuration memory, such as a serial presence detect (SPD) memory.
The primary bus bridge 2003 is connected to at least one peripheral bus 2010. Various devices, such as peripherals or additional bus bridges, may be coupled to the peripheral bus 2010. These other devices may include a storage controller 2011, a miscellaneous I/O device 2014, a secondary bus bridge 2015, a multimedia processor 2018, and/or a legacy device interface 2020. The primary bus bridge 2003 may also be connected to one or more special purpose high-speed ports 2022. In a personal computer, for example, the special purpose port might be an accelerated graphics port (AGP), used to couple a high-performance video card to the processing system 2000.
The storage controller 2011 can couple one or more storage devices 2013, via a storage bus 2012, to the peripheral bus 2010. For example, the storage controller 2011 may be a SCSI controller and storage devices 2013 may be SCSI discs.
The I/O device 2014 can be any sort of peripheral. For example, the IO device 2014 may be a local area network interface, such as an Ethernet card.
The secondary bus bridge 2015 may be used to interface additional devices via another bus to the processing system 2000. For example, the secondary bus bridge 2015 may be a universal serial port (USB) controller used to couple USB devices 2017, 2100, including, for example, an image pick-up device, such as a CCD, CMOS image sensor, digital still camera according to embodiments of the inventive concept, to the processing system 2000.
The multimedia processor 2018 may be a sound card, a video capture card, or any other type of media interface, which may be coupled to additional deices, such as speakers 2019.
The legacy device interface 2020 can be used to couple legacy devices 2021 to the system 2000. For example, older-style keyboards and mice can be coupled to the system 2000 via the legacy device interface 2020.
The processing system 2000 illustrated in FIG. 29 is only an exemplary processing system with which the inventive concept may be used. While FIG. 29 illustrates a processing architecture especially suitable for a general purpose computer, such as a personal computer or a workstation, it should be recognized that well-known modifications can be made to configure the processing system 2000 to become more suitable for use in a variety of applications. For example, many electronic devices that require processing may be implemented using a simpler architecture, which relies on a CPU 2001, coupled to memory components 2008 and/or memory devices 2200. These electronic devices may include, but are not limited to, audio/video processors and recorders, gaming consoles, digital television sets, wired or wireless telephones, navigation devices (including systems based on the global positioning system (GPS) and/or inertial navigation), and digital cameras and/or recorders. The modifications may include, for example, elimination of unnecessary components, addition of specialized devices or circuits, and/or integration of a plurality of devices.
While the present inventive concept has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present inventive concept as defined by the following claims.

## Claims

1. A double data rate (DDR) counter, comprising:
a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input;
at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied at the second clock input; and
a circuit for determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter.

2. The DDR counter of claim 1, further comprising a plurality of second stages for generating a plurality of other bits of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied to the respective clock input.

3. The DDR counter of claim 1, wherein the plurality of clock signals includes an inverted clock signal and a non-inverted clock signal.

4. The DDR counter of claim 1, wherein the counter is a ripple counter.

5. The DDR counter of claim 1, wherein the first stage is positive edge triggered and the second stage is negative edge triggered.

6. The DDR counter of claim 1, wherein the counter is one of a bit-wise inversion counter and an up/down counter.

7. The DDR counter of claim 6, wherein the counter comprises a storage circuit for storing a status of the LSB of the plurality of bits.

8. The DDR counter of claim 1, further comprising a glitch filter for removing a glitch.

9. A double data rate (DDR) counter, comprising:
a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input;
at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied at the second clock input; and
a logic circuit for performing a logical operation on an output of the first stage and an output of the second stage to generate the LSB of the plurality of bits.

10. The DDR counter of claim 9, wherein the logical operation is an XOR operation.

11. A double data rate (DDR) counter, comprising:
a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input;
at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal at the second clock input; and
a count stop circuit for stopping counting of the counter, wherein the count stop circuit comprises a multiplexer for selecting one of the positive and negative outputs of the second stage to be used in generating the LSB of the plurality of bits.

12. The DDR counter of claim 11, wherein the selection by the multiplexer is made in response to an input signal.

13. The DDR counter of claim 12, wherein the input signal can have one of two possible states, the selection by the multiplexer being made in response to the input signal changing states.

14. An analog-to-digital converter (ADC) using correlated double sampling, the ADC comprising:
an input for receiving an input signal; and
a double data rata (DDR) counter comprising:
a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input; and
at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied at the second clock input; wherein
a value in the DDR counter is related to an analog-to-digital conversion of the input signal,
wherein the counter further comprises a circuit for determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter.

15. The ADC of claim 14, wherein the counter further comprises a plurality of second stages for generating a plurality of other bits of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied to the respective clock input.

16. A CMOS image sensor, comprising:
a pixel array; and
an analog-to-digital converter (ADC) comprising a double data rate (DDR) counter, the DDR counter comprising:
a first stage for generating a least significant bit (LSB) of a plurality of bits of the counter, the first stage having a first clock input and being edge-triggered on one of a rising edge and a falling edge of a signal applied at the first clock input; and
at least one second stage for generating another bit of the plurality of bits of the counter, the at least one second stage having a second clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied at the second clock input,
wherein the counter further comprises a circuit for determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter.

17. The CMOS image sensor of claim 16, wherein the counter further comprises a plurality of second stages for generating a plurality of other bits of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied to the respective clock input.

18. A method of counting in a double data rate (DDR) counter, comprising:
generating a least significant bit (LSB) of a plurality of bits of the counter in a first stage of the counter, the first stage having a first clock input;
generating another bit of the plurality of bits of the counter in at least one second stage of the counter, the at least one second stage having a second clock input;
edge-triggering the first stage of the counter on one of a rising edge and a falling edge of a signal applied at the first clock input;
edge-triggering the second stage of the counter on the other of a rising edge and a falling edge of a signal applied at the second clock input; and
determining a value of a count in the counter and selecting one of a plurality of clock signals for a second counting process of the counter.

19. The method of claim 18, further comprising generating a plurality of other bits of the counter in a plurality of second stages of the counter, each of the plurality of second stages having a respective clock input and being edge-triggered on the other of a rising edge and a falling edge of a signal applied to the respective clock input.