WO2005114842A1 - High frequency divider state correction - Google Patents

High frequency divider state correction Download PDF

Info

Publication number
WO2005114842A1
WO2005114842A1 PCT/JP2005/009724 JP2005009724W WO2005114842A1 WO 2005114842 A1 WO2005114842 A1 WO 2005114842A1 JP 2005009724 W JP2005009724 W JP 2005009724W WO 2005114842 A1 WO2005114842 A1 WO 2005114842A1
Authority
WO
WIPO (PCT)
Prior art keywords
flip flop
state
circuit
output
value
Prior art date
Application number
PCT/JP2005/009724
Other languages
French (fr)
Inventor
Boerstler David William
Lukes Eric John
Hiroki Kihara
Strom James David
Original Assignee
Sony Computer Entertainment Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/850,402 external-priority patent/US7061284B2/en
Priority claimed from US10/850,400 external-priority patent/US7119587B2/en
Application filed by Sony Computer Entertainment Inc. filed Critical Sony Computer Entertainment Inc.
Priority to CN2005800008303A priority Critical patent/CN1842964B/en
Publication of WO2005114842A1 publication Critical patent/WO2005114842A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • H03K21/40Monitoring; Error detection; Preventing or correcting improper counter operation

Definitions

  • the present invention relates generally to error correction and, more particularly, to error correction in a state machine circuit.
  • a type of incrementer called a high frequency divider.
  • the values within the incrementer change in a predefined fashion, but not necessarily by a mathematical addition or subtraction. For instance, 000000 could be the first state, 000001 could be the second number, 000011 could be the third, 000111 could be the fourth, 001111 could be the fifth, 011111 could be the sixth, 111111 could be the seventh, 011111 could be the eighth state, and so on.
  • the values could represent the generation of a square wave, although other uses are also possible.
  • the particular incrementing from state value to state value is a function of the internal logic of the high frequency divider. However, there is a problem with high frequency dividers.
  • the present invention provides for a state circuit.
  • a second flip flop coupled to a first flip flop.
  • a state correction circuit coupled to the output of the second flip flop.
  • a third flip flop is coupled to the output of the state correction circuit.
  • a fourth flip flop is coupled to the output of the third flip flop.
  • the present invention further provides for state correction.
  • a first value in a state circuit is received from a flip flop.
  • the received value is transmitted to a second flip flop.
  • the received value within the second flip flop is altered if an error condition arises.
  • the received value is transmitted to a third flip flop.
  • the received value transmitted to the third flip flop comprises an unaltered received value.
  • the received value transmitted to the third flip flop comprises transmitting an altered received value.
  • FIGURE 1A schematically depicts an allowed and an unallowed divide by 8 stateflow.
  • FIGURE IB schematically depicts an allowed and an unallowed divide by 6 stateflow.
  • FIGURE 2 illustrates a divide by 8 stateflow correction circuit with state correction.
  • FIGURE 3 illustrates a conventional D flip flop.
  • FIGURE 4 illustrates a D flip flop configured for error correction.
  • FIGURE 5 illustrates an alternative embodiment of a divider circuit.
  • FIGURE 6 illustrates various timing diagrams of external and internal states of the flip flops of FIG. 2.
  • a processing unit may be a sole processor of computations in a device.
  • the PU is typically referred to as an MPU (main processing unit) .
  • the processing unit may also be one of many processing units that share the computational load according to some methodology or algorithm developed for a given computational device.
  • MPU main processing unit
  • All references to processors shall use the term MPU whether the MPU is the sole computational element in the device or whether the MPU is sharing the computational element with other MPUs, unless otherwise indicated. It is further noted that, unless indicated otherwise, all functions described herein may be performed in either hardware or software, or some combination thereof.
  • FIG. 1A disclosed is a divide by 8 stateflow diagram with allowed and unallowed states.
  • a processor such as a computer or an electronic data processor
  • code such as computer program code, software, and/or integrated circuits that are coded to perform such functions, unless indicated otherwise.
  • FIG. 1A disclosed is a divide by 8 stateflow diagram with allowed and unallowed states.
  • an unallowed stateflow transitions into an allowed stateflow after a specifically defined state or a set of states occurs.
  • FIG. 1A an unallowed stateflow transitions into an allowed stateflow after a specifically defined state or a set of states occurs.
  • a specifically defined non-allowed state is detected, such as 00110011 or 00110000, and an internal change of a value occurs within the high frequency divider circuit, thereby kicking the state of the internal D Latch into a desired state, such as 00000001 or 10000000, instead of 00011001 or 10011000, which would have been the result in conventional technology.
  • a desired state such as 00000001 or 10000000, instead of 00011001 or 10011000
  • FIG. IB illustrated is a divide by 6 stateflow.
  • An unallowed stateflow transitions into an allowed stateflow after a specifically defined state occurs.
  • a specifically defined non-allowed state is detected as 001100, a circuit transitions into a allowed state 100000, instead of 100110, an unallowed state.
  • FIGURE 2 illustrated is a divide by 8 state circuit 200.
  • a D type flip flop (DFF) 1 215 has a clock signal input into its C input from a clock source 235.
  • the Q output of DFF1 215 (ql signal state) is coupled to the D input of a DFF2 220.
  • the Q output of DFF1 220 (q2 signal state) is coupled to the D input of a DFF3 225.
  • the Q output of DFF3 225 (q3 signal state) is coupled to the D input of a DFF4 230.
  • the Q inverted output of DFF4 230 (q4 signal state) is fed back into and coupled coupled to the D input of a DFF1 215 .
  • the Q states of DFF1, DFF2, DFF3 and DFF4 215, 220, 225, 230 are coupled to a logical operator 210.
  • the logical operator 210 is coupled to a gate of the DFF2 220. In other implementations, only flip flops 215, 220 and 225 are used.
  • Gate Memory 205 can be used to introduce a time delay.
  • FIGURE 3 illustrated are the internal workings 300 of a conventional D flip flop, such as DFF1 215, DDF3 225, and DFF4 230.
  • a flip flop there are two inputs, input 1 (D, for data input) and input 2 (C, for a clock input) .
  • Flip flops have applicability as memory devices.
  • the flip flop DFF3 225 is actually comprised of 2 different latches, 310 and 320.
  • a flip-flop if a flip-flop is enabled by a clock signal, the flip flop will pass on the signal data state from the input to the output on the data, or Q line. However, if the flip flop is disabled by a clock signal, the input D value will not be propagated to the output, and instead the previously stored D value will be output of the D input.
  • DFF1 215 there are two D latches coupled in series, latch 310 and latch 320. If the input value for D is 1, and the clock value is enabled, the qintl value is also the same as the D value, and the qintb value is the inverted value of qintl.
  • the second D latch 320 is disabled. This means that, no matter what the qint value is in this circuit, the previous qint value is what is output as the Q value. In other words, with the clock being "high", the output of DFF1 215 can not change, as it "remembers” and outputs the previous state. However, for instance, in the next clock pulse, the input clock pulse goes "low". Therefore, the input data does not propagate from the Data input to the Q or qint output in this flip flop, and the qint value of the previous clock cycle is retained by this first D latch 310.
  • the DFF1 215 since the input clock value is inverted to "high", the second flip flop propagated the qint value into the output Q, the "3" value. Hence, for the DFF1 215 to change an output state, it takes at least one full clock cycle, and it only accepts as input data states from alternating clock cycles . Turning back to FIG. 2, this means that, for instance, Othe values 00000_011 can be used in the system. On the next clock cycle, the value becomes 00000001. As has been explained above, there is an internal state (qintl, qint2, qint3) etc, which is illustrated as non-underline, and a state ql, q2, q3 and so on, which is illustrated as underlined.
  • the state changes because the inversion that occurs at the output of DFF4 230, which is fed back in as data into the D port of the DFFl 215.
  • the states are stepped through the system, the last flip-flop inverting and transferring the inverted value back to the input.
  • the system 200 can work as follows. For instance, what if a conventional divide by 8 system starts as 01100111 as its starting state? A conventional system would then transition to 00110011, also an invalid state, without correction this would further transition to 00011001. However, the logic of FIGURE 2 is configured to transition to 00000001 instead of 00011001, an allowed state.
  • FIG. 1A the states are stepped through the system, the last flip-flop inverting and transferring the inverted value back to the input.
  • the system 200 can work as follows. For instance, what if a conventional divide by 8 system starts as 01100111 as its starting state? A conventional system would then transition to 00110011, also an invalid state, without correction this would further transition to 00011001.
  • the second bit of the state OOxxxxxx is used to overwrite the next 3 bits in the state, to become 00_000xxx.
  • an invalid state of 00110000 transitions to 10000000 instead of 10011000.
  • the first output state (ql) also becomes q2 internal and q2 out and q3 internal, as will be illustrated in FIG. 1A.
  • the system 200 detects invalid states can be as follows. The outputs ql, q2 (inverted) and q3 are input into the OR 210.
  • FIG. 1A illustrated are the internal working 400 with latches 410, 420 of DFF 220, the flip flop in which state transitions occur when the logical operator 210 detects a specified error state condition.
  • the logical operator of NOT (the inverter) 330 of FIG. 3 is replaced by an XOR 430.
  • the gate value is "one" and the C value input is a “0"
  • the output value is a "1" which means the XOR logical operator 430 is active as an inverter to the C value.
  • the XOR output value is a "1" which means that the flip flop 220 is not behaving like a prior art flip flop, and the same value for D is being propagated through both Dl latch 1 and D Latch 2.
  • Latch2 420 both have the same clock values within DFF 2 220. In the context of FIG. 2, this means when gate 3 of FIG. 4 is zero, for a negative clock pulse, the qint value still does not change. However, unlike the prior art, the Q output value does not change either. Therefore, the qint and the q value are both "locked,” which is unlike FIG. 3, and the Q output value does not change. Furthermore, if the input clock pulse is positive and the gate input is zero, the input D value propagates through both D latches 410, 420, through qint2 and then out through Q. Also, because the clock state is positive as input into DFF3 225, the qint of the third flip flop q3int is also equal to q2.
  • D value becomes Q, which was not true in the prior art.
  • the ql value gets propagated to the qint2 value and the q2 output value, and the q3 int value.
  • the state after 00_12_00_11_, which would have been 00011001 is instead 00000001, as the ql value gets propagated and copied through to q3int.
  • a D type flip flop (DFF) 1 510 has a clock signal input into its C input.
  • the Q output of DFF1 510 (ql signal state) is coupled to the D input of a DFF2 520.
  • the Q output of DFF2 520 (q2b signal state) is coupled to a circuit 550.
  • the output of the circuit 550 is coupled to the D input of a DFF3 530.
  • the Q output of DFF3 530 (q3 signal state) is coupled to the D input of a DFF4 540.
  • the outputs ql, q2, q3 and q4 can be selected by selectors 512, 522, 532, 542, thereby configuring the circuit 500 as a divide by 2, 4, 6 or 8 correction circuit.
  • a divider correction circuit 550 is coupled between the inverter output of DFF2 520 (qb2) and the data input into DFF3 530.
  • the voltage across the drain and the source of a CMOS circuit is a function of the voltage difference between a node coupled to the source and drain, and if the CMOS is turned on or off.
  • Correction circuit 550 is one embodiment of logic corresponding to the following truth table.
  • CMOS LOGIC In the above truth table, qlb (inverted output of DFF1 510) is employed, Q2b (inverted output of DFF2 520) is employed, and q3b (inverted output of DFF3 530) is employed.
  • the circuit 550 is coupled between the inverted output of Q2b and the data input into D3, thereby creating the D3new value.
  • the circuit 550 can work substantially as follows. In the system 500, qlB (inverted) value, the q2b (inverted) value, and the q3b (inverted) value are input into the circuit 550. If qlb is a zero, D3new equals the opposite of q2B.
  • ql and q2 are zero, then q2 is automatically zero, so in other words, there is no state that creates a problem.
  • the voltage across the drain and source of a CMOS circuit is a function of overall function of the circuit and whether the circuit is turned on or off.
  • this is one embodiment of logic corresponding to the following truth table.
  • the truth table represents two conditions wherein Ql does not equal D2new.
  • qlb (inverted) value we are using qlb (inverted) value, and the q3b (inverted) value, so there is an actual change of state when qlb equals D3new. This occurs when ql is 0 and q3 is 0.
  • FIGURE 6 illustrated are simulated waveform diagram of the operation of the diagram. As is illustrated, even if a ql to q4 waveform starts out in an ' incorrect state, it transitions into a correct sequence of Is and 0s after a few clock transitions. It is understood that the present invention can take many forms and embodiments. Accordingly, several variations may be made in the foregoing without departing from the spirit or the scope of the invention. The capabilities outlined herein allow for the possibility of a variety of programming models.
  • the present invention is applicable to a technology for state correction.

