#ifndef ATPG_CIRCUIT_ELEMENT_H #define ATPG_CIRCUIT_ELEMENT_H #include <vector> #include <string> enum class ATPGCircuitElementType { WIRE, AND, NAND, OR, NOR }; enum class ATPGValue { ZERO, ONE, DONT_CARE, CRIT_PATH, NOT_INITIALIZED, D, D_NOT }; class ATPGCircuitElement { public: std::vector<std::string> inputs; std::vector<std::string> outputs; ATPGCircuitElementType type; std::string name; ATPGValue value = ATPGValue::NOT_INITIALIZED; char cvalue = 'x'; int delay = 0; int arrival = 0; std::string value_to_string(); void string_to_value(std::string str); }; #endif