|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
THE BASIC RS NOR LATCH
|
TRUTH TABLE | ||||
---|---|---|---|---|
Input | Output | |||
S | R | Q | not-Q | |
0 | 0 | Latch | Latch | |
0 | 1 | 0 | 1 | |
1 | 0 | 1 | 0 | |
1 | 1 | Invalid | Invalid |
While playing with your friends on campus, you stood on the edge of a four foot bench and from there jumped to the ground. At the exact same time, my very emotional friend Francois stood on the edge of a forty story building and from there jumped to the ground.
Now let’s compare and contrast the two incidents. Both you and Francois jumped to the ground from the edge of a ______. Clearly, you both took the exact same action: You both selected the same inputs: You both jumped to the ground. Hence, if Francois and you end up in different states, it must be
because you two started from different states. Indeed, if you recall from physics or thermodynamics, because of Francois’s starting location (and for no other reason), he had more potential energy than you — potential energy being a state energy as opposed to being a process energy.
As you can see from our short story, the importance of starting condition (or given state) to the operation of a system is not exclusive to digital logic systems. In fact, so many machines exhibit this sequential behavior that we have a name for them: finite state machines. A finite state machine is any machine that stores a finite (not infinite) amount of information about its previous state and uses that information to determine its next state. Perhaps Francois was not aware of his given state. Otherwise, he would not have jumped. But finite state machines remember where they are, and that memory determines what they will do next. Indeed, because feedback sequential circuits are able to store past information, they are used in memory devices such as the general computer and fancy stereo systems.
The most basic useful feedback sequential circuit is the Set-Reset Latch with NOR gates. The Set-Reset Latch, as you might guess from the name, is a finite state machine with two states: a Set state and a Reset state. If you have ever used the cruise control¹ feature of your car, you have essentially made use of a Set-Reset latch. When you select a setting/speed, you set the control circuit; when you cancel your selection, you reset the circuit. It’s that simple — at least from the driver’s perspective.
From the designer’s perspective, on the other hand, a little bit more work has to be done to make sure the circuit operates safely. To begin with, since the circuit has two inputs — Set and Reset — there are four possible input conditions to the control system, as depicted in the table below, table 1.
Reset | Set | Output | |
---|---|---|---|
0 | 0 | ||
0 | 1 | ||
1 | 0 | ||
1 | 1 |
Table 1
But clearly, if we use the cruise control example just a little bit more, you and I both know that at any given time a car is either on cruise control or it is not on cruise control — it’s never on neither or on both at the same simultaneous time. As a result, a designer usually don’t allow the funny conditions where set and reset are both equal (RS = 00 and RS = 11) to affect the safety feature of the system where the circuit is used — in this case the cruise control system.
We analyze circuits to verify certain details about their operation. For combinational circuits, this means deriving a truth table or a Boolean function or both, depending on what your professor is in the mood for. For feedback sequential circuits, however, the list can be a bit longer. Case in point, our analysis of the set-reset latch needs to answer three questions:
- How many different states can the circuit be in?
- What input conditions will cause/excite the circuit to move/transition from state to state?
- What Boolean function (aka characteristic equation) defines the circuit?
–1. Cruise control systems are actually complex electromechanical circuits. However, the illustration is conceptionally intuitive.
Whenever someone asks you to analyze an object, they will give you the object; otherwise, you couldn’t verify anything. I can’t verify that your pizza is too small to share if you won’t show it to me. Hence, your professor will give you the circuit you need to analyze. As such, that is since we already have the circuit, the easiest thing to do is get the Boolean function.
To get the Boolean function, we are going to adopt a nice little technique that will allow us to treat all multivibrators — including this SR Latch — like a combinational circuit. Our technique is illustrated in figure 1 below, where we break the feedback loops into individual outputs and inputs. We use lower case q to represent the given condition (or given state) of the circuit while the upper case Q refers to the output you will get based on how you select R and S.
Figure 1
From figure 1 we can readily get two equations:
Q = (R + not-q)
not-Q = (S + q).
if you are taking an exam and you are running out of time, the two expressions will suffice to show your professor that you get it. Nonetheless, it is customary to present the characteristic equation of any latch or flipflop as a solution of Q in terms of q. so let’s follow the tradition:
Q = (R + not-q) | ||||
Q = (R + not-Q) | after substituting for | not-q = not-Q | ||
Q = (R + (S + q)) | after substituting for | not-Q = (S + q) | ||
Q = R (S + q) | after simplifying the double negatives | |||
Q = R S + R q | after expanding |
A state transition table is a table that shows how a circuit moves between states. From the characteristic equation we see that we have one state variable, q, and two input variables, R and S. Therefore, since each variable in Boolean logic can have two possible values, we can say with certitude that the set-reset latch has two possible states (q = 0; q = 1) and four possible input conditions (RS = 00; RS = 01; RS = 10; RS = 11). On that account, we can now create a table that shows the relationship between the two states and the four input conditions. Accordingly we label the rows of the table by states and the columns by input conditions. And we call the table a state transition table. Table 2 below shows what I am talking about.
Given state q |
||||
---|---|---|---|---|
Input Condition | ||||
RS=00 | RS=01 | RS=10 | RS=11 | |
0 | ||||
1 |
Table 2
Q | = | R (S + q) |
= | 0 (0 + 0) | |
= | 1 (0 + 0) | |
= | 1 (0) | |
= | 0. |
Given state q |
||||
---|---|---|---|---|
Input Condition | ||||
RS=00 | RS=01 | RS=10 | RS=11 | |
0 | 0 | |||
1 |
Table 3
Without showing all the evaluations, I fill the state transition table for you in Table 4. Feel free to check
that my calculations are correct.
Given state q |
||||
---|---|---|---|---|
Input Condition | ||||
RS=00 | RS=01 | RS=10 | RS=11 | |
0 | 0 | 1 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
Table 4
Table 4 effectively answers question two, which asked about the relationship between the input conditions and the states of the circuit. Because tables are not always intuitive, however, an easy to understand diagram, called a state diagram, is usually submitted as part of an analysis. The diagram, figure 2, has the same information as the transition table. But as you can see, the state diagram is the simplest method to show how a circuit behaves — after all it is a picture.
Figure 2