Thread: Karnaugh Maps View Single Post

14. The "Don't Care Condition

Often, when we are designing new functions, the input signals, are constrained as to what combination of states will be received. As an example, there could be a system with four machines configured so that no more than two could be running at a time, and our logic could produce its output depending upon which of these is operating or off. Right off, there are certain constraints - - - conditions we don't have to deal with. We could show these conditions with a truth table, representing the machine state outputs by "A", "B", "C" and "D", as follows:

Machine output - - - - D - - C - - B - - A
- - - - - - - - - - - - - - - -0 - - 0 - - 0 - - - 0
- - - - - - - - - - - - - - - -0 - - 0 - - 0 - - - 1
- - - - - - - - - - - - - - - -0 - - 0 - - 1 - - - 0
- - - - - - - - - - - - - - - -0 - - 0 - - 1 - - - 1
- - - - - - - - - - - - - - - -0 - - 1 - - 0 - - - 0
- - - - - - - - - - - - - - - -0 - - 1 - - 0 - - - 1
- - - - - - - - - - - - - - - -0 - - 1 - - 1 - - - 0
- - - - - - - - - - - - - - - -0 - - 1 - - 1 - - - 1 - - - - - Not allowed
- - - - - - - - - - - - - - - -1 - - 0 - - 0 - - - 0
- - - - - - - - - - - - - - - -1 - - 0 - - 0 - - - 1
- - - - - - - - - - - - - - - -1 - - 0 - - 1 - - - 0
- - - - - - - - - - - - - - - -1 - - 0 - - 1 - - - 1 - - - - - Not allowed
- - - - - - - - - - - - - - - -1 - - 1 - - 0 - - - 0
- - - - - - - - - - - - - - - -1 - - 1 - - 0 - - - 1 - - - - - Not allowed
- - - - - - - - - - - - - - - -1 - - 1 - - 1 - - - 0 - - - - - Not allowed
- - - - - - - - - - - - - - - -1 - - 1 - - 1 - - - 1 - - - - - Not allowed

As we can see, there are five combinations of states (0n-off) of the four machines that we will not see, because they are already constrained so as to not operate in those combinations. Because of that, we can more-or-less ignore those states, or even better, handle those states to our own advantage, in our designs. In other words, we can treat them in our designs, to contribute to our logic either as an "occurrence" or as a "non-occurrence", because we'll never have to deal with them. In other words, we can treat them as either "ones" or "zeros" on our map.

These constrained states we call "don't care" states, and as convention, we can represent them as the letter "N" on our maps. Then when grouping our terms, we can choose to either 'include' or to 'not-include' each of them, depending upon which is advantageous to our design - - whichever makes the design simpler.

One word of caution should be voiced here. Whichever way we choose to configure our design, that is how our logic will behave overall - - - so if the "not allowed" should occur, our logic will then define how our circuit behaves. In the real world we should check for contingencies, and determine what would happen if the 'unthinkable' should occur. Usually this won't be a consideration in our design, simply because, in such a case, things will already have gone wrong, and our curcuit won't generally make it any more wrong - - - but we should still check after designing, to make sure. Some sort of recovery might be in order (like with clocks when the power blinks out), but this is usually included in our 'start-up' circuit.

The 'don't care' condition is a powerful design tool, which should prove helpful in many occasions.

KM

P.S: With this insertion I have included an eight-variable map, for general use.
Attached Files
 K_Map8C.pdf (19.9 KB, 34 views)