Johnson Counter Self Correction

Hello,

I would like to do a simple Johnson counter for div 10/11. I gather this will require either 5 flops or 6 flops. I can just mux the output from 5 and 6 and then a div_10/11 signal could select which of the outputs need to pass on.

However, what I am confused about right now, is the correction scheme. From what I have read, do I only have correct for the first flops accidentally becoming 010? How are all the other correction schemes corrected? What am I missing? If I could get some explanation to how the self correction works, I would greatly appreciate it.

Regards,

Reply to
svinayag
Loading thread data ...

Ahah, one of my favorite subjects - disallowed states in ring counters :-).

For a 5-stage ring counter, all the disallowed sequences walk through "101" or "010" in the inner 3 bits. Just look for one of these (3- input AND gate driven by the right Q and Q-bars), and if you see them, do a master clear.

Tim.

Reply to
Tim Shoppa

Hello Tim,

Thanks for the quick reply. I realize that most people look for the "010" condition or they have logic within the cell that forces this condition to something else. But what about the condition "0110". What about that illegal state? That condition is illegal too and has to be corrected right? Or am I missing something. For example,

A B C D E

0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1

The state 0110 is not in the above correct states...so does correcting for "010" correct for "0110". If so how so? Also when looking that the spec sheet for a 5 stage Johnson counter (see here:

formatting link
it doesn't appear that the correct for the "0110" condition. Am I right?

Regards,

Reply to
svinayag

Generally ring counters don't have to self-correct immediately on a invalid count... as long as that invalid count eventually leads to a situation where it's turned to a valid count, that generally meets most requirements. Your requirements may be specifically different, though.

In your question about "0110", note that "01100" becomes "10100" becomes "11010" which is then self-corrected by my suggested scheme.

Also note that the internal schematic of the 4017 you point shows a correction scheme that is in detail different than mine, but still eventually corrects all invalid counts. There are lots of different correction schemes available... look in a 70's era logic textbook for some other examples.

Tim.

Reply to
Tim Shoppa

EVERY state machine design should be able to recover from being in ANY invalid/illegal/unused state. How fast it needs to recover and the complexity of the system depends on your design needs. If you can get into an illegal state and not get back to legal states in the time/clocks you require, you're not done. mike

--
Return address is VALID!
Reply to
mike

here:

formatting link
it

Things like this are the reason I like "state transition tables"; see

formatting link
If you try to skip anything there is a big blank square facing you. Enforced thoroughness is good in design.

RayR

Reply to
RRogers

here:

formatting link
it

It certainly helps mediocre engineers.

Reply to
JosephKK

Have you seen the complexity of the PCI state machines?

Reply to
JosephKK

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.