Abstract

The present invention provides for state correction of a frequencydivider. A first flip-flop is coupled to a second flip flop. A state correction circuit is coupled to the output of the second flip-flop. A third flip-flop is coupled to the output of the state correction circuit. A fourth flip-flop is coupled to the output of the third flip-flop. In the present invention, a first value in a state circuit is received from the first flip-flop. The received value is transmitted to the second flip-flop. The received value within the second flip-flop is altered if an error condition arises. The received value is transmitted to a third flip-flop.

Description

DESCRIPTION
HIGH FREQUENCY DIVIDER STATE CORRECTION
TECHNICAL FIELD The present invention relates generally to error correction and, more particularly, to error correction in a state machine circuit.
RELATED ART There is a type of incrementer called a high frequency divider. In a high frequency divider, the values within the incrementer change in a predefined fashion, but not necessarily by a mathematical addition or subtraction. For instance, 000000 could be the first state, 000001 could be the second number, 000011 could be the third, 000111 could be the fourth, 001111 could be the fifth, 011111 could be the sixth, 111111 could be the seventh, 011111 could be the eighth state, and so on. The values could represent the generation of a square wave, although other uses are also possible. The particular incrementing from state value to state value is a function of the internal logic of the high frequency divider. However, there is a problem with high frequency dividers. One such problem is if the system starts up in an invalid state. For instance, what if it starts in state 010101? This can happen when a system first powers up, as the states of the latches within the system can be indeterminate. Alternatively, a catastrophic event can happen, such as an electromagnetic pulse. If this happens, the states within the divide by 8 counter can be forced into an undesired state. However, in conventional technology, if left uncorrected, the states could cycle from one undesired state to another undesired state, without ever becoming a desired state and getting back on track. The system can be reset, and a preloaded "seed" state can be entered into the system. However, this is time-wise an expensive proposition, and errors can creep in if the initial "seed" state is somehow inaccurate. If an electromagnetic pulse changes the state within the circuit to an invalid state or sequence. This invalid state or sequence should be deleted, which costs additional time and circuitry area, and a system reset is issued, which also costs additional time.
DISCLOSURE OF THE INVENTION Therefore, there is a need to ensure that a desired state is arrived at after a certain number of state transitions in a manner that addresses at least some of the problems associated with the prior art. The present invention provides for a state circuit. A second flip flop coupled to a first flip flop. A state correction circuit coupled to the output of the second flip flop. A third flip flop is coupled to the output of the state correction circuit. A fourth flip flop is coupled to the output of the third flip flop. The present invention further provides for state correction. A first value in a state circuit is received from a flip flop. The received value is transmitted to a second flip flop. The received value within the second flip flop is altered if an error condition arises. The received value is transmitted to a third flip flop. In one aspect, the received value transmitted to the third flip flop comprises an unaltered received value. In another aspect, the received value transmitted to the third flip flop comprises transmitting an altered received value.
BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following Detailed Description taken in conjunction with the accompanying drawings, in which: FIGURE 1A schematically depicts an allowed and an unallowed divide by 8 stateflow. FIGURE IB schematically depicts an allowed and an unallowed divide by 6 stateflow. FIGURE 2 illustrates a divide by 8 stateflow correction circuit with state correction. FIGURE 3 illustrates a conventional D flip flop. FIGURE 4 illustrates a D flip flop configured for error correction. FIGURE 5 illustrates an alternative embodiment of a divider circuit. FIGURE 6 illustrates various timing diagrams of external and internal states of the flip flops of FIG. 2.
BEST MODE FOR CARRYING OUT THE INVENTION In the following discussion, numerous specific details are set forth to provide a thorough understanding of the present invention. However, those skilled in the art will appreciate that the present invention may be practiced without such specific details. In other instances, well- known elements have been illustrated in schematic or block diagram form in order not to obscure the present invention in unnecessary detail. Additionally, for the most part, details concerning network communications, electro-magnetic signaling techniques, and the like, have been omitted inasmuch as such details are not considered necessary to obtain a complete understanding of the present invention, and are considered to be within the understanding of persons of ordinary skill in the relevant art. In the remainder of this description, a processing unit (PU) may be a sole processor of computations in a device. In such a situation, the PU is typically referred to as an MPU (main processing unit) . The processing unit may also be one of many processing units that share the computational load according to some methodology or algorithm developed for a given computational device. For the remainder of this description, all references to processors shall use the term MPU whether the MPU is the sole computational element in the device or whether the MPU is sharing the computational element with other MPUs, unless otherwise indicated. It is further noted that, unless indicated otherwise, all functions described herein may be performed in either hardware or software, or some combination thereof. In a preferred embodiment, however, the functions are performed by a processor, such as a computer or an electronic data processor, in accordance with code, such as computer program code, software, and/or integrated circuits that are coded to perform such functions, unless indicated otherwise. Turning to FIGURE 1A, disclosed is a divide by 8 stateflow diagram with allowed and unallowed states. In FIG. 1A, an unallowed stateflow transitions into an allowed stateflow after a specifically defined state or a set of states occurs. Generally, in reference to FIG. 1A, a specifically defined non-allowed state is detected, such as 00110011 or 00110000, and an internal change of a value occurs within the high frequency divider circuit, thereby kicking the state of the internal D Latch into a desired state, such as 00000001 or 10000000, instead of 00011001 or 10011000, which would have been the result in conventional technology. For instance, in FIG 1A, what if the undesired state of 01100111 arose at power up? By the internal logic of the circuitry (a shift right, and then invert the value shifted from rightmost bit and wrapped around the to the leftmost bit), this would become 00110011, a second unallowed state. By a similar logic, this would then transition into 00011001. However, the transition diagram of FIG. 1A addresses this problem. Turning now to FIG. IB, illustrated is a divide by 6 stateflow. An unallowed stateflow transitions into an allowed stateflow after a specifically defined state occurs. Generally, in reference to FIG. IB, a specifically defined non-allowed state is detected as 001100, a circuit transitions into a allowed state 100000, instead of 100110, an unallowed state. Turning now to FIGURE 2, illustrated is a divide by 8 state circuit 200. A D type flip flop (DFF) 1 215 has a clock signal input into its C input from a clock source 235. The Q output of DFF1 215 (ql signal state) is coupled to the D input of a DFF2 220. The Q output of DFF1 220 (q2 signal state) is coupled to the D input of a DFF3 225. The Q output of DFF3 225 (q3 signal state) is coupled to the D input of a DFF4 230. The Q inverted output of DFF4 230 (q4 signal state) is fed back into and coupled coupled to the D input of a DFF1 215 . The Q states of DFF1, DFF2, DFF3 and DFF4 215, 220, 225, 230 are coupled to a logical operator 210. The logical operator 210 is coupled to a gate of the DFF2 220. In other implementations, only flip flops 215, 220 and 225 are used. Gate Memory 205 can be used to introduce a time delay. Otherwise, there could be problems with substantially simultaneous feedback, and the logic states might not converge, an error condition. This configuration enables the state transition from the undesired states to desired states of FIG. 1A. Turning now to FIGURE 3, illustrated are the internal workings 300 of a conventional D flip flop, such as DFF1 215, DDF3 225, and DFF4 230. As is illustrated regarding a flip flop, there are two inputs, input 1 (D, for data input) and input 2 (C, for a clock input) . Flip flops have applicability as memory devices. The flip flop DFF3 225 is actually comprised of 2 different latches, 310 and 320. As is understood by those of skill in the art, if a flip-flop is enabled by a clock signal, the flip flop will pass on the signal data state from the input to the output on the data, or Q line. However, if the flip flop is disabled by a clock signal, the input D value will not be propagated to the output, and instead the previously stored D value will be output of the D input. In FIG. 3, of DFF1 215, for instance, there are two D latches coupled in series, latch 310 and latch 320. If the input value for D is 1, and the clock value is enabled, the qintl value is also the same as the D value, and the qintb value is the inverted value of qintl. However, due to a logical "not" operator 330, the second D latch 320 is disabled. This means that, no matter what the qint value is in this circuit, the previous qint value is what is output as the Q value. In other words, with the clock being "high", the output of DFF1 215 can not change, as it "remembers" and outputs the previous state. However, for instance, in the next clock pulse, the input clock pulse goes "low". Therefore, the input data does not propagate from the Data input to the Q or qint output in this flip flop, and the qint value of the previous clock cycle is retained by this first D latch 310. However, because the input clock value is inverted to "high", the second flip flop propagated the qint value into the output Q, the "3" value. Hence, for the DFF1 215 to change an output state, it takes at least one full clock cycle, and it only accepts as input data states from alternating clock cycles . Turning back to FIG. 2, this means that, for instance, Othe values 00000_011 can be used in the system. On the next clock cycle, the value becomes 00000001. As has been explained above, there is an internal state (qintl, qint2, qint3) etc, which is illustrated as non-underline, and a state ql, q2, q3 and so on, which is illustrated as underlined. The state changes because the inversion that occurs at the output of DFF4 230, which is fed back in as data into the D port of the DFFl 215. As is seen by the desired states transition illustrated in FIG. 1A, the states are stepped through the system, the last flip-flop inverting and transferring the inverted value back to the input. However, if an undesired state comes up, the system 200 can work as follows. For instance, what if a conventional divide by 8 system starts as 01100111 as its starting state? A conventional system would then transition to 00110011, also an invalid state, without correction this would further transition to 00011001. However, the logic of FIGURE 2 is configured to transition to 00000001 instead of 00011001, an allowed state. In FIG. 2, the second bit of the state OOxxxxxx, is used to overwrite the next 3 bits in the state, to become 00_000xxx. Similarly, an invalid state of 00110000 transitions to 10000000 instead of 10011000. In other words, the first output state (ql) also becomes q2 internal and q2 out and q3 internal, as will be illustrated in FIG. 1A. The system 200 detects invalid states can be as follows. The outputs ql, q2 (inverted) and q3 are input into the OR 210. When xxxxxxxx ("x" a variable), have the values of x0xlx0_xx, the OR gate output becomes negative, the output invalidb state goes low, and there is enabled a transition from an unallowed state to an allowed state. Turning briefly to FIG 1A, this transition happens at both 00110011 and 00110000, as is shown in FIG 1A, and only in those states does the transition to a desired state happen. Turning now to FIGURE 4, illustrated are the internal working 400 with latches 410, 420 of DFF 220, the flip flop in which state transitions occur when the logical operator 210 detects a specified error state condition. The logical operator of NOT (the inverter) 330 of FIG. 3 is replaced by an XOR 430. An XOR, as is understood by those of skill in the art, gives a true value if both values are different, and a false value (value of zero) if both input values are the same In the context of FIG. 2, this means that the OR output is 0 for a specific predefined non-allowed state, and 1 for an allowed state or a non-specified non-allowed state. Then, this becomes the "gate" value into DFF2 220 flip flop. In FIG. 4, when the gate value output by the OR gate 210 is "one", and the C value input is a "1", the output value is a "0", which means that the flip flop 220 is behaving like a prior art flip flop, and the XOR is behaving as an inverter. Similarly, if the gate value is "one" and the C value input is a "0", the output value is a "1", which means the XOR logical operator 430 is active as an inverter to the C value. In FIG. 4, when the gate value is "zero", and the C value input is a "1", the XOR output value is a "1", which means that the flip flop 220 is not behaving like a prior art flip flop, and the same value for D is being propagated through both Dl latch 1 and D Latch 2. Similarly, if the gate value is "zero" and the C value input is a "0", the XOR output value is a "0", which is sent as a C input to D Latch2 420, and the previous states are stored in Dl latch 1 and D2 latch 2. In other words, when the output of OR 210, the gate input to the XOR 430, is zero, the D latchl 410 and the D
Latch2 420 both have the same clock values within DFF 2 220. In the context of FIG. 2, this means when gate 3 of FIG. 4 is zero, for a negative clock pulse, the qint value still does not change. However, unlike the prior art, the Q output value does not change either. Therefore, the qint and the q value are both "locked," which is unlike FIG. 3, and the Q output value does not change. Furthermore, if the input clock pulse is positive and the gate input is zero, the input D value propagates through both D latches 410, 420, through qint2 and then out through Q. Also, because the clock state is positive as input into DFF3 225, the qint of the third flip flop q3int is also equal to q2. In other words, D value becomes Q, which was not true in the prior art. In other words, for a gate value of 0, and a positive clock cycle, the ql value gets propagated to the qint2 value and the q2 output value, and the q3 int value. In the context of FIG 1A, this means that instead of 00110000 becoming the unallowed state of lQ_011QQQ_r it becomes 10000000^ thereby forcing from an undesired state to a desired state. Likewise, the state after 00_12_00_11_, which would have been 00011001, is instead 00000001, as the ql value gets propagated and copied through to q3int. Turning now to FIG 5, illustrated is an alternative embodiment of a divider circuit 500. A D type flip flop (DFF) 1 510 has a clock signal input into its C input. The Q output of DFF1 510 (ql signal state) is coupled to the D input of a DFF2 520. The Q output of DFF2 520 (q2b signal state) is coupled to a circuit 550. The output of the circuit 550 is coupled to the D input of a DFF3 530. The Q output of DFF3 530 (q3 signal state) is coupled to the D input of a DFF4 540. The outputs ql, q2, q3 and q4 can be selected by selectors 512, 522, 532, 542, thereby configuring the circuit 500 as a divide by 2, 4, 6 or 8 correction circuit. A divider correction circuit 550 is coupled between the inverter output of DFF2 520 (qb2) and the data input into DFF3 530. As is understood by those of skill in the art, the voltage across the drain and the source of a CMOS circuit is a function of the voltage difference between a node coupled to the source and drain, and if the CMOS is turned on or off. Correction circuit 550 is one embodiment of logic corresponding to the following truth table.
Figure imgf000015_0001
TABLE: CMOS LOGIC In the above truth table, qlb (inverted output of DFF1 510) is employed, Q2b (inverted output of DFF2 520) is employed, and q3b (inverted output of DFF3 530) is employed. In FIG. 5, the circuit 550 is coupled between the inverted output of Q2b and the data input into D3, thereby creating the D3new value. The circuit 550 can work substantially as follows. In the system 500, qlB (inverted) value, the q2b (inverted) value, and the q3b (inverted) value are input into the circuit 550. If qlb is a zero, D3new equals the opposite of q2B. The state of q3 or q3b is not a factor in the above truth table. However, if qlb equals a one, and if q2b equals a zero, and if q3b equals zero, then D3new is set to equal one. Hence, error correction arises. Furthermore, there is no state among the desired states that would create a "skip" to an undesired state. For instance, if ql and q3 equal zero of a desired state, this would be xOxxxOxx. By definition of the truth table of FIG 5, this would then become x x0x0xx or x0xl_x0xx. In other words, if ql and q2 are zero, then q2 is automatically zero, so in other words, there is no state that creates a problem. As is understood by those of skill the art, the voltage across the drain and source of a CMOS circuit is a function of overall function of the circuit and whether the circuit is turned on or off. In 550, this is one embodiment of logic corresponding to the following truth table. The truth table represents two conditions wherein Ql does not equal D2new. In the system 500, we are using qlb (inverted) value, and the q3b (inverted) value, so there is an actual change of state when qlb equals D3new. This occurs when ql is 0 and q3 is 0. Therefore, the next value input into the next flip-flop after this is also zero, and both q3 and qint3 becomes 0 instead of 1, the value of Ql. In FIG 1, this correlates to 00011001 becomes 00000001 and 10011000 becoming 10000000_. In other words, for the ql and q3 output values of 1, q3 int becomes zero. Furthermore, there is no state among the desired states that would create a "skip" to an undesired state. For instance, if ql and q3 equal zero in a desired state, this would be xOxxxOxx. By definition of the truth table of FIG 5, this would then become xOxOxOxx. By the type of frequency division that is done in this graph, if ql and q3 are zero, then q2 has to be zero, in the desired states. Therefore, there is no state that creates a problem. Turning now to FIGURE 6, illustrated are simulated waveform diagram of the operation of the diagram. As is illustrated, even if a ql to q4 waveform starts out in an ' incorrect state, it transitions into a correct sequence of Is and 0s after a few clock transitions. It is understood that the present invention can take many forms and embodiments. Accordingly, several variations may be made in the foregoing without departing from the spirit or the scope of the invention. The capabilities outlined herein allow for the possibility of a variety of programming models. This disclosure should not be read as preferring any particular programming model, but is instead directed to the underlying mechanisms on which these programming models can be built. Having thus described the present invention by reference to certain of its preferred embodiments, it is noted that the embodiments disclosed are illustrative rather than limiting in nature and that a wide range of variations, modifications, changes, and substitutions are contemplated in the foregoing disclosure and, in some instances, some features of the present invention may be employed without a corresponding use of the other features. Many such variations and modifications may be considered desirable by those skilled in the art based upon a review of the foregoing description of preferred embodiments. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention.
INDUSTRIAL APPLICABILITY The present invention is applicable to a technology for state correction.

