Homework 3
Distributed Thursday, October 11, 2007
Due before 10:30, Wednesday, October 17, 2007
Please put your full name and lab section letter on your homework.
Always remember to staple your work, if it is multiple pieces of paper.
If you choose, indicate on the top of your assignment roughly how much time you
spent on it. This information will have no impact on your grade; it will only
be used by an inexperienced course staff to gauge the volume of work to assign.

Reduce to min number of product terms using Boolean cube method:
F(x,y,z) = Σm (1, 2, 4, 5)
( 10 points )
[ Boolean cube minimization is just like Kmap minimization, except you find
planes in the cube instead of rectangles in the Kmap. The concepts are
perfectly analogous. ]
For exercises 25, Use Kmaps to find minimum 2level implementations and draw
the corresponding circuit. If an exercise asks you to use specific gates or a
specific form (sumofproducts or productofsums), do so. Otherwise, you can
choose whichever you prefer.

2.22 (c); and implement minimized F using only NAND gates and minimized F' using only NOR gate
(5+5+5=15 points)

Design a combinational circuit that detects an error in the representation of a
decimal digit in BCD. The output of the circuit must be equal to logic 1 when the
inputs contain any one of the six unused bit combinations in the BCD code.
(10 points)

Design a combinational circuit that multiplies 2, 2bit numbers (A1 A0 and B1
B0). The four outputs are the four bits of the resulting product (P3 P2 P1 P0).
(20 points)

Minimize the following functions using Kmaps:
 F(w,x,y,z) = ΠM(1,4,5,7,13)ΠD(9,14,15)
Use a sumofproducts style, and use only NOR gates.
 F(w,x,y,z) = Σm(1,3,5,8,9,12)+Σd(6,10,14)
Use a productofsums style, and use only NAND gates.
(20 points)
For the Verilog exercises, you can use whatever method you want to implement the
functions. They need not be in minimized 2level form (but they can be).

Write a Verilog module that implements a 21 multiplexer (see figure 4.12 in the
textbook for a truth table for a 21 multiplexer). (10 points)

Write a Verilog module that implements a full adder. Use this module to build a
two bit adder, with two 2bit inputs A and B, and a 2bit output O. (15 points)