67 const std::function<
bool(
const Gate*)>& target_gate_filter,
68 bool continue_on_match =
false,
69 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& exit_endpoint_filter =
nullptr,
70 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& entry_endpoint_filter =
nullptr)
const;
88 const std::function<
bool(
const Gate*)>& target_gate_filter,
89 bool continue_on_match =
false,
90 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& exit_endpoint_filter =
nullptr,
91 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& entry_endpoint_filter =
nullptr)
const;
109 const std::function<
bool(
const Gate*)>& target_gate_filter,
110 bool continue_on_mismatch =
false,
111 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& exit_endpoint_filter =
nullptr,
112 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& entry_endpoint_filter =
nullptr)
const;
130 const std::function<
bool(
const Gate*)>& target_gate_filter,
131 bool continue_on_mismatch =
false,
132 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& exit_endpoint_filter =
nullptr,
133 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& entry_endpoint_filter =
nullptr)
const;
149 Result<std::set<Gate*>> get_next_matching_gates_until_depth(
const Net*
net,
bool successors,
u32 max_depth,
const std::function<
bool(
const Gate*)>& target_gate_filter =
nullptr)
const;
165 Result<std::set<Gate*>> get_next_matching_gates_until_depth(
const Gate* gate,
bool successors,
u32 max_depth,
const std::function<
bool(
const Gate*)>& target_gate_filter =
nullptr)
const;
180 get_next_sequential_gates(
const Net*
net,
bool successors,
const std::set<PinType>& forbidden_pins = {}, std::unordered_map<const Net*, std::set<Gate*>>* cache =
nullptr)
const;
195 get_next_sequential_gates(
const Gate* gate,
bool successors,
const std::set<PinType>& forbidden_pins = {}, std::unordered_map<const Net*, std::set<Gate*>>* cache =
nullptr)
const;
206 Result<std::map<Gate*, std::set<Gate*>>> get_next_sequential_gates_map(
bool successors,
const std::set<PinType>& forbidden_pins)
const;
219 Result<std::set<Gate*>>
220 get_next_combinational_gates(
const Net*
net,
bool successors,
const std::set<PinType>& forbidden_pins = {}, std::unordered_map<const Net*, std::set<Gate*>>* cache =
nullptr)
const;
233 Result<std::set<Gate*>>
234 get_next_combinational_gates(
const Gate* gate,
bool successors,
const std::set<PinType>& forbidden_pins = {}, std::unordered_map<const Net*, std::set<Gate*>>* cache =
nullptr)
const;
248 Result<std::optional<u32>> get_shortest_path_distance(
const Gate* start_gate,
249 const Gate* end_gate,
251 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& exit_endpoint_filter =
nullptr,
252 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& entry_endpoint_filter =
nullptr)
const;
266 Result<std::optional<std::vector<Gate*>>>
get_shortest_path(
const Gate* start_gate,
267 const Gate* end_gate,
269 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& exit_endpoint_filter =
nullptr,
270 const std::function<
bool(
const Endpoint*,
const u32 current_depth)>& entry_endpoint_filter =
nullptr)
const;
275 const Netlist& m_netlist;
Result< std::set< Gate * > > get_next_matching_gates_until(const Net *net, bool successors, const std::function< bool(const Gate *)> &target_gate_filter, bool continue_on_mismatch=false, const std::function< bool(const Endpoint *, const u32 current_depth)> &exit_endpoint_filter=nullptr, const std::function< bool(const Endpoint *, const u32 current_depth)> &entry_endpoint_filter=nullptr) const
Result< std::set< Gate * > > get_next_matching_gates(const Gate *gate, bool successors, const std::function< bool(const Gate *)> &target_gate_filter, bool continue_on_match=false, const std::function< bool(const Endpoint *, const u32 current_depth)> &exit_endpoint_filter=nullptr, const std::function< bool(const Endpoint *, const u32 current_depth)> &entry_endpoint_filter=nullptr) const
Result< std::set< Gate * > > get_next_matching_gates_until(const Gate *gate, bool successors, const std::function< bool(const Gate *)> &target_gate_filter, bool continue_on_mismatch=false, const std::function< bool(const Endpoint *, const u32 current_depth)> &exit_endpoint_filter=nullptr, const std::function< bool(const Endpoint *, const u32 current_depth)> &entry_endpoint_filter=nullptr) const
Result< std::set< Gate * > > get_next_matching_gates(const Net *net, bool successors, const std::function< bool(const Gate *)> &target_gate_filter, bool continue_on_match=false, const std::function< bool(const Endpoint *, const u32 current_depth)> &exit_endpoint_filter=nullptr, const std::function< bool(const Endpoint *, const u32 current_depth)> &entry_endpoint_filter=nullptr) const
std::vector< Gate * > get_next_sequential_gates(const Gate *gate, bool get_successors, std::unordered_map< u32, std::vector< Gate * >> &cache)
std::vector< Gate * > get_shortest_path(Gate *start_gate, Gate *end_gate, bool search_both_directions)