Claims

1. A state circuit, comprising: a first flip flop; a second flip flop coupled to the first flip flop; a state correction circuit coupled to the output of the second flip flop; a third flip flop coupled to the output of the state correction circuit; and a fourth flip flop coupled to the output of the third flip flop.
2. The state circuit of Claim 1, wherein the state correction circuit is configured to invert an output of the second flip flop when the state circuit is at a predefined state.
3. The state circuit of claim 1, wherein the state circuit is a divide by six correction circuit.
4. The state circuit of Claim 1, wherein the state circuit is a divide by eight correction circuit.
5. The state circuit of Claim 1, wherein at least one flip flop is a D type flip flop.
6. The state circuit of Claim 1, wherein the first flip flop is configured to receive an output from another flip flop of the state circuit.
7. The state circuit of Claim 1, wherein an output of the fourth flip flop is coupled to an input of the first flip flop.
8. A computer program product for state correction, the computer program product having a medium with a computer program embodied thereon, the computer program comprising: computer code for enabling a first flip flop; computer code for coupling a second flip flop to the first flip flop; computer code for coupling a state correction circuit to the output of the second flip flop; computer code for coupling a third flip flop to the output of the state correction circuit; and computer code for coupling a fourth flip flop to the output of the third flip flop.
9. A processor for state correction, the processor including a computer program comprising: computer code for enabling a first flip flop; computer code for coupling a second flip flop to the first flip flop; computer code for coupling a state correction circuit to the output of the second flip flop; computer code for coupling a third flip flop to the output of the state correction circuit; and computer code for coupling a fourth flip flop to the output of the third flip flop.
10. A state circuit, comprising: a first flip flop; a second flip flop coupled to the first flip flop; and a third flip flop coupled to the second flip flop; wherein the second flip flop is configured to propagate an input of the second flip flop to the output of the second flip flop as a function of an error signal.
11. The state circuit of claim 10, wherein the state circuit is a divide by six correction circuit.
12. The state circuit of Claim 10, wherein the state circuit is a divide by eight correction circuit.
13. The state circuit of Claim 10, wherein at least one flip flop is a D type flip flop.
14. The state circuit of Claim 10, wherein the error signal is generated by an OR logic.
15. The state circuit of Claim 14, wherein the OR circuit transitions to negative for at least one specifically defined invalid state.
16. The state circuit of Claim 10, wherein the first flip flop is configured to receive an output from another flip flop of the state circuit.
17. The state circuit of Claim 10, wherein a fourth flip flop is coupled to the output of the third flip flop, and an output of the fourth flip flop is coupled to an input of the first flip flop.
18. The state circuit of Claim 10, wherein the flip flops comprise a plurality of latches, wherein at least one of the plurality of latches has a clock input that is coupled to exclusive-or logic and the error signal.
19. A method for state correction, comprising: receiving a first value from a flip flop in a state circuit; transmitting the received value to a second flip flop; altering the received value within the second flip flop if an error condition arises; and transmitting the received value to a third flip flop.
20. The method of Claim 19, wherein transmitting the received value to a third flip flop further comprises transmitting an unaltered received value.
21. The method of Claim 19, wherein transmitting the received value to a third flip flop further comprises transmitting an altered received value.
22. A computer program product for state correction, the computer program product having a medium with a computer program embodied thereon, the computer program comprising: computer code for receiving a first value from a flip flop in a state circuit; computer code for transmitting the received value to a second flip flop; computer code for altering the received value within the second flip flop if an error condition arises; and computer code for transmitting the altered value to a third flip flop.
23. A processor for state correction, the processor including a computer program comprising: computer code for receiving a first value from a flip flop in a state circuit; computer code for transmitting the received value to a second flip flop; computer code for altering the received value within the second flip flop if an error condition arises; and computer code for transmitting the altered value to a third flip flop.
PCT/JP2005/009724 2004-05-20 2005-05-20 High frequency divider state correction WO2005114842A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2005800008303A CN1842964B (en) 2004-05-20 2005-05-20 High frequency divider state correction

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/850,402 US7061284B2 (en) 2004-05-20 2004-05-20 High frequency divider state correction circuit with data path correction
US10/850,402 2004-05-20
US10/850,400 US7119587B2 (en) 2004-05-20 2004-05-20 High frequency divider state correction circuit
US10/850,400 2004-05-20

