CS 220 - Lab 2: The Core of the Onion: Logic Circuit Design
Due 5:00pm September 24, 2003

General Lab Goals

This lab introduces the fundamentals of logic circuits, elementary circuit design, and the LogicWorks software package. In addition to this lab sheet, you should have a copy of the LogicWorks Tutorial handout, which will help you become familiar with using LogicWorks to design circuits on the Mac.

Accessing Course Software (revision of procedure from Lab 1)

Your personal Bowdoin username and password provide access to the software for this course.  On an iMac in Searles 224, the following steps will connect you:

1.  Pull down Go -> Connect to Server on the main menu, and then enter the Address: afp://collaboration
2.  Enter your personal username and password
3.  Select Computer Science, and a new icon called Computer Science will appear on the desktop
4.  Open the folder Computer Science -> csci220

There, the following folders are particularly useful for completing this and other assignments in this course.

csci220 -> Users -> <your username> is a folder in which you can save work from week to week during the semester.

csci220 -> Drop Box is the place where you can submit an electronic copy of your completed work when you finish an assignment.

Lab Work:

To begin running LogicWorks, double-click on the LogicWorks application.

1. Complete pages 45-70 of the LogicWorks Tutorial and save the final circuit you develop (at page 70) as lab2yourname.1  This Tutorial will give you some basic skills for creating and exercising logic circuits. Completing this Tutorial may take an hour or two of lab time.

2. Design and implement a circuit of your own that will calculate the following boolean function. Be sure to label all the inputs and the output.

        Inputs                  Output
        A       B       C       D
        -----------------       ------    
        0       0       0       0
        0       0       1       1
        0       1       0       1
        0       1       1       1
        1       0       0       1
        1       0       1       0
        1       1       0       0
        1       1       1       1
Test your circuit, by using the timing diagram and observing the changes in output D as you change the values of inputs A, B, and C.  What is the boolean expression that this circuit represents?

3. Revise this circuit so that it achieves the same output with fewer gates.  One way to do this is to consider the use of "negative logic."  That is, first design and implement another circuit to output 1 whenever D is 0, and 0 whenever D is 1. Then feed that output through a final NOT gate so that it computes the original function. Save your resulting circuit as lab2yourname.2  What is the boolean expression that this circuit represents?

4. How many gates did your original circuit require (question 2)? How many did your revised circuit require (question 3)?

5.  Answer questions #1, 4, 6, 7, and 9 on page 198 of your text.

Hand In:

On the due date, turn in hard copies of your circuit designs and your answers to questions 2 through 5.  Also, drag an electronic copy of the circuit file lab2yourname.2 that you designed for question 3 to the csci220 -> Drop Box folder on the desktop.