# Patent

## Title
Programmable pulse width discriminator

## Abstract

Disclosed is a programmable pulse width discriminator circuit operable to receive a set of parameters from a user and indicate when an input signal satisfies conditions set by the user-defined parameters. The input signal is sampled by the pulse width discriminator circuit to detect a desired state of the input signal. The user may set the parameters such that the pulse width discriminator indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is (i) greater than a first threshold value, (ii) less than a second threshold value, or (iii) between the first and second threshold values. In these embodiments, the user sets the first and second threshold values and selects which set of conditions are indicated by the output of the circuit.

## Background
BACKGROUND
1. Technical Field
The present invention relates generally to integrated circuits designed to detect an input signal and, more specifically, to an integrated circuit having programmable criteria for receiving an input signal and determining whether the amount of time that the input signal is high is less than a value, longer than a value, or within a range of values.
2. Introduction
A pulse width discriminator circuit measures the pulse width of an incoming signal and determines whether or not the pulse width is within an acceptable range. Conventional pulse width discriminator circuitry depends on monostable circuits often using R-C time constants which require analog components that are difficult to integrate within the conventional pulse width discriminator circuits. Such monostable circuitry provides limited functionality and has a narrow range of applicability. Therefore, there exists a need for a pulse width discriminator circuit that provides a more flexible approach that is fully operable in the digital domain.
SUMMARY
The present disclosure provides a programmable pulse width discriminator circuit operable to receive a set of parameters from a user and indicate when a received input signal satisfies conditions set by the user-defined parameters. The input signal is sampled by the pulse width discriminator circuit to detect a desired state of the input signal. In one embodiment, the user can set the parameters such that the pulse width discriminator circuit indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is greater than a first threshold value. In another embodiment, the user can set the parameters such that the pulse width discriminator circuit indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is less than a second threshold value. In yet another embodiment, the user can set the parameters such that the pulse width discriminator circuit indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is between the first threshold value and the second threshold value. In the aforementioned embodiments, the user sets the first and second threshold values and determines which set of conditions will be indicated by the output of the pulse width discriminator circuit.
The foregoing and other features and advantages of the present disclosure will become further apparent from the following detailed description of the embodiments, read in conjunction with the accompanying drawings. The detailed description and drawings are merely illustrative of the disclosure, rather than limiting the scope of the invention as defined by the appended claims and equivalents thereof.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments are illustrated by way of example in the accompanying figures, in which like reference numbers indicate similar parts, and in which:
FIG. 1 illustrates a circuit diagram representing an example embodiment of the disclosed pulse width discriminator circuit;
FIG. 2 illustrates a flowchart generally describing operation of a first portion of the pulse width discriminator circuit illustrated in FIG. 1;
FIG. 3 illustrates a flowchart generally describing operation of a second portion of the pulse width discriminator circuit illustrated in FIG. 1;
FIGS. 4A, 4B, and 4C illustrate waveform drawings of example embodiments of the pulse width discriminator circuit illustrated in FIG. 1; and
FIG. 5 illustrates a circuit diagram representing an additional embodiment of the disclosed pulse width discriminator circuit having a deglitcher coupled to its input.



