MC logo

Assignment 3

  Parallel Programming Assignments

60 pts


Due: Mar 29

As discussed on 4/14, this assignment is an extension of the Speedes-based circuit simulation. The simulation code is here. The archive contains the code, make file and the flip-flop input example. Unzip it on the cluster where you like. It creates a directory circ, and the make command will build the executable gates1.

As we discussed, please add two devices, a connector and a numeric display. The connector is essentially a not gate that doesn't invert and doesn't delay. It allows one inbound connection and forwards all received signals to any number of outbound connections at the same time they were received. Since C is taken, assign it J for "Join" in the input file.

The numeric display takes any number of inputs and displays the decimal value of its input signal taken as a binary number. Treat the first input line, a in the input file format, as the low-order bit. Print the value whenever the input changes. Give this device type the letter D. Also let the numeric display be configurable with an output message as an LED is.

Also as noted on Thursday, this will require you to add these two letters to the list in connector.C, and to increase NUMLETS in the header file. You will also need to add cases to the xmit method in connector.C, and update Main.C to plug your new objects into the simulation. You may put the new classes into new files, or add them to existing files. If you create new .C files, you must add them to the list of SRCS in the Makefile for building.

The documentation for Speedes is available at If you are at all curious, the source code is on the chicago node under /usr/speedes.

To send your modified program back, recreate the archive with make gate.tgz. If you add files needed to build the program, first add their names to the PACKFILES variable near the bottom of the Makefile. Then send it here.