CkPttn 1.2.4
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
Netlist< graph_t > Struct Template Reference

Netlist data structure. More...

#include <netlist.hpp>

Inheritance diagram for Netlist< graph_t >:
Inheritance graph
[legend]

Public Types

using nodeview_t = typename graph_t::nodeview_t
 
using node_t = typename graph_t::node_t
 
using index_t = typename nodeview_t::key_type
 

Public Member Functions

 Netlist (graph_t gr, const nodeview_t &modules, const nodeview_t &nets)
 Construct a new Netlist object.
 
 Netlist (graph_t gr, uint32_t numModules, uint32_t numNets)
 Construct a new Netlist object.
 
auto begin () const
 
auto end () const
 
auto number_of_modules () const -> size_t
 Get the number of modules.
 
auto number_of_nets () const -> size_t
 Get the number of nets.
 
auto number_of_nodes () const -> size_t
 Get the number of nodes.
 
auto get_max_degree () const -> size_t
 Get the max degree.
 
auto get_max_net_degree () const -> size_t
 Get the max net degree.
 
auto get_module_weight (const node_t &v) const -> unsigned int
 Get the module weight.
 
auto get_net_weight (const node_t &) const -> uint32_t
 Get the net weight.
 

Public Attributes

graph_t gr
 The underlying graph structure.
 
nodeview_t modules
 Node view for modules (circuit components)
 
nodeview_t nets
 Node view for nets (connections)
 
size_t num_modules {}
 Number of modules in the netlist.
 
size_t num_nets {}
 Number of nets in the netlist.
 
size_t num_pads {}
 Number of pads (I/O nodes)
 
size_t max_degree {}
 Maximum degree among all modules.
 
size_t max_net_degree {}
 Maximum degree among all nets.
 
std::vector< unsigned int > module_weight
 Weight for each module.
 
bool has_fixed_modules {}
 Flag indicating whether any modules have fixed positions.
 
py::set< node_tmodule_fixed
 Set of modules with fixed positions.
 

Detailed Description

template<typename graph_t>
struct Netlist< graph_t >

Netlist data structure.

Netlist is implemented by xnetwork::Graph, which is a networkx-like graph. It represents a circuit netlist with modules (nodes) and nets (hyperedges).

Member Typedef Documentation

◆ index_t

template<typename graph_t >
using Netlist< graph_t >::index_t = typename nodeview_t::key_type

◆ node_t

template<typename graph_t >
using Netlist< graph_t >::node_t = typename graph_t::node_t

◆ nodeview_t

template<typename graph_t >
using Netlist< graph_t >::nodeview_t = typename graph_t::nodeview_t

Constructor & Destructor Documentation

◆ Netlist() [1/2]

template<typename graph_t >
Netlist< graph_t >::Netlist ( graph_t  gr,
const nodeview_t modules,
const nodeview_t nets 
)

Construct a new Netlist object.

Example:

* Netlist netlist(gr, modules, nets);
* 
Parameters
[in]grgraph
[in]modulesmodule nodes
[in]netsnet nodes

◆ Netlist() [2/2]

template<typename graph_t >
Netlist< graph_t >::Netlist ( graph_t  gr,
uint32_t  numModules,
uint32_t  numNets 
)

Construct a new Netlist object.

Parameters
[in]gr
[in]numModules
[in]numNets

Member Function Documentation

◆ begin()

template<typename graph_t >
auto Netlist< graph_t >::begin ( ) const
inline

◆ end()

template<typename graph_t >
auto Netlist< graph_t >::end ( ) const
inline

◆ get_max_degree()

template<typename graph_t >
auto Netlist< graph_t >::get_max_degree ( ) const -> size_t
inline

Get the max degree.

Returns
size_t

◆ get_max_net_degree()

template<typename graph_t >
auto Netlist< graph_t >::get_max_net_degree ( ) const -> size_t
inline

Get the max net degree.

Returns
index_t

◆ get_module_weight()

template<typename graph_t >
auto Netlist< graph_t >::get_module_weight ( const node_t v) const -> unsigned int
inline

Get the module weight.

Parameters
[in]v
Returns
int

◆ get_net_weight()

template<typename graph_t >
auto Netlist< graph_t >::get_net_weight ( const node_t ) const -> uint32_t
inline

Get the net weight.

Returns
int

◆ number_of_modules()

template<typename graph_t >
auto Netlist< graph_t >::number_of_modules ( ) const -> size_t
inline

Get the number of modules.

Returns
size_t

◆ number_of_nets()

template<typename graph_t >
auto Netlist< graph_t >::number_of_nets ( ) const -> size_t
inline

Get the number of nets.

Returns
size_t

◆ number_of_nodes()

template<typename graph_t >
auto Netlist< graph_t >::number_of_nodes ( ) const -> size_t
inline

Get the number of nodes.

Returns
size_t

Member Data Documentation

◆ gr

template<typename graph_t >
graph_t Netlist< graph_t >::gr

The underlying graph structure.

◆ has_fixed_modules

template<typename graph_t >
bool Netlist< graph_t >::has_fixed_modules {}

Flag indicating whether any modules have fixed positions.

◆ max_degree

template<typename graph_t >
size_t Netlist< graph_t >::max_degree {}

Maximum degree among all modules.

◆ max_net_degree

template<typename graph_t >
size_t Netlist< graph_t >::max_net_degree {}

Maximum degree among all nets.

◆ module_fixed

template<typename graph_t >
py::set<node_t> Netlist< graph_t >::module_fixed

Set of modules with fixed positions.

◆ module_weight

template<typename graph_t >
std::vector<unsigned int> Netlist< graph_t >::module_weight

Weight for each module.

◆ modules

template<typename graph_t >
nodeview_t Netlist< graph_t >::modules

Node view for modules (circuit components)

◆ nets

template<typename graph_t >
nodeview_t Netlist< graph_t >::nets

Node view for nets (connections)

◆ num_modules

template<typename graph_t >
size_t Netlist< graph_t >::num_modules {}

Number of modules in the netlist.

◆ num_nets

template<typename graph_t >
size_t Netlist< graph_t >::num_nets {}

Number of nets in the netlist.

◆ num_pads

template<typename graph_t >
size_t Netlist< graph_t >::num_pads {}

Number of pads (I/O nodes)


The documentation for this struct was generated from the following file: