Minimizing Magic

This experiment will be a little different than the previous labs. You will be placed in a (pseudo) real world design situation, and asked to complete a design using a limited number of parts and part types. You should use your skills for representing logic functions in different ways, your skills with LogicWorks, and your problem solving skills to complete this design.

For this experiment you will need the following equipment:

- proto board with logic probes and switches.
- 1 74`00 (quadruple 2-input NANDs)
- 1 74`02 (quadruple 2-input NORs)
- 1 74`10 (triple 3-input NANDs)

(See the data sheets for the lab for descriptions of the circuits.)

- Read over the lab sections of this experiment. Be sure you understand what is to be done.
- Show how your ``partner'' (who is described in subsequent sections) used an `02 device as a voltage inverter in Figure 2.
- Try to solve the puzzle posed below and complete the design as much as you can. In your prelab write-up, document (with Xilinx Circuit Diagrams) the implementation of the three functions in ``Magic'' described below. If you cannot solve the puzzle before the lab, do the ``best'' design you can. TA may be able to give you hints in the lab.
- Prepare any tables you think you will need to verify the operation of the ``Magic'' box.

You and your friend have been working for a small Engineering consulting firm (Copperfield Logic Associates) for a few months doing digital logic design. About a week ago, a client came in with a spec for a gizmo he needed within one week, and the two of you were assigned to the project. Since the design was a little involved, you decided to divide the project into two modules, each of you working on your own parts. The deadline for demonstrating the working prototype of the gizmo to the client is tomorrow afternoon. Both you and your friend have made pretty good progress over the last week. In fact, your part is almost done, but to make sure you meet the deadline, you decided to stay and work when she went to lunch today. A good choice, as you got your module working perfectly and are looking forward to going home to relax and hassling your friend tomorrow as she tries to finish hers. Just as you are about to leave, your boss (no one knows his real name, but everyone calls him TA) rushes up to you in a panic. He just got a phone call, and it seems that your friend got a bad shrimp at lunch today and was rushed to the hospital. Fortunately, she will be okay and recover completely. Unfortunately she will be unconscious for the next 48 hours and will not be able to finish her module in time and will not be able to help you finish it either. TA gives you her design notebook and tells you to work on the design tonight. When you come into the lab tomorrow you will have to build and test the other module to be ready for the demo with the client.

You take a look at your partner's design notebook at home, and see that
she has done a pretty good job, so far. She has called her module ``Magic'',
and drawn a block diagram as shown in Figure 1 with four inputs; *Ab, Ber,
Ca,* and *Daber*, and three outputs; *Hither, Dither,* and *Yon*.

Figure 1. Block Diagram for Magic

Unfortunately, the page with the word description of the ``Magic'' box
is missing from the design book, but your partner has begun the design work
on the three functions. She has completed the Circuit Diagram for the function
*Hither* as seen in Figure 2 and derived a Truth Table for *Dither*
as seen in Table 1.

Figure 2. Circuit Diagram for *Hither*

Table 1. Truth Table for *Dither*

You also find a Maxterm expansion for the function, *Yon* as follows:

Looking over the notebook, you see that so far, there are three chips that are needed; a 74`00, 74`02, and 74`10. The last entry your partner made before going to lunch is scrawled in the margin. It says:

``I've been staring at these K-Maps for hours, and I finally see how to implement

Dither.HandYon.Lwithout adding any more chips to the board!''

Your job is to figure out what she meant by that and finish this design. Then you should simulate, build and test it.

Your lab write-up should include the final Circuit Diagrams together with Truth Tables for each function showing expected, simulated and measure values.

(Hint: Draw K-maps and see if there's a relationship between them.)