University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science EECS 150 Spring 2001 R. H. Katz Problem Set # 4 (Assigned 8 February, Due 16 February) 1. 2. 3. 4. Design a combinational logic subsystem with three inputs, I3, I2, I1, and two outputs, O1, O0, that behaves as follows. The outputs indicate the highest index of the inputs that is driven high. For example, if I3 is 0, I2 is 1, I1 is 1, then O1, O0 would be 10 (i.e., I2 is the highest input set to 1). (a) Specify the function by filling out a complete truth table. (b) Develop the minimized gate-level implementation using the K-map method. (c) Develop an implementation using two 4:1 multiplexers. (d) Compare your implementation for 1(b) and 1(c). Which is better and under what criterion? Your task is to design a combinational logic subsystem to decode a hexadecimal digit in the range of 0 through 9, A through F to drive a seven-segment display. The hexadecimal numerals are as follows: Design a minimized implementation in PLA form. That is, look for common terms among the seven output functions. Consider the seven-segment display decoder for the numerals 0 through 9 presented in class. Rather than the usual way of encoding the ten digits that you have known since pre-school (see 0 through 9 above), develop an alternative encoding that minimizes the logic to implement the decoder (HINT: think “near” one hot encodings). Show your encoding and the minimized Boolean equations necessary for its implementation. Describe the rationale for your design (EXTRA CREDIT for the true minimal solution encoding!). Consider a variation on the calendar combinational subsystem that works as follows. Given the inputs MONTH (1-12), DAY (1-31), and LEAP_YEAR flag, the subsystem generates the output DAY_OF_YEAR (1-365 or 366). In this problem, you will design the subsystem to the block diagram level only. (a) One block maps the month into a day offset into the year. Identify the inputs and outputs and their bit widths. Use any formal specification method you wish (e.g., truth tables, ROM contents, equations, hardware description language, etc.) to describe the function of this block. (b) You may assume any width binary adder you may require. Indicate how the adder is composed with the block of part (a) and any other blocks or inputs to compute the correct output. Be sure to describe how you deal with the LEAP_YEAR input