## CSE370 Assignment 4

### Distributed: 16 April 1999 Due: 23 April 1999

1. Katz, Chapter 3 (pp. 137-147).
2. Katz, Chapter 4 (pp. 160-194, 202-205).

#### Exercises:

1. Katz exercise 3.4 (c).
2. Katz exercise 3.6 (a).
3. Katz exercise 3.8 (e).
4. Katz exercise 3.13 (but set the delay of the XOR/XNOR gates to be 3 times that of the NAND gates) using DesignWorks' simulator and turn in your waveform display).
5. Construct a schematic for the function F of the example in Section 3.4.3 (page 144) and its hazard-free implementation (F2). Recreate the timing diagrams shown in Figure 3.36 and Figure 3.38 using the DesignWorks waveform display.
6. Implement the 2-bit multiplier function (i.e., 2-bit number AB times 2-bit number CD yields 4-bit number WXYZ) using 4 16:1 multiplexers. Show you truth table and how you derived the inputs to the multiplexers. Now reimplement the circuit using 4 8:1 multiplexers controlled by the inputs A, B, and C (you can assume that D and D' are available). Turn in a DesignWorks schematic that uses the Mux-8 devices in the Primlog library (make sure to tie the EN input of the multiplexers to 0).
7. Katz problem 4.16 and add part
(e) Implement the function using two 3:8 decoders (Decoder-8) where the decoder control inputs are B, C, and D and turn in your DesignWorks schematic.
8. You have a collection of 16 DVDs. To keep track of your favorite movies, you bar-coded each DVD. Unfortunately, the bar-coding system only outputs a four-bit number, with no information as to whether the DVD is one of your favorites.
(a) Create a system that will output a 1 if the bar-coding system detects a favorite DVD. Your favorite DVDs are numbers 1, 5, 6, 9, 12, and 15, which doesn't simplify nicely via a K-map. Implement the function using a 4:16 decoder and 3-input OR gates.
(b) Now suppose your list of favorites changed to numbers 0, 2, 7, 8, 10, and 13. What change would you need to make to your circuit in part (a) to detect these new values?

#### Rationale:

• To practice manipulation of multi-level logic.
• To understand the time behavior of logic circuits.
• To use multiplexers and decoders to realize combinational logic functions.

Comments to: cse370-webmaster@cs.washington.edu (Last Update: 04/25/99)