DETAILED DESCRIPTION OF THE DRAWINGS
The present disclosure provides a programmable pulse width discriminator circuit operable to receive a set of parameters from a user and indicate when a received input signal satisfies conditions set by the user-defined parameters. The input signal is sampled by the pulse width discriminator circuit to detect a desired state of the input signal. In one embodiment, the user can set the parameters such that the pulse width discriminator circuit indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is greater than a first threshold value. In another embodiment, the user can set the parameters such that the pulse width discriminator circuit indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is less than a second threshold value. In yet another embodiment, the user can set the parameters such that the pulse width discriminator circuit indicates the condition wherein the number of consecutive samples for which the input signal is the desired state is between the first threshold value and the second threshold value.
FIG. 1 illustrates an example embodiment of a pulse width discriminator circuit 100 in accordance with the present disclosure, wherein the desired state of the input signal is logic high. The pulse width discriminator circuit 100 samples a received input signal 102, counts the number of consecutive samples for which the input signal 102 is the desired state (i.e., logic high), and produces an output signal 104 indicating whether or not the number of consecutive samples for which the input signal 102 is high satisfies a set of conditions defined by the user. It should be appreciated by those skilled in the art that although the disclosed pulse width discriminator circuit 100 illustrated in FIG. 1 is designed to count the number of consecutive samples for which the input signal is logic high, in other embodiments, the disclosed pulse width discriminator circuit may be designed to count the number of consecutive samples for which the input signal is logic low. As such, it should be understood that the subsequent disclosure is also applicable to such other embodiments.
For purposes of explaining operation of the disclosed pulse width discriminator, the circuit 100 illustrated in FIG. 1 is divided into two sections. The first section 150 is primarily designed to measure the pulse width of the sampled input signal 102 (i.e., count the number of consecutive samples for which the input signal is the desired state), and is explained in conjunction with the flowchart 200 illustrated in FIG. 2. The second section 180 is primarily designed to interpret the pulse width measured by the first section 150 in accordance with the parameters provided by the user to indicate whether the measured pulse width satisfies the conditions dictated by the user-defined parameters. The second section 180 is explained in conjunction with the flowchart 300 illustrated in FIG. 3.
In accordance with the example embodiment provided by the circuit 100 illustrated in FIG. 1, an input signal 102 is coupled to the control input of a multibit input multiplexer 106. The input multiplexer 106 is coupled to a first register 108 through a multibit bus and, responsive to the input signal 102, loads a value into the first register 108. In this particular example embodiment, the desired state of the input signal 102 is logic high. Therefore, when the input signal 102 is logic high, the input multiplexer 106 loads an incrementation 110 of the value stored in the first register 108; and when the input signal 102 is logic low, the input multiplexer 106 loads a reference value 112 into the register 108. In the example embodiment described herein, the reference value 112 is zero, but it should be understood that the reference value 112 may be any value determined by the user.
The first register 108 illustrated in FIG. 1 is controlled by a clock signal 114, wherein the clock signal 114 sets the time scale for sampling the input signal 102. For example, if the desired sampling interval, or resolution, is 1 us, then the clock signal 114 is set to 1 MHz. When activated by the clock signal 114, the register 108 stores the multibit value received from the input multiplexer 106 and presents this value on a data bus 116. Thus, the input signal 102 is sampled on the clock signal 114, wherein for each sample for which the input signal 102 is logic high, the value stored in the register 108 is incremented, and for each sample for which the input signal 102 is logic low, the reference value 112 is stored in the register 108. In essence, the first register 108 counts the number of consecutive samples of the input signal 102 for which the input signal 102 is the desired state (i.e., high), thereby measuring the pulse width of the sampled input signal 102. When the sampled input signal 102 is not the desired state, the value in the register 108 is reset to the reference value 112.
The first register 108 may have any value preloaded into it upon reset (i.e., clock cycle 0) of the circuit 100. When the value preloaded in the first register 108 is zero, the value in the register 108 represents the number of consecutive samples for which the input signal 102 is the desired state. When the value preloaded in the first register 108 is greater than zero, the number of consecutive samples for which the input signal 102 is the desired state is the difference between the value currently stored in the first register 108 and the preloaded register value. Similarly, when the reference value 112 loaded into the first register 108 is greater than zero, the number of consecutive samples for which the input signal 102 is the desired state (i.e., the measured pulse width) is the difference between the value currently stored in the first register 108 and the reference value 112. This may be beneficial to the user because the user may effectively shift the pulse width comparison window or range, as described in greater detail below, without changing the first and second threshold values simply by adjusting the reference value 112 loaded in the register 108.
As illustrated in FIG. 1, the data bus 116 is connected to a first comparator 118, a second register 120, and is also fed back to the high input of the input multiplexer 106 where it is incremented to provide the aforementioned incremented first register value 110. It should be appreciated that in embodiments wherein the desired sampled input signal state is logic low, the data bus 116 would be fed back to the low input of the input multiplexer 106, and the reference value 112 would be connected to the high input of the input multiplexer 106. The first comparator 118 receives both the reference value 112 and the value stored in the register 108 (from the data bus 116). The first comparator 118 compares the two values and produces a first comparator output signal 122. When the value stored in the register 108 is greater than the reference value 112, first comparator output signal 122 is logic high; otherwise, the first comparator output signal 122 is logic low. The first comparator output signal 122 is received at an AND gate 124 along with an inverted state 126 of the input signal 102. When the input signal 102 goes low and the value stored in the register 108 is greater than the reference value 112, the output of the AND gate 124 goes high, which sets the enable bit of the second register 120. When the enable bit is set, the second register 120 stores the value received from the data bus 116 at the next clock cycle. Thus, when activated by the clock signal 114, the second register 120 stores the value that was stored in the register 108 at the previous clock cycle.
The foregoing disclosure provides a detailed description of the operation of the first section 150 of the pulse width discriminator circuit 100 illustrated in FIG. 1. A more general description of the operation of the first section 150 of the circuit 100 is provided by the flowchart 200 illustrated in FIG. 2. At step 202, the input signal 102 is sampled, and step 204 determines whether or not the sampled input signal 102 is the desired state (i.e., logic high). If the input signal 102 is sampled at the desired state, then the value stored in the first register 108 is incremented in step 206. If the input signal 102 is not sampled at the desired state, the value stored in the first register 108 is compared to the reference value 112 in step 208. If the value stored in the first register 108 is greater than the reference value 112, then the value stored in the first register 108 is then stored in the second register 120 in step 210, and then the reference value 112 is stored in the first register 108 in step 212. It should be understood that the comparison occurring in step 208 happens regardless of whether or not the input signal 102 is sampled at the desired state. However, if the input signal 102 is sampled at the desired state, then the result of the comparison occurring in step 208 is irrelevant because the AND gate 124 is not set. Therefore, this comparison is not illustrated in the flowchart 200 in FIG. 2 when the input signal 102 is sampled at the desired state.
Referring again to FIG. 1, the value stored in the second register 120 is the measured pulse width of the sampled input signal 102, and is output on a multibit bus as the measured pulse width 128. The measured pulse width 128 is then analyzed by the circuitry included in the second section 180 of the pulse width discriminator circuit 100. As illustrated in FIG. 1, the measured pulse width 128 is received at a first threshold comparator 130 and a second threshold comparator 132, wherein the inputs to the first threshold comparator 130 and the second threshold comparator 132 are received on multibit buses. In addition to the measured pulse width 128, the first threshold comparator 130 receives a first threshold value 134. The first threshold value 134 is a user-programmable input (also referred to herein as a parameter) that is compared to the measured pulse width 128 to determine whether or not the measured pulse width 128 satisfies a set of conditions indicated by the parameters set by the user (e.g., whether the measured pulse width 128 is less than the first threshold value 134). Thus, the first threshold comparator 130 compares the measured pulse width 128 to the first threshold value 134, and produces a high first threshold comparator output signal 136 when the measured pulse width 128 is less than the first threshold value 134; otherwise, the first threshold comparator 130 produces a low first threshold comparator output signal 136. Accordingly, the first threshold comparator output signal 136 indicates whether or not the measured pulse width 128 is less than the first threshold value 134.
The second threshold comparator 132 receives both the measured pulse width 128 and a second threshold value 138. The second threshold value 138 is a user-programmable input that is compared to the measured pulse width 128 to determine whether or not the measured pulse width 128 satisfies a set of conditions indicated by the parameters set by the user (e.g., whether the measured pulse width 128 is greater than the second threshold value 138). Thus, the second threshold comparator 132 compares the measured pulse width 128 to the second threshold value 138, and produces a high second threshold comparator output signal 140 when the measured pulse width 128 is greater than the second threshold value 138; otherwise, the second threshold comparator 132 produces a low second threshold comparator output signal 140. Accordingly, the second threshold comparator output signal 140 indicates whether or not the measured pulse width 128 is greater than the second threshold value 138.
The first threshold comparator output signal 136 and second threshold comparator output signal 140 are received as inputs at both an XNOR gate 142 and a threshold multiplexer 144. The threshold multiplexer 144 is controlled by a threshold input signal 146, wherein the value of the threshold input signal 146 is a user-programmable input. When the threshold input signal 146 is logic high, the threshold multiplexer 144 couples the first threshold comparator output signal 136 to a low input of a window multiplexer 148. When the threshold input signal 146 is logic low, the threshold multiplexer 144 couples the second threshold comparator output signal 140 to the low input of the window multiplexer 148. Thus, when the threshold input signal 146 is logic high, the threshold multiplexer 144 selects the first threshold comparator output signal 136 as its output, wherein this output would indicate whether or not the measured pulse width 128 is less than the first threshold value 134. When the threshold input signal 146 is logic low, the threshold multiplexer 144 selects the second threshold comparator output signal 140 as its output, wherein this output would indicate whether or not the measured pulse width 128 is greater than the second threshold value 138.
The XNOR gate 142 is coupled to the high input of the window multiplexer 148 and produces a high XNOR gate signal 150 when the first threshold comparator output signal 136 and second threshold comparator output signal 140 are the same. If the first threshold comparator output signal 136 and second threshold comparator output signal 140 are different, the XNOR gate 142 produces a low XNOR gate signal 150. The XNOR gate 142 is intended to produce a high XNOR gate signal 150 when the measured pulse width 128 is within a range defined by the first threshold value 134 and the second threshold value 138. The foregoing description appears to suggest that the measured pulse width 128 must be less than the first threshold value 134 and greater than the second threshold value 138 (i.e., both the first threshold comparator output signal 136 and second threshold comparator output signal 140 are high) for the output of the XNOR gate 142 to be true. However, due to the logic of an XNOR gate, the XNOR gate 142 also produces a high XNOR gate signal 150 if the first threshold comparator output signal 136 and second threshold comparator output signal 140 are low. However, for this condition to be true, the second threshold value 138 would have to be a value greater than or equal to the first threshold value 134. Therefore, regardless of whether the first threshold value 134 is less than, greater than, or equal to the second threshold value 138, the XNOR gate 142 will still produce a high XNOR gate signal 150 when the measured pulse width 128 falls within the range (window) defined by the first threshold value 134 and the second threshold value 138. As such, the XNOR gate signal 150 indicates whether or not the measured pulse width 128 is within the range defined by the first threshold value 134 and the second threshold value 138. It should be appreciated by those skilled in the art that, in an alternate embodiment, an AND gate may be used in place of the XNOR gate 150 illustrated in FIG. 1 provided that the first threshold value 134 is always greater than the second threshold value 138.
The window multiplexer 148 is controlled by a user-programmable window input signal 152 and, based on the window input signal 152, selects one of its inputs as the output signal 104 of the pulse width discriminator circuit 100. Thus, when the window input signal 152 is logic high, the XNOR gate signal 150 is selected by the window multiplexer 148 as the pulse width discriminator output signal 104. When the window input signal 152 is logic low, the signal selected by the threshold multiplexer 144 is selected by the window multiplexer 148 as the pulse width discriminator output signal 104.
In accordance with the present disclosure, the user inputs a set of runtime parameters to the pulse width discriminator circuit 100, wherein the parameters include at least the following: (i) the first threshold value 134, (ii) the second threshold value 138, (iii) the threshold input signal 146, and (iv) the window input signal 152. It should be understood that the parameters mentioned above are provided by the user to control operation of the pulse width discriminator circuit, and as such, how the pulse width discriminator output signal 104 should be interpreted. However, the user may also provide other data used to control the operation of the pulse width discriminator. Such other data may include, but is not limited to, the reference value 112, a value stored (i.e., preloaded) in the first register 108 at clock cycle 0, and a value stored in the second register 120 at clock cycle 0.
In summary, when the user inputs a logic high window input signal 152, the pulse width discriminator circuit 100 is programmed to output a high output signal 104 when the measured pulse width 128 is within the range, or window, defined by the first threshold value 134 and the second threshold value 138. When the user inputs a logic low window input signal 152 and a logic low threshold input signal 146, the pulse width discriminator circuit 100 is programmed to output a high output signal 104 when the measured pulse width 128 is greater than the second threshold value 138. When the user inputs a logic low window input signal 152 and a logic high threshold input signal 146, the pulse width discriminator circuit 100 is programmed to output a high output signal 104 when the measured pulse width 128 is less than the first threshold value 134. Accordingly, by setting these parameters (i.e., the threshold input signal 146 and window input signal 152), the user is controlling the condition that is indicated by the output signal 104 of the pulse width discriminator circuit 100, and thus, how the pulse width discriminator circuit output signal 104 should be interpreted.
The foregoing disclosure provides a detailed description of the operation of the second section 180 of the pulse width discriminator circuit 100 illustrated in FIG. 1. A more general description of the operation of the second section 180 of the circuit 100 is provided by the flowchart 300 illustrated in FIG. 3. As shown in FIG. 3, the measured pulse width 128 is received in step 302, and is compared to the first threshold value 134 in step 304. If the measured pulse width 128 is less than the first threshold value 134, then the first threshold comparator 130 produces a high first threshold comparator output signal 136 in step 306. Otherwise, the first threshold comparator 130 produces a low first threshold comparator output signal 136 in step 308. In step 310, the measured pulse width 128 is compared to the second threshold value 138. If the measured pulse width 128 is greater than the second threshold value 138, then the second threshold comparator 132 produces a high second threshold comparator output signal 140 in step 312. Otherwise, the second threshold comparator 132 produces a low second threshold comparator output signal 140 in step 314. In step 316, first threshold comparator output signal 136 is compared to the second threshold comparator output signal 140. If the first threshold comparator output signal 136 is equal to the second threshold comparator output signal 140, then the XNOR gate 142 produces a high XNOR gate signal 150 in step 318. Otherwise, the XNOR gate 142 produces a low XNOR gate signal 150 in step 320. In the example embodiments described herein, the parameters provided by the user are set before operation of the pulse width discriminator circuit 100 begins. However, it should be appreciated by those skilled in the art that the user-defined parameters may be changed during operation of the pulse width discriminator without departing from the scope of the present disclosure.
Step 322 checks if the threshold input signal 146 is high. If the threshold input signal 146 is high, then the threshold multiplexer 144 selects the first threshold comparator output signal 136 as its output in step 324. If the threshold input signal 146 is low, then the threshold multiplexer 144 selects the second threshold comparator output signal 140 as its output is step 326. Step 328 checks if the window input signal 152 is high. If the window input signal 152 is high, then the window multiplexer 148 selects the XNOR gate signal 150 as its output in step 330, and thus, the pulse width discriminator output signal 104 indicates whether or not the measured pulse width 128 is within the range defined by the first and second threshold values 134 and 138. If the window input signal 152 is low, then, in step 332, the window multiplexer 148 selects as its output the threshold comparator output signal selected by the threshold multiplexer 144. If the threshold multiplexer 144 selected the first threshold comparator output signal 136 as its output in step 324, then the pulse width discriminator output signal 104 indicates whether or not the measured pulse width 128 is less than the first threshold value 134. If the threshold multiplexer 144 selected the second threshold comparator output signal 140 as its output in step 326, then the pulse width discriminator output signal 104 indicates whether or not the measured pulse width 128 is greater than the second threshold value 138.
Reference is now made to FIGS. 4A, 4B, and 4C for purposes of discussing example implementations further illustrating the operation of the disclosed pulse width discriminator circuit 100 illustrated in FIG. 1 as discussed above. FIGS. 4A, 4B, and 4C each illustrate a waveform drawing 400 of an example input signal 102, clock signal 114, first threshold comparator output signal 136, second threshold comparator output signal 140, XNOR gate signal 150, threshold input signal 146, window input signal 152, and the corresponding pulse width discriminator output signal 104. Additionally, FIGS. 4A, 4B, and 4C each illustrate the reference value 112, the value stored in the first register 108, the value stored in the second register 120 (measured pulse width 128), the first threshold value 134, and the second threshold value 138. For FIGS. 4A, 4B, and 4C, the reference value 112 is zero, the first threshold value 134 is set to ten, and the second threshold value 138 is set to seven. Additionally, both the first register 108 and the second register 120 are presumed to be preloaded with a value of zero upon reset (i.e., clock cycle 0). As such, the first threshold comparator output signal 136 is set to high at clock cycle 0, the second threshold comparator output signal 140 is set to low, and the XNOR gate signal 150 is also set to low.
As illustrated in the waveforms 400 of FIGS. 4A, 4B, and 4C, the input signal 102 is sampled at a logic low state for clock cycles 0 and 1 before being sampled at a logic high state at clock cycle 2. Since the logic high state is the desired state of the input signal 102, the first register 108 begins counting the number of consecutive samples for which the input signal 102 is logic high. The input signal 102 remains high for nine consecutive samples. As such, the first register 108 reaches a value of nine before the input signal 102 goes low between clock cycles 10 and 11. At clock cycle 10, the value in the first register 108 is greater than the reference value 112 (zero). Therefore, when the input signal 102 goes low, the inverted input signal 126 goes high causing the AND gate 124 to set the enable bit of the second register 120. At the next clock cycle (clock cycle 11), the value stored in the first register 108 is stored in the second register before reference value 112 is stored in the first register 108. Thus, the value in the first register 108 is reset to zero (the reference value 112) at clock cycle 11.
The measured pulse width 128 is now set to nine at clock cycle 11. Therefore, the first threshold comparator 130 compares the measured pulse width 128 to the first threshold value 134 (ten). The first threshold value 134 is greater than the measured pulse width 128, so the first threshold comparator output signal 136 remains high. Additionally, the second threshold comparator 132 compares the measured pulse width 128 to the second threshold value 138 (seven). The second threshold value 138 is less than the measured pulse width 128, so the second threshold comparator output signal 140 goes high at clock cycle 11. Since both the first threshold comparator output signal 136 and the second threshold comparator output signal 140 are high, the XNOR gate signal 150 goes high at clock cycle 11.
Between clock cycles 12 and 13 the reference value 112 is changed to eight. Therefore, when the low input signal 102 is sampled at clock cycle 13, the reference value 112 is loaded into the first register 108. At clock cycle 15, the input signal 102 is sampled at a high state, and the first register 108 begins counting, starting at the reference value 112, eight. Since the input signal 102 is sampled at a high state for four consecutive samples, the value stored in the first register 108 reaches twelve at clock cycle 18. The input signal 102 goes low again between clock cycles 18 and 19, so the first register value (twelve) is stored in the second register 120 at clock cycle 19 before the first register 108 is reset to the reference value 112, eight.
The measured pulse width 128 is now set to twelve at clock cycle 19. Therefore, the first threshold comparator 130 compares the measured pulse width 128 to the first threshold value 134. The first threshold value 134 is less than the measured pulse width 128, so the first threshold comparator output signal 136 goes low at clock cycle 19. Additionally, the second threshold comparator 132 compares the measured pulse width 128 to the second threshold value 138. The second threshold value 138 is less than the measured pulse width 128, so the second threshold comparator output signal 140 remains high. Since the first threshold comparator output signal 136 and the second threshold comparator output signal 140 are different, the XNOR gate signal 150 goes low at clock cycle 19.
It should be noted that, in the example embodiments disclosed in accordance with the pulse width discriminator circuit 100 illustrated in FIG. 1, the values in the first register 108 and the second register 120 are stored at the rising edge of the clock signal 114. Therefore, an incremented first register value 110 is only loaded into the first register 108 during the current clock cycle and, thus, is not stored in the first register 108 until the rising edge of the next clock cycle. Similarly, the value stored in the first register 108 and output on the data bus 116 is only loaded in the second register 120 during the current clock cycle, and is not stored until the next clock cycle in which the enable bit of the second register 120 is set, as discussed above. Although the present embodiment illustrates a pulse width discriminator circuit 100 synchronized with the rising edge of the clock signal 114, the present disclosure is not limited to this, or other, user-defined preferences provided herein. Therefore, various changes and alternate implementations of the present disclosure may be made without departing from the scope of the disclosure as set forth in the claims below. For example, the value loaded in the first register 108 during a clock cycle may be stored in the first register 108 at the end of the current clock cycle.
In order to illustrate operation of the pulse width discriminator circuit 100 for different input parameters, the waveforms 400 illustrated in FIGS. 4A, 4B, and 4C are identical except for the threshold input signal 146, the window input signal 152, and the output signal 104. As such, the waveforms illustrated in FIGS. 4A, 4B, and 4C show how the output signal 104 changes when the different parameters are provided to the pulse width discriminator circuit 100. In the example embodiment illustrated in FIG. 4A, the window input signal 152 is logic high. Therefore, the XNOR gate signal 150 is selected by the window multiplexer 148 as the output signal 104 of the pulse width discriminator circuit 100. As such, the output signal 104 of the embodiment illustrated in FIG. 4A indicates whether or not the measured pulse width falls within a range defined by the first and second threshold values.
In the example embodiment illustrated in FIG. 4B, the window input signal 152 is logic low. Therefore, the output signal 104 is determined based upon the comparator output signal selected by the threshold multiplexer 144. Since the threshold input signal 146 is low, the second threshold comparator output signal 140 is selected as the output signal 104 of the pulse width discriminator circuit 100. Therefore, the output signal 104 of the embodiment illustrated in FIG. 4B indicates whether or not the measured pulse width is greater than the second threshold value 138.
Finally, in the example embodiment illustrated in FIG. 4C, the window input signal 152 is also low, and thus, the output signal 104 is determined based upon the value of the threshold input signal 146. Since the threshold input signal 146 is high, the first threshold comparator output signal 136 is selected as the output signal 104 of the pulse width discriminator circuit 100. Therefore, the output signal 104 of the embodiment illustrated in FIG. 4C indicates whether or not the measured pulse width is less than the first threshold value 134.
In other embodiments, such as that illustrated in FIG. 5, the disclosed pulse width discriminator circuit 500 may include deglitcher circuitry 510 for filtering the input signal 502, thus providing a glitch-free input signal 504 to the first section of the pulse width discriminator circuit. In this embodiment, the deglitcher circuitry 510 may be any deglitcher circuit designed to receive an input signal 502 and produce an output signal 504 that is a glitch-free reconstruction of the input signal 502, and may include, for example, a chain of flip-flops clocked on a fixed time interval, or any other deglitcher circuitry known in the art. In embodiments having spatial limitations, the deglitcher circuitry 510 may include a deglitcher circuit that uses a reduced amount of memory, such as the deglitcher circuit having a programmable hysteresis disclosed in U.S. patent application Ser. No. 12/980,534, entitled “Deglitcher with Programmable Hysteresis,” and filed Dec. 29, 2010, the disclosure of which is incorporated herein by reference. In this embodiment, the deglitcher circuit 510 uses a register to reduce the number of memory elements required to sample an input signal 502, and produces a time-shifted, glitch-free reconstruction 504 of the input signal 502.

## Claims

1. A pulse width discriminator circuit operable to sample an input signal and produce an output signal, the pulse width discriminator circuit comprising:
a first multiplexer operable to receive an input signal and load a first value in a first memory when said input signal is a first logic state, and load a second value in said first memory when said input signal is a second logic state, wherein said loaded value is stored in said first memory responsive to a clock signal;
a first comparator operable to compare said stored first memory value to said second value;
a second memory operable to receive said stored first memory value and, responsive to said clock signal, store said stored first memory value when said stored first memory value is greater than said second value and said input signal is said second logic state;
a second comparator operable to compare said stored second memory value to a first threshold value and output a second comparator signal having a third logic state or a fourth logic state;
a third comparator operable to compare said stored second memory value to a second threshold value and output a third comparator signal having a fifth logic state and a sixth logic state; and
logic circuitry operable to generate an output signal indicative of a relationship between said stored second memory value and at least one of said first and second threshold values.

2. The pulse width discriminator circuit as set forth in claim 1, wherein said logic circuitry comprises:
gate circuitry operable to receive said second comparator signal and said third comparator signal, and output a gate signal having a seventh logic state when said second comparator signal is equal to said third comparator signal, and said gate signal having an eighth logic state when said second comparator signal is not equal to said third comparator signal;
a second multiplexer operable to receive a first control signal and select said second comparator signal when said first control signal is a ninth logic state, and select said third comparator signal when said first control signal is a tenth logic state; and
a third multiplexer operable to receive a second control signal and select said gate signal when said second control signal is an eleventh logic state, and select the signal selected by said second multiplexer when said second control signal is a twelfth logic state;
wherein the signal selected by said third multiplexer is said output signal generated by said logic circuitry.

3. The pulse width discriminator circuit as set forth in claim 1, wherein said first value loaded in said first memory is an incrementation of said stored first memory value.

4. The pulse width discriminator circuit as set forth in claim 1, wherein said second comparator signal is said third logic state when said first threshold value is greater than said stored second memory value.

5. The pulse width discriminator circuit as set forth in claim 1, wherein said third comparator signal is said fifth logic state when said second threshold value is less than said stored second memory value.

6. The pulse width discriminator circuit as set forth in claim 1, wherein at least one of said second value loaded in said first memory, said first threshold value, and said second threshold value are user-programmable.

7. The pulse width discriminator circuit as set forth in claim 1, further comprising deglitcher circuitry operable to filter said input signal.

8. The pulse width discriminator circuit as set forth in claim 1, wherein said first logic state is opposite said second logic state, said third logic state is opposite said fourth logic state, and said fifth logic state is opposite said sixth logic state.

9. The pulse width discriminator circuit as set forth in claim 2, wherein at least one of said first control signal and said second control signal are user-programmable.

10. The pulse width discriminator circuit as set forth in claim 2, wherein said seventh logic state is opposite said eighth logic state, said ninth logic state is opposite said tenth logic state, and said eleventh logic state is opposite said twelfth logic state.

11. An apparatus comprising:
first circuitry operable to sample an input signal and count the number of consecutive samples for which the input signal is a first logic state, said first circuitry further operable to store said number of consecutive samples in a memory when said input signal changes from said first logic state to a second logic state; and
second circuitry operable to compare said number of consecutive samples to first and second threshold values and produce a first output signal having a third logic state when said number of consecutive samples is less than said first threshold value and having a fourth logic state when said number of consecutive samples is greater than or equal to said first threshold value, produce a second output signal having a fifth logic state when said number of consecutive samples is greater than said second threshold value and having a sixth logic state when said number of consecutive samples is less than or equal to said second threshold value, and produce a third output signal having a seventh logic state when said number of consecutive samples is between said first and second threshold values and an eighth logic state when said number of consecutive samples is not between said first and second threshold values.

12. The apparatus as set forth in claim 11, wherein said first circuitry is further operable to reset said count when said input signal is sampled at said second logic state.

13. The apparatus as set forth in claim 11, further comprising:
a first controller operable to select one of said first output signal or said second output signal in response to a first control signal being a ninth logic state or a tenth logic state; and
a second controller operable output said third output signal or said output signal selected by said first controller in response to a second control signal being an eleventh logic state or a twelfth logic state.

14. The apparatus as set forth in claim 13, wherein said first controller selects said first output signal when said first control signal is said ninth logic state.

15. The apparatus as set forth in claim 13, wherein said first controller selects said second output signal when said first control signal is said tenth logic state.

16. The apparatus as set forth in claim 13, wherein said second controller outputs said third output signal when said second control signal is said eleventh logic state.

17. The apparatus as set forth in claim 13, wherein said second controller outputs the output signal selected by said first controller when said second control signal is said twelfth logic state.

18. The apparatus as set forth in claim 13, wherein said ninth logic state is opposite said tenth logic state, and said eleventh logic state is opposite said twelfth logic state.

19. The apparatus as set forth in claim 13, wherein at least one of said first control signal and said second control signal are user-programmable.

20. The apparatus as set forth in claim 11, wherein said first logic state is opposite said second logic state, said third logic state is opposite said fourth logic state, said fifth logic state is opposite said sixth logic state, and said seventh logic state is opposite said eighth logic state.

