Quantcast
Channel: User periblepsis - Electrical Engineering Stack Exchange
Viewing all articles
Browse latest Browse all 1423

Answer by periblepsis for Johnson Counter self correction

$
0
0

Start with the basic twisted-ring Johnson counter:

enter image description here

There are two illegal states. But as the following table shows, those two states point to each other.

enter image description here

(This is exactly the same as you'd get if state 010 and state 101 were set to 'x' (don't care) before using the resulting k-maps to minimize them.)

So, without correction and if the counter ever finds itself in one of those two states, it will just toggle between the two illegal states (until another error occurs, anyway.) Getting stuck like that may be undesirable.

The question is what to do about it, if anything.

Assuming that a 1-bit error occurred (2-bit errors would be far less likely), then illegal state 101 must have been intended to be 001, 111, or 100, depending upon which of the three bits incorrectly changed. (Similarly, 010 must have been intended to be 110, 000, or 011.) But there's no way to know which, a priori.

And assuming the illegal state was actually to be one of those three, then the next clock cycle shouldn't transition to whatever state it should have been, but instead to the state that would follow it. So we'd want the next state following 101 to be either 000, 011, or 110 and the next state following 010 to be either 111, 100, or 001.

Let's just arbitrarily assume that it was bit A that is in error. In this case, we'd transition from state 101 to 000 and from 010 to 111. But note that the table you have instead chooses to go from 010 to 101 and then from 101 to 000. That leads the counter to go through two clocked illegal states before finally producing a legal state. That may be desired. But maybe not, too.

Why is it the lower right box of the k-map that when changed to a 0,results in the desired change of the next state of state 6 beingchanged from 1 to 0 for digit QB of the specific state??

Because it does! The default in the table without correction would go from 101 to 010. Obviously, changing 010 to 000 is just changing that 1 to a 0. I don't see how to miss seeing that fact!

enter image description here

My preference would be to correct both illegal states so that they immediately become valid states on the next clock, like this:

enter image description here

But we are addressing your question, so I don't get to change things.


Viewing all articles
Browse latest Browse all 1423

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>