ECE242 Project 5
For this fifth and final project, you will have the chance to implement some common graph algorithms.
Luckily, you will find that many things in this project seem familiar; stacks, queues, ISCAS benchmark
In Project 2, you parsed ISCAS ’89 benchmark netlists and wrote code in order to create an
output list for each gate.
Now, we will use the information we gathered to create a graph that
describes the circuit connectivity and implement some graphing algorithms to find out some things
about the circuit.
Let us first talk about getting started.
Ideally, you should use your code from Project 2 as a starting
However, if your solution was incomplete, or you think it had some problems, the solution to
Project 2 is on the course web site and should prove useful.
For Project 2, you read each line of the
benchmark file and created a Gate object and stored it in a GateLinkedList.
You then wrote the
method determineOutputs(), which created an output array in each Gate object and populated it with
the gate numbers of all the gates that had the Gate in question in their input lists.
You then wrote a
method printGateDetails() that printed out the gate number, gate type, number of inputs and outputs,
and the input and output arrays.
A brief word on this project:
the ideas here are pretty simple to grasp, but solving the problems
requires you to think hard about the algorithms, draw pictures, write code, and do a lot of debugging.
Parts B,C, and D can be solved in any order (they do not have a particular flow, unlike many of the
projects so far), but in your main method, they should be called in the order they are presented.
free to use all the tools you have used in the course so far; stacks and queues will certainly be helpful.