HAL  v4.5.0-124-g47ab54673
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 *, PtrTypeget_all () const
 
const Netlistget_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 787 of file clock_tree.cpp.

◆ get_gates()

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

Definition at line 757 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 797 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 803 of file clock_tree.cpp.

References direction, ERR, and OK.

◆ get_netlist()

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

Definition at line 792 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 772 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 708 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 739 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 561 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 697 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 720 of file clock_tree.cpp.

References ERR, get_vertex_from_ptr(), and OK.


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