This repository contains an implementation of the Path-Oriented Decision Making (PODEM) algorithm for Automatic Test Pattern Generation (ATPG). PODEM is a widely used method in digital circuit testing to generate test vectors that can detect faults in combinational circuits.
To build the podemquest
package, follow these steps:
But before you begin, ensure you have Python and pip installed on your system. You can follow these links for installation instructions:
-
Clone the Repository:
git clone https://github.com/kanndil/PodemQuest cd podemquest
-
Install Required Tools: Make sure you have
setuptools
andwheel
installed. You can install them using pip:pip install setuptools wheel
-
Build the Package: Run the following command to build the package:
make
This will create the source distribution and wheel files in the dist directory, and link the podemquest executable to your system's PATH.
-
Verify Installation: After building, you can verify that podemquest is installed by running:
podemquest --help
This command should display the help information for the podemquest executable. ✅
To effectively use PodemQuest, you need to provide your design as a synthesized and cut gate-level netlist in the Bench format.
- Synthesized: Refers to a design that has been converted from a high-level description (such as RTL) into a gate-level representation, suitable for physical implementation in hardware.
- Cut: The process of removing non-essential elements, such as flip-flops and latches, from a synthesized design to create a reduced representation focused on the relevant combinational logic for fault analysis.
- Bench Format: A standardized text-based format for representing digital circuits, which includes information about the gates and their interconnections, making it suitable for simulation and testing.
The recommended approach for generating the Bench file is to use the Fault toolchain. Follow this tutorial for detailed instructions on creating your Bench file.
To install the Fault toolchain, please visit the installation guide.
PodemQuest is integrated with the Fault framework, allowing you to use it seamlessly for Automatic Test Pattern Generation (ATPG) following the same tutorial.
The podemquest
command-line tool allows you to run the PODEM algorithm on a specified input file. You must provide the necessary input and output files as command-line arguments.
podemquest -i <input_file> -o <output_file> [-r <report_file>]
-
-i
,--input_file
: (Required) Specify the path to the input file that you want to process with PODEM. -
-o
,--output_file
: (Required) Specify the path where you want to save the PODEM report. -
-r
,--report_file
: (Optional) Specify a path for a detailed report file. If not provided, a default value ofNone
will be used.
To run the tool, use the following command:
podemquest -i path/to/input_file.bench -o path/to/output_file.txt -r path/to/report_file.txt
In this example:
- Replace
path/to/input_file.bench
with the actual path to your input file. - Replace
path/to/output_file.txt
with the desired output file path for the PODEM report. - Optionally, you can specify a report file path using the
-r
flag.
- Ensure that the specified input file exists and is in the correct format expected by the PODEM algorithm. ❗
- The output and report files will be created or overwritten as specified.
This project is licensed under the Apache License 2.0. You may obtain a copy of the License at:
Copyright (c) 2024, Youssef Kandil (youssefkandil@aucegypt.edu) - Mohamed Shalan (mshalan@aucegypt.edu)
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at the link above.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.