21. The apparatus as set forth in claim 11, wherein at least one of said first threshold value and said second threshold value are user-programmable.

22. The apparatus as set forth in claim 11, further comprising deglitcher circuitry operable to filter said input signal.

23. A method for evaluating a measured pulse width of a sampled input signal, the method comprising:
sampling an input signal;
counting the number of consecutive samples for which the input signal is a first logic state;
comparing the number of consecutive samples to a first threshold value and producing a first comparison signal;
comparing the number of consecutive samples to a second threshold value and producing a second comparison signal;
comparing the first comparison signal to the second comparison signal and producing a third comparison signal;
receiving a first control signal and a second control signal;
outputting said third comparison signal when said first control signal is a second logic state;
outputting said first comparison signal when said first control signal is a third logic state and said second control signal is a fourth logic state; and
outputting said second comparison signal when said first control signal is said third logic state and said second control signal is a fifth logic state.

24. The method as set forth in claim 23, wherein counting the number of consecutive samples for which the input signal is said first logic state further comprises:
loading a first value in a first memory when said input signal is said first logic state;
loading a second value in said first memory when said input signal is not said first logic state;
storing said loaded value in said first memory responsive to a clock signal;
comparing said stored first memory value to said second value;
receiving said stored first memory value at a second memory; and
storing said stored first memory value in said second memory responsive to said clock signal when said stored first memory value is greater than said second value and said input signal is not said first logic state;
wherein said first value loaded in said first memory is an incrementation of said stored first memory value.

25. The method as set forth in claim 23, wherein said first comparison signal is a sixth logic state when said number of consecutive samples is less than said first threshold value, otherwise said first comparison signal is a seventh logic state opposite said sixth logic state.

26. The method as set forth in claim 25, wherein said second comparison signal is an eighth logic state when said number of consecutive samples is greater than said second threshold value, otherwise said second comparison signal is a ninth logic state opposite said eighth logic state.

27. The method as set forth in claim 26, wherein said third comparison signal is a tenth logic state when said first comparison signal is said sixth logic state, and said second comparison signal is said eighth logic state, otherwise said third comparison signal is an eleventh logic state opposite said tenth logic state.

28. The method as set forth in claim 23, wherein at least one of said first threshold value, said second threshold value, said first control signal, and said second control signal are user-programmable.

29. The method as set forth in claim 23, wherein said second logic state is opposite said third logic state, and said fourth logic state is opposite said fifth logic state.

30. The method as set forth in claim 23, further comprising filtering said input signal.