Best代写-最专业靠谱代写IT | CS | 留学生作业 | 编程代写Java | Python |C/C++ | PHP | Matlab | Assignment Project Homework代写

C++ 数字电路代写 | EECS 478: Project 3 Functional Simulation

C++ 数字电路代写 | EECS 478: Project 3 Functional Simulation

本次美国代写是关于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 or If you want to use other libraries or advanced data structures that you did not write, consult with Professor Hayes or GSI first.