CSE370 Laboratory Assignment 3


Using Decoders and Multiplexors to Implement Boolean Functions

Distributed: April 16
Due: By end of lab session (4/19,21)


In this laboratory assignment you will continue to learn how to use the Aldec Active-HDL tool.  This time the focus will be on schematic and Verilog modules.  You will also see how Verilog modules can be used as test fixtures to help you verify your circuit.  By the end of this lab you should feel comfortable creating a module based on a schematic, creating a Verilog module directly, and setting up a test fixture.

In the hardware portion of this lab, you will use decoders and multiplexors in your kit to implement a full-adder circuit.

Beginning with this lab, you will be working in pairs. The pairings will be posted here (Monday/Wednesday) and in the lab.
However, you should each complete the tutorial section individually, and only work together when implementing your circuits on the protoboard.


  1. Complete the first section of  next ActiveHDL tutorial that covers test fixtures. It would be best if you do this before the lab since you will have to complete the entire tutorial as part of the homework. You'll be asked to use a test fixture to verify the schematic for a full adder circuit.  This first section is quite short, but it is very important. You'll be creating and testing many of your own modules over the rest of the quarter, and now is the time to get comfortable with the process.

  2. In the previous homework assignment, you used a decoder along with a couple OR gates to implement a full-adder.  Start a new schematic, and use a 3:8 decoder (the '138 chip) and gates to implement a full adder with the c74XX packages in the lib370 library. These are identical to the real chips in your kit.  Remember to use de Morgan’s law to pick the right packages.  Create a test circuit schematic using the test fixture given in the tutorial to test your design. As you design your circuit, be sure to use the chip maps as a guide, and pay close attention to the "enable" semantics on the decoder chip.

  3. You can also implement a full-adder using multiplexors.  Use one standard 4:1 multiplexor ('153) for each output (sum and carry-out), along with inverters as necessary, to implement a full-adder. Note that the '153 chip actually contains two independent multiplexors, so you only need one of these chips total. Do not use the 'mux4' part in lib370; use 'c74153.'  Create a test circuit schematic as in Part 2 to test your design. Again, pay attention to the enable semantics for the '153.

  4. Implement both circuits from parts 2 and 3 using your prototyping board.  Connect the inputs to switches (use the same switches for the two circuits) and the outputs to lights.

  5. Show the simulation results and the working circuit to a TA and have them check you off as having completed this laboratory assignment. They may ask you to show them your work and explain your design files and circuit.  Hand in your schematics for parts 2 and 3. Do not hand in waveforms this time.

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