EEIE30069: VLSI Testing
Assignment #4 (Due: Nov. 17, 2022 23:59:99)
Last update: Oct. 26, 2022
Reading:
-
Section 4.1, 4.2, 4.3, 4.5 (Fault Modeling) (Bushnell and Agrawal), or Section 1.3.2 (Wang, Wu and Wen).
-
Section 5.5 (Fault Simulation) and Sections 5.6 (Fault Sampling) (Bushnell and Agrawal) or Section 3.4 (Wang, Wu and Wen).
- Source code provided in homework #0.
-
Please put all results into a report and try to discuss them.
-
Please compress the folder containing your source code files and a report into a file named by
ASS4_<your-student-ID> and upload it to New E3.
-
Your report should explain
- The algorithm or idea in your code
- Several case results
- Discuss your results
- Other information (optional)
Homework Description:
-
(130 pts) Fault list generation:
-
(30 pts) Please re-implement the fault generation function with the checkpoint theorem. How much percentage of faults have been collapsed? Please compare the number of faults.
-
(100 pts) We would like to create a special fault list for bridging faults. To avoid the huge number of all possible faults, we usually use layout to pick adjacent nets for bridging. Since we do not want to create a very complex IFA (inductive fault analysis) framework in this homework, it is assumed that only nets within the same level can have bridging between them. Also, nets in each level are arranged in PODEM's native ordering. Each net can have up to two neighbors according to the ordering.
For example, say we have nets in this order: n0, n1, n2, n3, ..., nk. The net n2 will only bridge with n1 and n3 in this model. But for n0, it can only bridge with one net: n1. There are two types of bridge faults between two nets. For example, (n0, n1, AND) or (n0, n1, OR). Note that each type of bridge fault will happen when the two nets have opposite logic values. For example, the bridge fault (n0, n1, AND) will happen when (n0=0, n1=1) and (n0=1, n1=0), and this bridge fault will lead to (n0=n1=0).
Please create a bridging fault list in the PODEM program according to the description above, and print the bridge faults to the specified output file. Note that you need to create a new fault data structure for the new faults.
Grading:
- Correctness 90%
- Report 10%
Attention:
-
The command for 1.-a. is as follows:
- ./atpg -check_point [circuit_name]
-
The command for 1.-b. is as follows:
- ./atpg -bridging -output [output_file_name] [circuit_name]