Abstract:
A hazard-free digital pulse divider circuit is provided which enables an output having a period one and one-half times that of the input pulse signal. Means for selectively extending output pulse in full or half period increments are also provided.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The instant application is related to the following patent applications filed on even date herewith, all of which are assigned to the common assignee of the present invention, and all of which are hereby incorporated by referenced thereto and made a part hereof as if fully set forth herein: 
     Monolithic PC Audio Circuit, application Ser. No. 08/333,451; Modular Integrated Circuit Power Control, application Ser. No. 08/333,537; Audio Processing Chip with External Serial Port, application Ser. No. 08/333,387; Wavetable Audio Synthesizer with Delay-Based Effects Processing, application Ser. No. 08/334,462; Wavetable Audio Synthesizer with Low Frequency Oscillators for Tremolo and Vibrato Effects, application Ser. No. 08/333,564; Wavetable Audio Synthesizer with Multiple Volume Components and Two Modes of Stereo Positioning, application Ser. No. 08/333,389; Wavetable Audio Synthesizer with an Interpolation Technique for Improving Audio Quality, application Ser. No. 08/333,398; Monolithic PC Audio Circuit with Enhanced Digital Wavetable Audio Synthesizer, 08/333,536; Wavetable Audio Synthesizer with Waveform Volume Control for Eliminating Zipper Noise, application Ser. No. 08/333,562; Digital Signal Processor Architecture for Wavetable audio Synthesizer, application Ser. No. 08/334,461; Wavetable Audio Synthesizer with Enhanced Register Array, application Ser. No. 08/334,463; A Digital Decimation and Compensation Filter System, application Ser. No. 08/333,403; Digital Interpolation Circuit for Digital to Analog Converter Circuit, application Ser. No. 08/333,399; Analog to Digital Converter Circuit, application Ser. No. 08/333,535; Stereo Audio Codec, application Ser. No. 08/333,467; Digital Noise Shaper, application Ser. No. 08/333,386; and Digital to Analog Converter, application Ser. No. 08/333,460. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to digital signal divider circuits useful for providing an output digital signal having a frequency less than an input digital pulse or clock signal. More specifically, the present invention relates to variable, non-integer frequency division and hazard-free divider circuitry. The present invention is particularly useful in digital audio signal processing systems. 
     2. Brief Description of the Related Technology 
     In the prior art, frequency division in non-integer steps has been accomplished by utilizing combinatorial logic circuits to provide a propagation delay path for an input clock or digital pulse signal. The accuracy of such circuits was dependent upon the actual time delays realized in particular logic circuit elements. Actual delays, as distinguished from design specification, vary from one circuit to the next based upon process, the cell design, or environmental variables introduced in the manufacturing process or in use. Such prior art designs were therefore not hazard-free, and not reliable in applications requiring precision frequency division independent of process or environmental variables. 
     SUMMARY OF THE INVENTION 
     In contrast to the prior art, the present invention provides a digital signal divider circuit which is independent of process or environmental hazards. The circuits of the present invention provide the ability to generate an output signal having a period which is one and a half times that of the input clock or digital pulse signal, which is hazard-free. Additional embodiments of the present invention provide the ability to stretch or delay particular portions of the output signal as desired to provide enhanced signal processing capabilities particularly useful in digital audio signal processing applications. 
     The basic embodiment utilizes combinatorial logic to generate an output periodic pulse signal having a period which is 1.5 times the input clock. The output signal provided does not have a fifty percent duty cycle, and is comprised of stretched logic high or logic low states to provide the increased signal period. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects, features and embodiments of the present invention will be apparent to one familiar with the art from the following description of the preferred embodiment with reference to the accompanying drawings, in which: 
     FIG. 1 is a signal timing diagram showing the relationship of the input clock signal, output clock signal and various internally generated timing signals; 
     FIG. 2 is a top-level block diagram of the basic logic components utilized to provide the waveforms shown in FIG. 1; 
     FIG. 3 is a gate-level diagram of logic circuits utilized to provide the wave forms shown in FIG. 1; 
     FIG. 4 is a gate level diagram of a NANDGATE embodiment of the present invention; 
     FIG. 5 is a timing diagram illustrating the input/output signal relationships in an alternative embodiment wherein one phase of the output signal is stretched in one-clock increments; 
     FIG. 6 is a gate-level diagram of logic circuits utilized to provide the wave forms shown in FIG. 5; 
     FIG. 6a is a schematic illustration of a logic circuit utilized to generate signals in the present invention; 
     FIG. 7 is a timing diagram illustrating the input/output signal relationships in an alternative embodiment wherein one phase of the output signal is stretched in one-half clock increments; 
     FIG. 8 is a schematic illustration of the circuits for generating HOLD and PHASE input signals; and 
     FIG. 9 is a schematic illustration of an alternative embodiment of a portion of the circuit of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to FIG. 1, the illustrated wave forms include an input digital pulse signal CK and the desired output digital pulse signal CK 1.5, where the signal CK has a period P and the desired output signal CK 1.5 has a period 1.5 times P. In the circuit of the present invention, signal CK is an input pulse or clock signal and signal CK 1.5 is the desired output signal. Signal CK 3 is internally generated from CK 1.5, and the SET 1, SET 2 are generated by internal logic, all as described below. 
     In general, in accordance with the logic equations set forth below, the arrows in FIG. 1 illustrate the timed relationship between the pulse forms. For example, the rising edge of signal CK triggers the rising edge of signal SET 1, followed by CK 1.5 and CK 3 in sequence. The falling edge of CK triggers the falling edge of SET 1. The second rising edge of CK triggers the first falling edge of CK 1.5. The second falling edge of CK triggers the first rising edge of SET 2 followed by the second rising edge of CK 1.5 and the first falling edge of CK 3. The third rising edge of CK triggers the falling edge of SET 2. The third falling edge of CK triggers the second falling edge of CK 1.5, thereby establishing the desired three to two pulse relationship between CK and CK 1.5. The cycle repeats itself starting with the fourth rising edge of CK triggering the second rising edge of SET 1, etc. 
     Referring now to FIG. 2, the basic logic circuit components of one embodiment of the present invention, the circuit is implemented with a series of three R-S flip-flops 10, 12 and 14, and a D flip-flop 16. In this embodiment, each of the R-S flip-flops 10, 12 and 14 comprise cross-coupled NOR-GATE circuits 18. The signal CK 3 is derived as the Q output of D flip-flop 16 which is clocked by signal CK 1.5, and where the Q output is fed back through an inverter 20 to the D input of flip-flop 16. 
     The timed relationship of signals CK and CK 1.5 are established by additional logic defining the input signals to flip-flops 10, 12 and 14 which comprise SSET1, RSET1, SSET2, RSET2, SCK1.5 and RCK1.5. The logic circuits required may be implemented with any suitable logic satisfying the following equations: 
     
         SSET1=CK.CK1.5.CK3 
    
     
         RSET1=CK 
    
     
         SSET2=CK.CK1.5.CK3 
    
     
         RSET2=CK 
    
     
         SCK1.5=SET1+SET2 
    
     
         RCK1.5=SET1.CK.CK1.5.CK3+SET2.CK.CK1.5.CK3                 (FIG. 3) 
    
     Alternatively, the last argument is functionally equivalent to and may be implemented (FIG. 4) as follows: 
     
         RCK1.5=SET1.SET2.CK1.5.(CK.CK3.CK.CK3) 
    
     In these equations, a superscript bar represents the logic NOT function, a &#34;.&#34;represents the logic AND function and a &#34;+&#34;represents the logic OR function, and each are performed in that order of priority. 
     When implemented with NORGATE flip-flops 18 (FIG. 2), the logic circuits required are illustrated in FIG. 3. In this embodiment, flip-flop 10 receives a set input via three-input ANDGATE 10 which is enabled by logic high CK,CK1.5 and CK3. The reset input to flip-flop 20 is the inverted input clock, signal CK. 
     Flip-flop 12 receives a set input via ANDGATE 22 which is enabled by logic high CK ,CK1.5 and CK3 and reset by the input clock signal CK. Flip-flop 14 is set by the output of ORGATE 24 which is enabled by logic high state of either SET1 or SET2 from flip-flops 10 or 12, respectively. Flip-flop 14 is reset by the output of ORGATE 26 which is enabled by a logic high output from either ANDGATE 28 or ANDGATE 30. ANDGATE 28 is enabled by simultaneous logic high states of signals SET1, CK, CK1.5 and CK3. ANDGATE 30 is enabled by simultaneous logic high states of signals SET2, CK, CK1.5 and CK3. 
     For NORGATE implementation of the embodiment of FIG. 3, ANDGATES 20, 22, 28 and 30 can be replaced with NORGATES and each of the inputs to these gates inverted in accordance with Demorgan&#39;s theorem. Likewise, ORGATE 24 can be replaced with a NORGATE then inverting the output. 
     FIG. 4 illustrates an alternative NANDGATE embodiment of the present invention. NANDGATE implementation is preferred in some applications based upon manufacturing process considerations. In FIG. 4, flip-flops 10a, 12a and 14a perform like functions to their counterparts in the embodiment illustrated in FIG. 3. Again, the CK signal represents the input digital pulse signal, CK 1.5 is the desired output signal, and CK3 is derived in the same fashion as the prior embodiment. It should be noted that the CK1.5 signal is derived by inverting CK1.5 rather than taking the inverted output of flip-flops 14 or 14a in both embodiments. 
     In the NANDGATE embodiment of FIG. 4, flip-flops 10a and 12a receive set inputs via NANDGATES 36 and 38, respectively, and are reset by the CK, CK signals as shown. The outputs SET1, SET2 satisfy the logic 10 equations set forth above with regard to the prior embodiment. Signal CK1.5, is set by NORGATE 40 and reset by combinatorial logic 42. Logic circuit 42 includes a NANDGATE 44, and NORGATES 46, 48 and 50. Logic block 42 assures that the CK and CK signals reach the R input of the flip-flops 10 and 12 before all other signals, as intended. 
     In these embodiments, the basic principle of operation is that the SET1 and SET2 signals are alternatively used to extend the high phase of CK1.5 signal to create the desired frequency division from the CK signal. Alternatively, the circuit could readily be modified to extend the low phase of CK1.5 by using the inverted CK1.5 signal CK1.5. 
     An alternative embodiment, wherein an additional, internally generated HOLD signal is used to stretch or hold CK1.5 high in one-clock increments is illustrated in FIGS. 5 and 6. In FIG. 5, the signal HOLD, when active high, causes the high phase of CK1.5 to be extended for a single period of input clock signal CK. This extension is illustrated by the cross-hatched portion of the second high phase of CK1.5 in FIG. 5. 
     In this embodiment, the HOLD signal can be generated in any suitable fashion to provide a timed positive pulse form. Where the clock-divider is used in a larger circuit having programmable registers to control clock functions, the HOLD input to the present invention can be provided as the Q output of a D-flip-flop 60 which is clocked by signal CK, and has a D input, a HOLD Enable signal which is responsive to the status of a specified register. Such an arrangement is schematically illustrated in FIG. 8. In this embodiment, assertion of HOLD extends CK1.5 in one-clock increments. CK1.5 will transition to a logic low on the next phase of input clock CK after HOLD is disabled. 
     The logic design for this embodiment is the same as the basic embodiment, except for the following change: 
     
         RCK1.5=SET1.CK.CK1.5.CK3+HOLD.SET2.CK.CK1.5CK3 
    
     Alternatively, the last argument is functionally equivalent to and may be implemented as follows: 
     
         RCK1.5=HOLD.SET1.SET2.CK1.5.(CK.CK3+CK.CKE) 
    
     Gate level logic circuitry for this embodiment is provided in FIG. 6. FIG. 6 includes PHASE and TRUEPHASE signals which are used in yet another embodiment. To implement only the present variation, wherein the CK1.5 signal is stretched in one-clock increments, the signal CK3 is substituted for TRUEPHASE in all places. This relationship is logically illustrated in FIG. 6a where TRUEPHASE is the output of EXCLUSIVE ORGATE 64 which receives inputs CK3 and PHASE. Where PHASE is not provided, TRUEPHASE=CK3. 
     Further to FIG. 6, the HOLD input is provided as an additional input to NANDGATE 44. In block 42, in the one clock extension embodiment, where the PHASE signal is not utilized, the TRUEPHASE and TRUEPHASE l inputs to NORGATES 46 and 48 will equal CK3 and CK3, respectively. Yet another embodiment of the present invention provides the ability to extend or stretch one phase (either high or low) of output clock CK1.5 in one-half clock increments, or one-half the period of clock CK. A timing diagram for this embodiment is provided in FIG. 7. In either the one clock period or one-half clock period embodiments only the longer of the two phases of the clock signal may be extended. In the embodiments illustrated, the high phase of the CK1.5 signal is extended. If it is desired to produce an output signal CK1.5 with an extended low phase, an inverter can be added at the output. 
     In the one-half clock embodiment of FIGS. 6 and 7, input signals are CK, HOLD and PHASE. The output signal is CK1.5. The input HOLD is generated as described above. The PHASE input is also a register controlled input in the preferred embodiment, generated as illustrated in FIG. 8, as the output of D-flip-flop 62. To enable one-half clock period extensions of CK1.5, HOLD when enabled goes to a logic high state on a rising edge of CK and only when CK1.5 is already in a logic high phase. HOLD, when disabled, transitions low on the next falling edge of CK. 
     PHASE transitions to a logic high on the negative edge of CK after HOLD is at a logic high state (see FIG. 8). Asserting HOLD immediately followed by PHASE on the low transition or falling edge of CK causes CK1.5 to be extended by one-half the period of CK. It is desirable to be able to extend the selected phase by half-increments on a successive or intermittent basis. In the PHASE ENABLE circuit of FIG. 8, the output of EXCLUSIVE ORGATE 70, PHASE ENABLE will be high when PHASE changes state while HOLD is high. This allows toggling the state of PHASE to intermittently or consecutively extend the phase of CK1.5 by one-half clock period increments. 
     The design equations for this one-half period extender are the same as for the base divider with the following change: 
     
         RCK1.5=HOLD.SET1.SET2.CK1.5(CK.CK3+CKCK3) 
    
     Also, in the base equations all CK3 terms are replaced by (CK3 XOR PHASE). Making these substitutions provides: 
     
         SSET1=CK.CK1.5.(CK3 XOR PHASE) 
    
     
         RSET1=CK 
    
     
         SSET2=CK.CK1.5.(CK3 XOR PHASE) 
    
     
         RSET2=CK 
    
     
         SCK1.5=SET+SET2 
    
     In all circuits, where appropriate, a reset or start clock signal can be provided to set the logic to a known state. Typically, this signal will be utilized to set CK1.5, CK3 high. An alternative embodiment of logic block 42 (FIG. 6) is illustrated in FIG. 9. In this embodiment, NANDGATE 70 provides the reset output to flip-flop 14a, and is enabled by simultaneous logic low states on the signals indicated. In this embodiment, care should be taken to assure that the delay between the rising edge of CK and asserting HOLD be greater than the delay between the rising edge of CK and output A on XORGATE 72 of FIG. 9. 
     The present invention, therefore, is well adapted to carry out the objects and attain the ends and advantages mentioned herein as well as other ends and advantages made apparent from the disclosure. While preferred embodiments of the invention have been described for the purpose of disclosure, numerous changes and modifications to those embodiments described herein will be readily apparent to those skilled in the art and are encompassed within the spirit of the invention and the scope of the following claims.