So this is the Sr. Latch which I've talked about in a previous video
And I encourage going back and looking at that video if you're unfamiliar with it, but basically
the latch has two inputs are for reset and then s for set and
when the reset is
goes high then the output Q goes off is reach that reset and
then when the set pin goes high then the
Output Q goes on and then there's also an inverted Q which is always the opposite of q except for one case where if both?
Reset and set inputs are [high] then both of these go off and that's generally considered an invalid
setting this you shouldn't be both setting it and resetting it at the same time and in fact if I
Then release both of these it's kind of arbitrary which one comes on because whichever one of these I'm releasing first kind of wins
But generally yeah, the latch is going to latch in one of these two states
So in this video what I want to do is talk about some modifications to this to this simple, Sr
Latch circuit, so the first thing I look at is that Sr. Latch with and enable, so this is the the basic, Sr
Latch that we just saw
but now we've got on both of the inputs we have these and gates that are connected to an enable signal and
basically what that does is if this enable signal is is high if it's a 1
Then these [an] gates pass through whatever the other input is, so this is a 1 and
Reset is 1 then
It passes through a 1 if is the 1 resets a zero it passes through a 0 if the enable is 0 then
The output is always going to be zero and so [the] latch if enable is 0 the latch always stays latched in its last [state]
and so this just gives us a way to
enable the latch in which case
It's going to pay attention [to] its it's two inputs or
Disable it in which case
It just stays latched regardless of what happens to these inputs so it's just a slight modification of the basic Sr. Latch
We could take this a step further and turn this into a flip-flop and the difference between the Sr. Latch and the Sr
Flip-flop is
And in general the difference between a latch and a flip-flop is that a latch the outputs will change whenever the inputs change
With a flip-flop the outputs are only going to change when there's a clock pulse
and so flip-flops always going to have some sort of clock input and in the
Diagram for it the clock has indicated by this little triangle signal here
And so then whenever the clock pulse comes in or specifically when the clock transitions from low to high in this case
Then the outputs will change and only only at that transition point
Will the outputs change based on whatever the inputs are at that point the rest of the time?
It doesn't matter what's going on with the inputs and so the way [that] works is
we have this clock pulse coming in and it's
You know when it transitions from low to high when those voltage changes here
You're going to get some current flowing through this capacitor as the capacitor charges and so over here. You're going to see the voltage
Go up as soon as this transition takes place
but then once the capacitor charges
That voltage will drop current will stop flowing
Once the capacitor is fully charged and so this clock pulse no matter how long this this clock pulse is is
Going to essentially show up over here [on] the inputs these [an] gates as this
Really quick pulse just at the point where that rising edge happens and so that very quick pulse is used to
essentially enable if we if we think of what we saw before the Sr latch
With the enable it is essentially what's happening over here and so that [Sr]
Latch with enable is is only enabled just [at] that moment where the clock rising edge?
happens and
So that has the effect of it working like an Sr. Flip-flop
[so] when the clock rising edge happens then it looks at the [RnS]
just at that moment where the clock rising edges and if
Reset is is enabled and [set] is not then it resets the output goes to zero and the compliment of the output goes to 1
if the clock rising edge happens and at that moment
The set input is it is active and the reset is not active then the output q
turns on and the complement of Q it goes off and
Then if there's a clock rising edge and both the reset and set inputs are 0 then
It just stays in the last state it stays you know latched like a normally would
[and] in any other case [no] matter if the clock is not
If there's not over izing edge of the clock if the clock is doing anything else
then it doesn't matter what the set and reset is is doing the
Flip-flop stays in its last state now. There's one interesting case here. Which is where?
If you have a clock rising edge and reset and set are both active remember
This is that invalid state, so if reset and set are both active
[you] know we saw before
With just the Sr. Latch if both inputs are active you see
Both Q and the Q complement go off and so you [might] expect [that] right Q and Q complement go off?
but the reality is [that] when we release both of these a latch does settle down in some state and
That's actually going to happen here to one of these two inputs is going to is going to you know be
Slightly ahead of the others and the Sr
Flip-flop is going to settle down into some state so we really aren't actually going to have this
output case where both Q and Q invert
are both 0 so I mean that's invalid right because you would you would you would assume that the
Inverse of Q would be the inverse of q [you] would not expect it to be the same thing and in fact that that's true
And the problem is with this this situation where you have both a set and a reset when you have a clock pulse
It will settle down into the some state, but we don't know what it is. So really
These are both kind of unknown. What will happen, so this is
again kind of an invalid situation or we don't really know what's going [to] happen here because it just
Depends which which of these is is a few nanoseconds faster, you know?
It really it's unpredictable
There is something we can do to make that a little bit more predictable, and that is the Jk Flip-flop
And so the Jk Flip-flop is very similar to the Sr. Flip-flop
Except that it has this feedback coming from the outputs, and so it has these three input and gates over here
And it's looking at the current state of the output Q and and Q inverse in determining
What's going to happen on the input and as far as I know?
You know Jk. Is just kind of an arbitrary set of letters. It doesn't doesn't mean anything
But I guess this is different enough from an Sr. Flip-flop that they gave it a different [name]
But anyway, if we if we walk through what's going to happen here?
You'll see it's [very] similar
so if J and K are both 0 then
It doesn't matter what else is going on the output of these and gates are both 0 and so we have this the same
situation where
You know even if we get a clock pulse?
[we're] going to stay in the last state
but now let's imagine a case where the latch is currently set so q is 1 inverse of Q will be 0
and we want to reset it, so if q is 1
Then this is going to be 1 and
If we want to reset it then we're going to set K to 1 so this input will be 1 because you
[know] the current output is 1 it's currently set
K will be 1 if we want to reset it
and then when we get our clock pulse this and gate will turn on and this will be our reset signal and
That will reset the latch and turn q off and then of [course] the inverse q on and so that's this this scenario here where?
J is 0 K is 1 to reset it and then we get our clock pulse, and so you see Q goes goes low
We reset the latch, but what if the latch was already reset so the latch was already reset then q is already low
and
we set k high and
Basically this this stays off and of course J is also
Low, so this stays off, so we have both zeros and so we stay in the last state
But that's ok right because if we wanted to reset it, we're setting k high to reset it
And it was already reset then it's fine to leave in the last date right where it was already reset
And we want to reset it
Leave it in the last state so that that works fine
[and] same thing in the in the opposite case, so if if it's currently reset
So q is low and inverse q is high then [that] means this is high and so if it's currently reset
And we want to set it with a J
then
both of these inputs will be high and then when we get our clock pulse this input will go high or this output of the
And gate will go high and we'll reset the latch
So you can see in these cases. It works basically the same way as the Sr
Flip-flop, and it's just that we have the inputs are called J and K instead of instead of snr
So where the Jk Flip-flop gets interesting is if both and Kr1?
Because in that case because you've got these these this feedback here J and K [are] both one
but these these these other two signals these feedback are not going to be both one right because
Either one of either q or not q is going to be high at any point in time
you're not going to have both of them high right, so if q is high
Then this lower [en]. Gate will [be] active and the top one will be off, right?
even if J and K are both one if
Inverse of Q is active then the top and gate would be on and the bottom one would be off
So what this does is it means if the latch is currently set then
Effectively, what's going to happen is this lower n. Gate is going to come on in the [latch] [full] reset at the next clock pulse
Whereas if the klatch is currently reset
Then the top and gate would be on and the latch would current would then set at the next clock pulse me assuming J
And k are both or both one and so that gives you this very interesting state where instead of getting some
Invalid or unpredictable output you get this very predictable output. Which is it'll just toggle
So if Q was zero, it'll switch to one if Q was one it'll switch to zero
And as you'll see that's a very interesting property