Programmable logic device incorporating voltage comparator
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates generally to programmable logic devices, and more particularly to a programmable logic device having on-chip analog functional capabilities. 
     2. Description of the Related Art 
     Programmable logic devices (PLD), including the programmable array logic (PAL) device and the programmable gate array, are integrated circuits which can be configured by the user to perform logic functions on digital inputs. PLDs offer digital designers a flexible and cost-effective implementation for complex logic circuits and the best alternative amongst a spectrum of products ranging from fully customized integrated circuits to standard, dedicated-purpose devices. 
     A typical PAL includes a programmable array of AND gates, and a fixed array of OR gates. In other programmable logic devices, both the AND and the OR arrays are programmable. The outputs of such combinatorial logic arrays used in programmable logic circuits may be coupled directly to an I/O pin, or input to clockable registers. In many devices, the combinatorial logic array outputs are registered and are fed back to the inputs of the combinatorial array. Some programmable logic circuits also include a clockable input synchronizing register located between an input pin and one of the inputs to the combinatorial array. PAL is a trademark of Advanced Micro Devices, Inc. See, Advanced Micro Devices, Inc. PAL® Device Handbook, (1988). 
     The programmable logic device has thus given the digital designer a means for reducing circuit size through higher integration, ease of design and documentation by software specification, and the security of keeping the design proprietary. 
     It is desirable to provide a device which allows a user the ability to perform programmable output functions on variable amplitude inputs. Part of the reason for the lag in development between the analog and digital worlds is that designers typically try to accomplish analog functions by performing an analog-to-digital conversion at the earliest possible point in the data signal path to implement the solution in the digital realm, while performing a digital-to-analog conversion as the final step before outputting the signal. 
     A single integrated circuit having both analog and digital functional components working together to accomplish a programmable function possesses great flexibility and programmability by allowing programmable digital solutions to be derived from analog inputs. 
     One relatively simple programmable/analog type device is the X9MME E 2  POT Digitally Controlled Potentiometer by Xicor Corporation, Milpitas, California, which provides a 99-increment resistor ladder controlled by a digitally decoded counter, providing a variable resistance load based on the count value. The device includes the capacity to store a count value in non-volatile memory on power down. 
     SUMMARY OF THE INVENTION 
     The invention comprises a single integrated circuit including programmable logic having a plurality of inputs and a plurality of outputs, with at least one input of the programmable logic coupled to an on-chip analog comparator. 
     One aspect of the invention utilizes a voltage comparator having programmable hysteresis for setting the output state switching thresholds of the comparator. 
     In another aspect of the invention, the programmable logic comprises a programmable combinatorial array having a programmable AND array and a fixed OR array. The integrated circuit further comprises an output block including a plurality of flip-flops and output buffers coupled to at least one I/O pin for selectively determining the state of the I/O pin. 
     In yet another aspect the invention, the programmable combinatorial array includes a plurality of AND array outputs, divided into three subsets, for input to three pairs of OR gates which comprise the fixed OR plane of the device. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be described with respect to the particular embodiments thereof. Other objects, features and advantages of the invention will become apparent with reference to the specification and drawings in which: 
     FIG. is a chip-level block diagram of the integrated circuit of the present invention; 
     FIG. 2 is a block diagram of the preferred embodiment of the analog voltage comparator utilized in the present invention; 
     FIG. 3A is a graphic representation of the test (non-inverting) input voltage V i (+) and the reference (inverting) input voltage V i (-) versus time in a typical analog voltage comparator; 
     FIG. 3B is a graphic representation of the output voltage V 0  of a typical analog voltage comparator with reference to FIG. 3A and the test and reference voltages; 
     FIG. 4A is a graphic representation of the test (non-inverting) input voltage V i (+) and the reference (inverting) input voltage V i (-) versus time in the preferred embodiment of the analog voltage comparator utilized in the present invention; 
     FIG. 4B is a graphic representation of the output voltage V 0  with reference to the input voltages of FIG. 3A for the preferred embodiment of the analog voltage comparator of the present invention; 
     FIG. 5 is a graphic representation of the hysteresis effect of the output voltage V 0  versus the test input voltage V i (+) of the voltage comparator; and 
     FIG. 6 is a schematic diagram of the logic shift circuitry utilized in the preferred embodiment of the analog comparator shown in FIG. 2. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention will be described herein with reference to the preferred embodiments, however, it should be understood that numerous variations and modifications will be understood by those skilled in the art as within the context of the invention. 
     The integrated circuit shown in FIG. 1 includes six analog functional elements 10 providing inputs to a programmable combinatorial array 50. The programmable combinatorial array 50 includes a programmable AND array 60 which provides output terms (62, 63, 64) to an output logic array comprising three pairs of OR gates 65. The output logic array provides registered and combinatorial outputs to six device output pins 55 via an output buffer 75. The analog functional elements 10, in combination with the programmable logic circuitry, combinatorial array 50 and output logic 65, 75, provide a device which combines analog device functionality with the programmability and usefulness of digital logic on a single chip. Specifically, the programmable logic device of the present invention combines the functions of a programmable array logic device (PAL) with the functions of a comparator to produce a versatile device for use in both analog and analog-to-digital interface applications. 
     In one aspect of the invention, each comparator 20 includes internally programmable hysteresis. These voltage comparators are useful in zero cross detection, frequency doubling, voltage controlled oscillators, line driving and receiving operations, and magnetic pickup detection. These functions are combined on a single integrated circuit device with the programmability and versatility of a PAL capable of performing digital functions from analog inputs, thereby yielding single analog-to-digital input comparisons, digital function outputs from zero cross detections, and analog-to-digital conversions. 
     Each analog functional element 10 includes programmable voltage comparator 20, test voltage V i (+) (non-inverting) input pin 22 coupled to a non-inverting comparator input 23, and reference voltage V i (-) (inverting) input pin 24, coupled via multiplexer 25 to inverting comparator input 25. Analog comparator 20 includes an output 27 which provides a logic state signal input to programmable combinatorial array 50. Specifically, output 27 is coupled to input buffer 27a which provides the logic state signal on output 27 and its compliment to programmable AND array 50. 
     Analog comparator 20 is coupled to programmable hysteresis circuit 26 which programs output 27 of comparator 20 to exhibit a hysteresis effect with respect to a test voltage applied to non-inverting input 23. Programmable hysteresis circuit 26 allows the chip user to program a hysteresis function into comparator 20. The programmable hysteresis function sets the switching thresholds of comparator 20 such that a high/low output voltage transition occurs when the test input voltage V i (+) is at a first amplitude and low/high output voltage logic state transition occurs when test input voltage V i (+) is at a second amplitude. FIG. depicts programmable hysteresis circuit 26 as an on-chip circuit as part of analog functional element 10. However, it is within contemplation of the invention to provide programmable hysteresis circuit 26 as an off-chip element. The practical applications and preferred embodiments for implementing programmable hysteresis circuit 26 are discussed in further detail below with respect to FIGS. 2-6. 
     Multiplexer 28 allows inverting input pin 24 to be configured in two distinct ways. In one alternative, input pin 24 comprises the normal inverting input 25 to the comparator 20. In another alternative, inverting input pin 24 is coupled to input buffer 28a and acts as a direct digital input, providing a logic state signal and its inverse to the programmable combinatorial array 50. In the digital array input mode, the inverting input voltage V i (-) is set to an internal reference value midway between analog element supply voltages V s (+) and V s (-). Further, when inverting input pin 24 is in the digital array input mode, non-inverting input pin 22 can be configured as either an analog or digital input, depending upon the application. In either case, inverting input voltage V i (-) is a fixed reference. Still further, in the case where non-inverting input pin 22 is configured as a digital input, if hysteresis is programmed into comparator 20 (as discussed below), non-inverting input 22 will act as a conventional Schmitt-trigger input to combinatorial array 50. 
     As noted above, programmable combinatorial array 50 comprises programmable AND array 60, fixed input OR array comprising three pairs of OR gates 65, an output block comprised of a number of D-type flip-flops 70, and programmable output buffer/macrocell 75. 
     Programmable AND array 60 includes 44 input terms comprising 22 signal inputs and their complements. The 22 input signals comprise six analog element 10 outputs, one clock/strobe input 15, six reference voltage inputs from multiplexer 28, three inputs from registers 70, and six inputs from output buffer/macrocell 75. 
     The product term outputs of AND array 60 are configured to comprise inputs to the fixed input OR plane (62, 63, 64), act as SET/RESET triggers 68 for flip flops 70, and act as output enable (O/E) signals to output buffer/macrocell 75. 
     The product term outputs configured as inputs to the fixed OR array are grouped into three sets 62, 63, 64, corresponding to three pairs 65 of OR gates 66, 67 comprising the fixed OR plane. Each OR gate pair 65 shares either first product term set 62, second product term set 63, or third product term set 64 comprised of eight, ten, or twelve product term outputs, respectively. 
     The output of OR gate 66 is combinatorial and the output of OR gate 67 is registered. In one configuration, when one of the product terms in the first 62, second 63, or third 64 product term set is programmed to give a function to either OR gate 66 or 67, that particular product term cannot be programmed to provide a functional output from the other OR gate in a particular OR gate pair 65. While it is technically possible to drive both inputs, this orientation provides a faster configuration for the PLD. This use of product term sharing allows the distribution of product terms to be better organized thereby yielding less overall redundancy. The same functionality in conventional PAL architecture would require an array twice the size, because each output would require its own set of product terms. Further, pairing of combinatorial (OR gate) 66 and registered (OR gate) 67 outputs using product term sharing allows up to three analog functional elements 10 to be programmed as individual, combinatorial voltage comparators with the use of an input strobe signal on clock input line 15. In such an arrangement, each OR gate output uses one product term, leaving the remaining shared terms for the registered output. This gives the device the versatility to perform integrated analog/digital solutions, and mix analog and digital solutions in applications with the availability of individual comparators. 
     Clock input line 15 couples a clock/strobe signal to programmable voltage comparator 20, programmable AND array 60 (via input buffer 15a), and programmable output buffer 75. The signal on clock input line 15 allows the device programmer to latch the output state of comparator 20. This feature is useful when the programmable logic device is to be used as a sample-and-hold circuit, where clock input line 15 is linked to the switches of the sampling circuit. Clock input 15 also supplies a clock signal to the edge-triggered D-type flip-flops (output registers) 70 of array 50. 
     One problem associated with the use of an analog voltage comparator in the device is a resulting increased load to the programmable logic device&#39;s analog supply voltage (V s ) resulting from changes in the voltage level of output 27. The increased load can alter reference voltage V i (-), thereby causing oscillation of the comparator&#39;s output signal and incongruous inputs to the programmable AND array 60. 
     The input signal on clock input line 15 can be used to maintain the stability of the programmable logic device during high-speed operation. If the enable time of the signal is shorter than the total signal propagation delay through the differential input stage 35 of voltage comparator 20, (see FIG. 2 and accompanying description), then the input to the differential stage 35 will be &#34;frozen&#34; before any voltage change in the output of programmable logic device occurs as a result of the comparison. 
     The programmable hysteresis function of the comparator, discussed below with reference to FIGS. 2-6 is another method of overcoming input signal oscillations, but the effect of the positive feedback used therein can cause time penalties at high speed. 
     Also shown in FIG. 1, are D-type flip-flop registers 70 are coupled to the outputs of OR gate 67, and include non-inverting Q and outputs. For each flip-flop 70, non-inverting output Q is coupled to output buffer 75 and inverting output Q is coupled via an input buffer 70a as an input to AND array 60. Two outputs of AND array 60 comprise PRESET and RESET signals via output lines 68 to flip-flops 70. The clock inputs of flip-flops 70 are also coupled to the clock input line 15 as discussed above. 
     Programmable output buffer/macrocell 75 allows the user to selectively provide the OR array outputs to six device pins 55. Typically, output buffer/macrocell 75 includes a plurality of multiplexers to selectively couple each device pin 55 to a plurality of input buffers 75a allowing pins 55 to be used as direct inputs to AND array 60. As is shown in FIG. 1, the combinatorial output of OR gate 66 and the registered output of OR gate 67 (via register 70) are coupled to output buffer 75. Six product term outputs of AND array 60 comprise output enable signals (OE) input to output buffer/macrocell 75. Output buffer/macrocell 75 thereby allows device pins 55 to be used as outputs from, or as inputs to, the programmable logic device. During the programming state, the user selects the output drive required for the particular application of the programmable logic device. Output buffer/macrocell 75 has the capability of dedicating each OR array output as an open collector or a totem pole, although use as an open collector can be utilized only when each device pin 55 is defined as a dedicated output. 
     FIG. 2 is a block diagram showing programmable voltage comparator 30 which may be utilized as an alternative to programmable voltage comparator 20 and programmable hysteresis circuit 26 shown in FIG. 1. It should be noted that programmable voltage comparator 30 shown in FIG. 2 includes differential gain amplifier 35 25 which has both non-inverting output 36 and inverting output 37 for supplying non-inverting output voltage V o (+)  and inverting output voltage V o (-), respectively. Thus, the need for input buffer 27a (shown in FIG. 1) is eliminated when programmable voltage comparator 30 is utilized in the programmable logic device. 
     A typical analog voltage comparator outputs a first voltage level representing a logic level HIGH output when the voltage applied to its test (non-inverting) input exceeds the voltage applied to its reference (inverting) input, and a second voltage level representing a logic level LOW output when the test voltage is less than the reference voltage. Both programmable voltage comparators 20 (FIG. 1) and 30 (FIGS. 2 and 6) utilized in the device allow for user-programmable hysteresis to generate an output as shown in FIG. 5. FIG. 5 reflects the condition whereby the test voltage required to initiate a logic level LOW-to-HIGH transition on the comparator output is greater than the test voltage required to initiate a logic level HIGH-to-LOW transition. 
     Essentially, programmable hysteresis circuit 26, shown in FIG. 2, moves the true comparison reference voltage V i (-) of programmable voltage comparator 30 to a lower apparent level such that input test signal V i (+) must exceed both the true reference level and the apparent reference levels (V i (-) +V H ) to produce an output change. For purposes of this specification, the difference between the true and the apparent input voltages is termed the hysteresis voltage V H . The effect of hysteresis on the output voltage is shown in FIG. 5 which is a plot of output voltage V o (+) as a function of the non-inverting voltage V i (+). 
     As shown in FIG. 2, programmable voltage comparator 30 includes non-inverting voltage V i (+) input 23, and inverting voltage V i (-) input 25 for receiving a test voltage and a reference voltage, respectively. Non-inverting input 23 and inverting input 25 are coupled to input buffers 33 and 34. The output of each input buffer 33 and 34 is coupled to level shift circuits 40 and 41 which generate output voltages V d (+) and V d (-), respectively, proportional to input voltages V i (+) and V i (-). Level shift output voltages V d  are input to differential gain stage amplifier 35. 
     Non-inverting output 36 of differential amplifier 35 is coupled by a feedback line 38 to logic shift circuit 40. Likewise, differential amplifier inverting output 37 is coupled by a feedback line 39 to level shift circuit 41. Feedback lines 38 and 39 supply feedback voltages V fb (+) and V fb (-) to level shift circuits 40 and 41, which cause level shift circuits 40 and 41 to vary output voltages V d (+) and V d (-) responsive to the state of the output voltages V o (+) and V o (-) of differential amplifier 35. As discussed in detail below, by varying the levels of V d (+) and V d (-), the desired hysteresis effect is achieved. Differential amplifier 35 also includes a clock signal input for receiving the signal on clock/strobe input line 15. 
     The switching of voltage comparator 30 of the present invention, and the effect of the level shift circuits 40 and 41 thereon, will be described herein with reference to FIGS. 3 and 4. 
     FIGS. 3A and 3B represent the input voltage and output voltage relationships for a typical comparator. FIG. 3A is a graph of input voltages V i (+) and V i (-) in relation to time. FIG. 3B shows the value of output voltage V o  corresponding to the input voltage values shown in FIG. 3A. Comparing FIGS. 3A and 3B, one notes that output voltage V o  is at a logic level LOW state (-V s ) at all points where test voltage V i (+) is less than reference voltage V i (-). Output voltage V o  achieves a logic level HIGH state (+V s ) at all times when test voltage V i (+) exceeds reference voltage V i (-). As will be understood following the discussion below, FIGS. 3A and 3B also describe the situation wherein programmable fuses 43 are set such that inverting amplifier 42 (FIG. 6) is programmed such that the programmable hysteresis circuit 26 exhibits no effect on output voltages V d (+) and V d (-). 
     FIGS. 4A and 4B graphically show the effect of level shift circuits 40 and 41 on output 27 of programmable voltage comparator 30 of the present invention. FIG. 4A is a graph of level shift circuit output voltages V d (+) and V d (-) versus time. FIG. 4B is a graph of comparator output voltage V o (+) corresponding to differential stage input voltages (and level shift output voltages) V d (+) and V d (-). FIGS. 4A and 4B are shown in relation to the switching states of a typical comparator based on input voltages V i (+) and V i (-) shown in FIG. 3A. 
     In the comparator waveforms shown in FIGS. 3A and 3B, output voltage V o  changes at the point where V i (+) equals V i (-) ; in comparator 30, output state switching occurs when V d (+) equals V d (-). When no hysteresis is present, V d (+) and V d (-) will be proportional to V i (+) and V i (-), respectively. In the presence of hysteresis, level shift circuits 40 and 41 act as follows: when output voltage V o (+) is at a logic level HIGH state, inverted output V o (-) and V FB (-) are at a logic level LOW state and V d (+) remains at a level proportional to V i (+) while level shift circuit 41, responsive to V FB (-), decreases V d (-) a value of V H  ; correspondingly, when output voltage V o (+) and V FB (+) are logic level LOW and the inverted output voltage V o (-) is logic level HIGH, level shift circuit 40, responsive to V FB (+) decreases V.sub. d(+) by a value of V H . 
     With reference to FIG. 4A, at time t 1  output voltage V o (+) is at a logic level LOW and inverted output voltage V o (-) is a logic level HIGH. V FB (+) is also LOW causing V d (+)  to be less than V i (+) by a value of V H  V i(+);-V H  ; correspondingly, reference V d (-) is proportional to V i (-) . At time t 2 , when an increasing V d (+) (corresponding to V i (+) -V H ), equals V d (-), comparator output V o (+) changes from a logic level LOW state to a logic level HIGH state. This results in an increase in the amplitude of V d (+) and a decrease in the amplitude of V d (-), since feedback voltage V fb (-) causes level shift circuit 41 to decrease V d (-) by V H  and V d (+) becomes proportional to V i (+). At time t 3 , when a decreasing V d (+) equals V d (-) a second logic level shift occurs, V o (+) returns to a logic level LOW state and V o (-) to a logic level HIGH state, thus causing the amplitude of V d (-) to increase and the amplitude of V d (+)  to decrease, by V H . 
     It should be recognized by those skilled in the art that while the above discussion refers to a single hysteresis voltage V H , separate amplitudes of V H  can be provided for each level shift circuit 40, 41. 
     To examine the hysteresis process in a different context, consider the conditions of the waveforms in FIGS. 3 and 4. Initially, in FIG. 3 prior to time t 1  : 
     
         V.sub.i(+) &lt;V.sub.i(-) 
    
     
         V.sub.o(+) =&#34;0&#34; 
    
     and 
     
         V.sub.o(-) =&#34;1&#34; 
    
     As shown in FIG. 4, the feedback of the &#34;1&#34; on V o (-) deactivates level shift circuit 41 on V i (-) and the feedback of the &#34;0&#34; on V o (+) activates level shift circuit 40 on V i (+) creating the conditions shown in FIG. 4A, prior to time t 1  where: 
     
         V.sub.d(-) αV.sub.i(-) 
    
     and 
     
         V.sub.d(+) αV.sub.i(+) -V.sub.H. 
    
     This effect means satisfying the condition 
     
         V.sub.i(+) =V.sub.i(-) +V.sub.H 
    
     to produce the condition for switching V o (+) from &#34;0&#34; to &#34;1&#34;; e.g. 
     
         V.sub.d(+) =V.sub.d(-) 
    
     for an output switch on V o  from &#34;0&#34; to &#34;1.&#34; When the switch condition occurs, the output V o (+) will change from &#34;0&#34; to &#34;1&#34; (at time t 2 , FIG. 4A). As V o (+) becomes &#34;1,&#34; the feedback V o (+) deactivates the level shift (41) on V i (+), and the feedback of the new &#34;0&#34; on V o (-) activates the level shift (40) on V i (-) creating the conditions 
     
         V.sub.d(+) αV.sub.i(+) 
    
     and 
     
         V.sub.d(-) αV.sub.i(-) -V.sub.H. 
    
     In order to now produce a switch on V o (+) from &#34;1&#34; to &#34;0&#34; the input condition must be 
     
         V.sub.i(+) =V.sub.i(-) -V.sub.H 
    
     to gain the condition for output switching of 
     
         V.sub.d(+) =V.sub.d(-). 
    
     When the output V o (+) changes from &#34;1&#34; to &#34;0&#34; at time t 3 , V d (+) reduces and V d (-) increases by the predetermined voltage V H . 
     The aforementioned changes to level shift output voltages V d (+) and V d (-) result in the requirement that test voltage V i (+) be increased by the level of hysteresis voltage V H  to produce the condition of output change wherein V d (+) equals V d (-). Thus, output voltage V o  achieves the desired hysteresis effect with respect to input voltages V i (+) and V i (-) as shown in FIG. 5. 
     As discussed above, this programmable hysteresis effect is one method for reducing the effect of small oscillatory signals on slow-changing input signals from causing switching oscillations on the response of the voltage comparator at the input switching point. 
     The programmable hysteresis function described above may, when the on-chip comparators 20 are independently operated as simple comparators, be actuated by a positive feedback network external to the integrated circuit chip. However, comparator 30 with internal hysteresis is required when the array is not configured for independent comparator operation, such as in flash analog/digital and line receiving applications. 
     The preferred embodiment of level shift circuits 40 and 41 is shown in FIG. 6. The circuit shown in FIG. 6 will produce the desired hysteresis effect shown in FIG. 5 when used on both non-inverting input 31 and inverting input 32. 
     As shown in FIG. 6, inverting and non-inverting feedback voltages V fb (+) and V fb (-) are input to an inverting amplifier 42 having a gain of -A fb . Inverting amplifier 42 includes programmable fuses 43 which allow the user to selectively program gain -A fb  of inverting amplifier 42. As discussed below, by programming the output gain of inverting amplifier 42, the amount of hysteresis on output voltage V o  of the differential amplifier 35 can be selected by the user. The output of inverting amplifier 42 is provided to summing node 44. The summed voltage from summing node 44 is provided as an input to amplifier 46, having a gain of +A fb , which provides an amplified output voltage coupled to the gate of transistor Q1. Either comparator input voltage, V i (+) or V i (-), is coupled to the base of second transistor Q 2 . Transistor Q 2  has a collector coupled to the PLD&#39;s analog supply voltage V s  and an emitter coupled to a resistor R. Resistor R is also coupled to the collector of transistor Q.sub. 1, and the emitter of transistor Q 1  is coupled to common (-V s ). Resistor R and the collector of transistor Q1 are also coupled to summing node 44 and output 45. As shown in FIG. 2, output 45 and is bias voltage V bias  are also coupled to summing node 44. In operation, if V FB  s is a logic HIGH state, the signal is provided through amplifiers 42 and 46 to the base of transistor Q 1  and the voltage at V d  is proportional to V 1 . If V FB  is a logic level LOW state, the voltage at the base of Q 2 , and consequently the current in the collector of Q 2  will be higher than in the situation where V FB  is HIGH. The programmer can select the value of -A fb  for inverting amplifier 42 using fuse-programmable logic 43 and thereby adjust the current in the collector of Q 2  and the value of V H . By increasing the value of -A fb  when V fb  =&#34;0&#34;, the collector current in transistor Q 1  will increase, thus reducing the value of V d  and hence implementing increasing V H . If fuses 43 are selected to provide a zero effect from feedback voltage V fb , then V d (-) αV i (-), V d (+) αV i (+) and no hysteresis will be present on the output of differential amplifier 35. 
     Although fuses 43 are shown as the means for programming inverting amplifier 42, it will be understood by those skilled in the art that alternatives to programmable fuses may be utilized as, for example, EPROM, EEPROM or Anti-fuse cells. Furthermore, although transistors Q1 and Q2 have been described with reference to bipolar technology, it will be understood by those skilled in the art that alternative types of transistors Q1 and Q2 may be utilized within the scope of the present invention as, for example, CMOS. 
     In the above discussion of FIG. 6, the level shift circuit provides V d  αV 1  -V H  when the V fb  input is LOW. It should be recognized by those skilled in the art that level shift circuits 40 and 41 can be readily designed to be responsive to logic level HIGH output voltages to provide the V d  output. In addition, it is within contemplation of the invention to provide V d  outputs which increase the input voltages by V H , e.g., V d  αV i  +V H . 
     The aforementioned programmable logic device results in a combination of the functions of a programmable array logic device (PAL) with the functions of a comparator to produce a versatile device for use in both analog and analog-to-digital interface applications. In the preferred embodiment of the invention, each comparator 20 utilizing internally programmable hysteresis is useful in zero cross detection, frequency doubling, voltage controlled oscillators, line driving and receiving operations, and magnetic pickup detection. These functions can be combined with the versatility and programmability of PALs to provide digital functional outputs from analog inputs; the device can provide single analog-to-digital input comparisons, functional outputs from zero cross detections, and analog-to-digital conversion to provide digital inputs for the PAL. 
     The invention has been described with respect to the particular embodiments thereof. Numerous variations are possible as will be apparent to a person of ordinary skill in the art after reading the present specification For example, though the invention has been particularly described with respect to bipolar technology, other types of semiconductor technology, such as CMOS, are equally applicable. Further, programmable hysteresis is described as enabled by fuse-programmable logic, other types of programming technology, such as EEPROMs are equally compatible. Still further, although the output blocks and a particular OR gate array structure have been particularly defined for the PAL architecture, numerous variations on the configuration of the OR array, the output blocks, and the particular method of product term sharing are possible and within the scope of the present invention. Furthermore, numerous sizes of AND gate arrays are within the contemplation of the invention as are any number of voltage comparator inputs. These variations and others are intended to be within the scope of the present invention as defined by the specification, claims and drawings.