Verilog to Routing - VPR
|
The AtomLookup class describes the mapping between components in the AtomNetlist and other netlists/entities (i.e. atom block <-> t_pb, atom block <-> clb) More...
#include <atom_lookup.h>
Public Types | |
typedef vtr::linear_map< AtomPinId, tatum::NodeId >::const_iterator | pin_tnode_iterator |
typedef vtr::Range< pin_tnode_iterator > | pin_tnode_range |
Public Member Functions | |
const t_pb * | atom_pb (const AtomBlockId blk_id) const |
Returns the leaf pb associated with the atom blk_id. More... | |
AtomBlockId | pb_atom (const t_pb *pb) const |
Returns the atom block id associated with pb. More... | |
const t_pb_graph_node * | atom_pb_graph_node (const AtomBlockId blk_id) const |
Conveneince wrapper around atom_pb to access the associated graph node. More... | |
void | set_atom_pb (const AtomBlockId blk_id, const t_pb *pb) |
Sets the bidirectional mapping between an atom and pb. More... | |
const t_pb_graph_pin * | atom_pin_pb_graph_pin (AtomPinId atom_pin) const |
Returns the pb graph pin associated with the specified atom pin. More... | |
void | set_atom_pin_pb_graph_pin (AtomPinId atom_pin, const t_pb_graph_pin *gpin) |
Sets the mapping between an atom pin and pb graph pin. More... | |
ClusterBlockId | atom_clb (const AtomBlockId blk_id) const |
Returns the clb index associated with blk_id. More... | |
void | set_atom_clb (const AtomBlockId blk_id, const ClusterBlockId clb) |
Sets the bidirectional mapping between an atom and clb. More... | |
AtomNetId | atom_net (const ClusterNetId clb_net_index) const |
Returns the atom net id associated with the clb_net_index. More... | |
ClusterNetId | clb_net (const AtomNetId net_id) const |
Returns the clb net index associated with net_id. More... | |
void | set_atom_clb_net (const AtomNetId net_id, const ClusterNetId clb_net_index) |
Sets the bidirectional mapping between an atom net and a clb net. More... | |
tatum::NodeId | atom_pin_tnode (const AtomPinId pin, BlockTnode block_tnode_type=BlockTnode::EXTERNAL) const |
Returns the timing graph node associated with the specified atom netlist pin. More... | |
AtomPinId | tnode_atom_pin (const tatum::NodeId tnode) const |
Returns the atom netlist pin associated with the specified timing graph node. More... | |
AtomLookup::pin_tnode_range | atom_pin_tnodes (BlockTnode block_tnode_type) const |
Returns a range of all pin to tnode mappingsg of the specified type. More... | |
void | set_atom_pin_tnode (const AtomPinId pin, const tatum::NodeId node, BlockTnode block_tnode_type) |
Sets the bi-directional mapping between an atom netlist pin and timing graph node. More... | |
Private Attributes | |
vtr::bimap< AtomBlockId, const t_pb *, vtr::linear_map, std::unordered_map > | atom_to_pb_ |
vtr::vector_map< AtomPinId, const t_pb_graph_pin * > | atom_pin_to_pb_graph_pin_ |
vtr::vector_map< AtomBlockId, ClusterBlockId > | atom_to_clb_ |
vtr::bimap< AtomNetId, ClusterNetId, vtr::linear_map, vtr::linear_map > | atom_net_to_clb_net_ |
vtr::linear_map< AtomPinId, tatum::NodeId > | atom_pin_tnode_external_ |
vtr::linear_map< AtomPinId, tatum::NodeId > | atom_pin_tnode_internal_ |
vtr::linear_map< tatum::NodeId, AtomPinId > | tnode_atom_pin_ |
The AtomLookup class describes the mapping between components in the AtomNetlist and other netlists/entities (i.e. atom block <-> t_pb, atom block <-> clb)
typedef vtr::linear_map<AtomPinId, tatum::NodeId>::const_iterator AtomLookup::pin_tnode_iterator |
typedef vtr::Range<pin_tnode_iterator> AtomLookup::pin_tnode_range |
ClusterBlockId AtomLookup::atom_clb | ( | const AtomBlockId | blk_id | ) | const |
Returns the clb index associated with blk_id.
AtomNetId AtomLookup::atom_net | ( | const ClusterNetId | clb_net_index | ) | const |
Returns the atom net id associated with the clb_net_index.
const t_pb * AtomLookup::atom_pb | ( | const AtomBlockId | blk_id | ) | const |
Returns the leaf pb associated with the atom blk_id.
const t_pb_graph_node * AtomLookup::atom_pb_graph_node | ( | const AtomBlockId | blk_id | ) | const |
Conveneince wrapper around atom_pb to access the associated graph node.
const t_pb_graph_pin * AtomLookup::atom_pin_pb_graph_pin | ( | AtomPinId | atom_pin | ) | const |
Returns the pb graph pin associated with the specified atom pin.
tatum::NodeId AtomLookup::atom_pin_tnode | ( | const AtomPinId | pin, |
BlockTnode | block_tnode_type = BlockTnode::EXTERNAL |
||
) | const |
Returns the timing graph node associated with the specified atom netlist pin.
AtomLookup::pin_tnode_range AtomLookup::atom_pin_tnodes | ( | BlockTnode | block_tnode_type | ) | const |
Returns a range of all pin to tnode mappingsg of the specified type.
ClusterNetId AtomLookup::clb_net | ( | const AtomNetId | net_id | ) | const |
Returns the clb net index associated with net_id.
AtomBlockId AtomLookup::pb_atom | ( | const t_pb * | pb | ) | const |
Returns the atom block id associated with pb.
void AtomLookup::set_atom_clb | ( | const AtomBlockId | blk_id, |
const ClusterBlockId | clb | ||
) |
Sets the bidirectional mapping between an atom and clb.
If either blk_id or clb_index are not valid any existing mapping is removed
void AtomLookup::set_atom_clb_net | ( | const AtomNetId | net_id, |
const ClusterNetId | clb_net_index | ||
) |
Sets the bidirectional mapping between an atom net and a clb net.
If either net_id or clb_net_index are not valid any existing mapping is removed
void AtomLookup::set_atom_pb | ( | const AtomBlockId | blk_id, |
const t_pb * | pb | ||
) |
Sets the bidirectional mapping between an atom and pb.
If either blk_id or pb are not valid any, existing mapping is removed
void AtomLookup::set_atom_pin_pb_graph_pin | ( | AtomPinId | atom_pin, |
const t_pb_graph_pin * | gpin | ||
) |
Sets the mapping between an atom pin and pb graph pin.
void AtomLookup::set_atom_pin_tnode | ( | const AtomPinId | pin, |
const tatum::NodeId | node, | ||
BlockTnode | block_tnode_type | ||
) |
Sets the bi-directional mapping between an atom netlist pin and timing graph node.
AtomPinId AtomLookup::tnode_atom_pin | ( | const tatum::NodeId | tnode | ) | const |
Returns the atom netlist pin associated with the specified timing graph node.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |