本次美国代写是关于C++ 数字电路功能模拟相关的一个Assignment
You must abide by the Engineering Honor Code. All work submitted should be work done by you and by you alone. If you are unsure about the level of collaboration, please consult Professor Hayes or GSI.
• When you are finished, collect the following final deliverables:
– All .cpp files and .h files that you use, including any extra files that you added.
– Makefile – your program must compile.
– report_{uniquename}.pdf where {uniquename} is your uniquename.
• Create a tar ball with all your deliverables. To do this:
– Create an empty directory called EECS478P3_{uniquename}.
– Copy all your deliverables into this directory.
– Type tar -cvf EECS478P3_{uniquename}.tar EECS478P3_{uniquename}
– Type gzip EECS478P3_{uniquename}.tar
1 Overview
This assignment illustrates functional simulation of digital circuits. In particular, you will do the following:
• Find a topological ordering of a circuit.
• Simulate a circuit and find the corresponding output for a given input vector.
2 Provided Files
The provided tar ball has the following files:
• truthTable.h and truthTable.cpp
• node.h
• circuit.h and circuit.cpp
• main.cpp
• Makefile
Feel free to modify any or all of these files to suit your needs. Please make sure that your final binary is called project3.
2.1 truthTable.h and truthTable.cpp
These two files store the underlying infrastructure for representing a truth table. Each entry stored represents a cover for the logic function.
2.2 node.h
This file defines a logical element (node) or a circuit. It includes a truth table, a list of fan-in nodes, and a type (PRIMARY INPUT, PRIMARY OUTPUT, INTERNAL, ZERO NODE, ONE NODE).
2.3 circuit.h and circuit.cpp
These two files define a circuit, which is defined as a collection of nodes.
2.4 main.cpp
This file contains the general wrapper on how to use the executable. There is a -help option built in. To see the usage, type ./project3 -help.
2.5 Makefile
This file compiles and creates the final binary for this project. You are allowed to modify this file and add any optimization flags of your choice. To compile your program, type make.
3 Getting Started
Download the tar ball eecs478p3.tar.gz from Canvas. To decompress the tar ball, type
tar -xvf eecs478p3.tar.gz
into a directory of your choice.
This will create a directory called eecs478p3 and will include the necessary files for your program. In that directory, compile the program by typing make. To run the program, type ./project3.
This will display the usage options.
You are allowed to do your development on any platform. However, your code will be tested and evaluated strictly on the CAEN Linux machines.
Note that this project is more open-ended than Project 1 and 2. You should feel comfortable with adding member functions to classes, implementing algorithms and using the STL. For more information on the STL, you can go to http://www.sgi.com/tech/stl/ or http://en.cppreference.com/w/. If you want to use other libraries or advanced data structures that you did not write, consult with Professor Hayes or GSI first.