HAL  v4.5.0-133-g64838ea8d
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::cte::ClockTree Class Reference

#include </home/runner/work/hal/hal/plugins/clock_tree_extractor/include/clock_tree_extractor/clock_tree.h>

Collaboration diagram for hal::cte::ClockTree:
Collaboration graph

Public Member Functions

 ClockTree (const Netlist *netlist, igraph_t &&graph, std::unordered_set< igraph_integer_t > &&roots, std::unordered_map< igraph_integer_t, const void * > &&m_vertices_to_ptrs, std::unordered_map< const void *, PtrType > &&m_ptrs_to_types)
 
 ~ClockTree ()
 
Result< std::monostate > export_dot (const std::string &pathname) const
 
Result< std::vector< std::pair< const void *, PtrType > > > get_neighbors (const void *ptr, igraph_neimode_t direction) const
 
Result< std::unique_ptr< ClockTree > > get_subtree (const void *ptr, const bool parent) const
 
Result< igraph_integer_t > get_vertex_from_ptr (const void *ptr) const
 
Result< std::pair< const void *, PtrType > > get_ptr_from_vertex (const igraph_integer_t vertex) const
 
Result< std::vector< igraph_integer_t > > get_vertices_from_ptrs (const std::vector< const void * > &ptrs) const
 
Result< std::vector< std::pair< const void *, PtrType > > > get_ptrs_from_vertices (const std::vector< igraph_integer_t > &vertices) const
 
const std::vector< const Gate * > get_gates () const
 
const std::vector< const Net * > get_nets () const
 
const std::unordered_map< const void *, PtrType > get_all () const
 
const Netlist * get_netlist () const
 
const igraph_t * get_igraph () const
 

Static Public Member Functions

static Result< std::unique_ptr< ClockTree > > from_netlist (const Netlist *netlist)
 

Detailed Description

Definition at line 79 of file clock_tree.h.

Constructor & Destructor Documentation

◆ ClockTree()

hal::cte::ClockTree::ClockTree ( const Netlist *  netlist,
igraph_t &&  graph,
std::unordered_set< igraph_integer_t > &&  roots,
std::unordered_map< igraph_integer_t, const void * > &&  m_vertices_to_ptrs,
std::unordered_map< const void *, PtrType > &&  m_ptrs_to_types 
)

Definition at line 136 of file clock_tree.cpp.

◆ ~ClockTree()

hal::cte::ClockTree::~ClockTree ( )

Definition at line 155 of file clock_tree.cpp.

Member Function Documentation

◆ export_dot()

Result< std::monostate > hal::cte::ClockTree::export_dot ( const std::string &  pathname) const

◆ from_netlist()

◆ get_all()

const std::unordered_map< const void *, PtrType > hal::cte::ClockTree::get_all ( ) const

Definition at line 789 of file clock_tree.cpp.

◆ get_gates()

const std::vector< const Gate * > hal::cte::ClockTree::get_gates ( ) const

Definition at line 759 of file clock_tree.cpp.

References hal::cte::GATE, and type.

Referenced by hal::PYBIND11_PLUGIN().

◆ get_igraph()

const igraph_t * hal::cte::ClockTree::get_igraph ( ) const

Definition at line 799 of file clock_tree.cpp.

◆ get_neighbors()

Result< std::vector< std::pair< const void *, PtrType > > > hal::cte::ClockTree::get_neighbors ( const void *  ptr,
igraph_neimode_t  direction 
) const

Definition at line 805 of file clock_tree.cpp.

References direction, ERR, and OK.

◆ get_netlist()

const Netlist * hal::cte::ClockTree::get_netlist ( ) const

Definition at line 794 of file clock_tree.cpp.

Referenced by hal::PYBIND11_PLUGIN().

◆ get_nets()

const std::vector< const Net * > hal::cte::ClockTree::get_nets ( ) const

Definition at line 774 of file clock_tree.cpp.

References hal::cte::NET, and type.

Referenced by hal::PYBIND11_PLUGIN().

◆ get_ptr_from_vertex()

Result< std::pair< const void *, PtrType > > hal::cte::ClockTree::get_ptr_from_vertex ( const igraph_integer_t  vertex) const

Definition at line 710 of file clock_tree.cpp.

References ERR, and OK.

Referenced by get_ptrs_from_vertices().

◆ get_ptrs_from_vertices()

Result< std::vector< std::pair< const void *, PtrType > > > hal::cte::ClockTree::get_ptrs_from_vertices ( const std::vector< igraph_integer_t > &  vertices) const

Definition at line 741 of file clock_tree.cpp.

References ERR, get_ptr_from_vertex(), and OK.

◆ get_subtree()

Result< std::unique_ptr< ClockTree > > hal::cte::ClockTree::get_subtree ( const void *  ptr,
const bool  parent 
) const

Definition at line 563 of file clock_tree.cpp.

References ERR, and OK.

◆ get_vertex_from_ptr()

Result< igraph_integer_t > hal::cte::ClockTree::get_vertex_from_ptr ( const void *  ptr) const

Definition at line 699 of file clock_tree.cpp.

References ERR, and OK.

Referenced by get_vertices_from_ptrs().

◆ get_vertices_from_ptrs()

Result< std::vector< igraph_integer_t > > hal::cte::ClockTree::get_vertices_from_ptrs ( const std::vector< const void * > &  ptrs) const

Definition at line 722 of file clock_tree.cpp.

References ERR, get_vertex_from_ptr(), and OK.


The documentation for this class was generated from the following files: