University of California at Berkeley College of Engineering 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