EEL4837 Spring 2024 - Excursion 2 Due Date: April 29, 2024
1
EEL4837 Programming for Electrical Engineering II – Spring 2024
Excursion 2: Technology Mapping
Due Date: April 29, 2024
Submission Instructions
Submit your code to Gradescope. You need to submit the following files separately (not as an
archive):
- One or several source code files.
● Your program should read an input file named input.txt located in the same
directory as your source code.
● Your output should be a single integer, which should be written to a file named
output.txt and located in the same directory. - A documentation named readme.txt.
● Explicitly indicate if you are claiming bonus points.
● (Optional) Any other descriptions of your program if you wish to provide.
Description
The goal is to implement an elementary tool for technology mapping, which will: - Transform the original logical expressions into a NAND-NOT tree;
- Calculate the minimum cost of the transformed structure.
Input: a Boolean model specified in the format as shown in the Excursion 2 slides.
Output: a single integer, which is the calculated minimum cost of the transformed structure.
You may assume: - Each node of the input netlist is a single AND, OR, and NOT function.
- In each test case, there will be one output node only. That is, your circuit will be a tree.
- A Technology Library is available, which consists of the components listed in Table 1.
EEL4837 Spring 2024 - Excursion 2 Due Date: April 29, 2024
2
Table 1. Technology Library
Name Cost
NOT 2
NAND2 3
AND2 4
NOR2 6
OR2 4
AOI21 7
AOI22 7
Guidelines - Read a netlist as input. You can assume that all inputs are legal.
- Parse the netlist to construct a tree based on the provided expressions.
- Convert the tree into a NAND-NOT tree.
- Refer to the Technology Library (Table 1) and recursively compute the minimum cost at
each node. - Write the final minimum cost to the output file.
Grading
Total points: 100 - Automated grading (75 pts)
a. Correctness (60 pts): correct results for normal inputs.
b. Robustness (15 pts): correct results for edge cases, such as very simple and very
complex inputs. - Manual grading (25 pts)
a. Efficiency: The time and space complexities are decent. No brute force is
allowed.
EEL4837 Spring 2024 - Excursion 2 Due Date: April 29, 2024
3
b. Elegance: tidy code style,代 写EEL4837 Excursion 2 Technology Mapping understandable comments for key steps as needed,
meaningful functions, etc. - Bonus points (20 pts): implement dynamic programming traversing the tree bottom-up
and saving the intermediate costs for subtrees.
Late Policies
● Late due date: May 3, 2024
● 5% off per late day. No further extension will be permitted due to the UF grading policy
regarding grade report at the end of each semester.
Notes - Your code should be in C++ only. We encourage splitting up your code into multiple
files/functions/classes. - Your program should compile and run successfully on both the ECE Linux server and
Gradescope. - You can only use C++ standard libraries (including STL). Do not use libraries that
implement circuits, trees, or graphs for you. If you are not sure whether a library is
allowed, please reach out to TA. WX:codinghelp