Publications (1)

Publication Number Publication Date
WO2005114842A1 true WO2005114842A1 (en) 2005-12-01

Family

ID=34968281

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/009724 WO2005114842A1 (en) 2004-05-20 2005-05-20 High frequency divider state correction

Country Status (2)

Country Link
JP (1) JP4114722B2 (en)
WO (1) WO2005114842A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3530284A (en) * 1968-03-25 1970-09-22 Sperry Rand Corp Shift counter having false mode suppression
US4993051A (en) * 1988-02-17 1991-02-12 U.S. Philips Corporation Johnson counter circuit with invalid counter position detection and correction mechanism
US20020114422A1 (en) * 2001-02-16 2002-08-22 Mitsubishi Denki Kabushiki Kaisha Counter circuit for detecting erroneous operation and recovering to normal operation by itself

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3530284A (en) * 1968-03-25 1970-09-22 Sperry Rand Corp Shift counter having false mode suppression
US4993051A (en) * 1988-02-17 1991-02-12 U.S. Philips Corporation Johnson counter circuit with invalid counter position detection and correction mechanism
US20020114422A1 (en) * 2001-02-16 2002-08-22 Mitsubishi Denki Kabushiki Kaisha Counter circuit for detecting erroneous operation and recovering to normal operation by itself

Also Published As

Publication number Publication date
JP2005333652A (en) 2005-12-02
JP4114722B2 (en) 2008-07-09

Similar Documents

Publication Publication Date Title
US7310757B2 (en) Error detection on programmable logic resources
Stan et al. Long and fast up/down counters
US7760843B2 (en) High frequency divider state correction circuit
JPH06110654A (en) Data-coincidence detecting circuit
Kennedy et al. Generalized parallel CRC computation on FPGA
US7061284B2 (en) High frequency divider state correction circuit with data path correction
WO2005114842A1 (en) High frequency divider state correction
Shing-Tsaan et al. Four-state stabilizing phase clock for unidirectional rings of odd size
Stan Synchronous up/down counter with clock period independent of counter size
Gladshtein Delay-based processing-in-wire for design of QCA serial decimal arithmetic units
Schneider et al. A new algorithm for carry-free addition of binary signed-digit numbers
US11934799B2 (en) Combinatorial logic circuits with feedback
US6581084B1 (en) Circuit for multiplication in a Galois field
JP2011188115A (en) Semiconductor integrated circuit
JP2599857B2 (en) Increment type subtraction circuit
JP2814978B2 (en) Frame synchronization circuit
Naik et al. Implementation of efficient CSLA using D-latch approach
IL118203A (en) Precision time of day counting system
Mitchell et al. Sequential Logic
Mitra et al. Efficient Approach to design Reversible Fault Tolerant Cyclic Redundancy Check Circuit
Wawrzynek EECS150-Digital Design Lecture 22-Counters
JPH03216037A (en) Cell synchronizing circuit
Lewin et al. Sequential circuits
Bannister et al. Sequential Logic Components
JPH03231541A (en) Path pattern check circuit

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200580000830.3

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

122 Ep: pct application non-entry in european phase