Verilog to Routing - VPR
|
State relating the device. More...
#include <vpr_context.h>
Data Fields | |
DeviceGrid | grid |
t_physical_tile_type_ptr | EMPTY_PHYSICAL_TILE_TYPE |
t_logical_block_type_ptr | EMPTY_LOGICAL_BLOCK_TYPE |
std::vector< t_physical_tile_type > | physical_tile_types |
std::vector< t_logical_block_type > | logical_block_types |
bool | has_multiple_equivalent_tiles |
Boolean that indicates whether the architecture implements an N:M physical tiles to logical blocks mapping. More... | |
t_chan_width | chan_width |
chan_width is for x|y-directed channels; i.e. between rows More... | |
t_rr_graph_storage | rr_nodes |
std::vector< t_rr_indexed_data > | rr_indexed_data |
std::vector< t_rr_rc_data > | rr_rc_data |
Fly-weighted Resistance/Capacitance data for RR Nodes. More... | |
std::vector< std::vector< int > > | rr_non_config_node_sets |
Sets of non-configurably connected nodes. More... | |
std::unordered_map< int, int > | rr_node_to_non_config_node_set |
Reverse look-up from RR node to non-configurably connected node set (index into rr_nonconf_node_sets) More... | |
t_rr_node_indices | rr_node_indices |
The indicies of rr nodes of a given type at a specific x,y grid location. More... | |
std::vector< t_rr_switch_inf > | rr_switch_inf |
std::vector< t_segment_inf > | rr_segments |
Wire segment types in RR graph. More... | |
int | num_arch_switches |
t_arch_switch_inf * | arch_switch_inf |
std::vector< std::unique_ptr< ClockNetwork > > | clock_networks |
std::vector< std::unique_ptr< ClockConnection > > | clock_connections |
int | virtual_clock_network_root_idx |
rr_node idx that connects to the input of all clock network wires More... | |
MetadataStorage< int > | rr_node_metadata |
Attributes for each rr_node. More... | |
MetadataStorage< std::tuple< int, int, short > > | rr_edge_metadata |
Attributes for each rr_edge. More... | |
std::vector< std::map< int, int > > | switch_fanin_remap |
switch_fanin_remap is only used for printing out switch fanin stats (the -switch_stats option) More... | |
const t_arch * | arch |
t_clock_arch * | clock_arch |
std::string | read_rr_graph_filename |
Name of rrgraph file read (if any). More... | |
Additional Inherited Members | |
![]() | |
Context ()=default | |
Context (Context &)=delete | |
Context & | operator= (Context &)=delete |
virtual | ~Context ()=default |
State relating the device.
This should contain only data structures describing the targeted device.
const t_arch* DeviceContext::arch |
t_arch_switch_inf* DeviceContext::arch_switch_inf |
t_chan_width DeviceContext::chan_width |
chan_width is for x|y-directed channels; i.e. between rows
t_clock_arch* DeviceContext::clock_arch |
std::vector<std::unique_ptr<ClockConnection> > DeviceContext::clock_connections |
std::vector<std::unique_ptr<ClockNetwork> > DeviceContext::clock_networks |
t_logical_block_type_ptr DeviceContext::EMPTY_LOGICAL_BLOCK_TYPE |
t_physical_tile_type_ptr DeviceContext::EMPTY_PHYSICAL_TILE_TYPE |
DeviceGrid DeviceContext::grid |
FPGA complex block grid [0 .. grid.width()-1][0 .. grid.height()-1]
bool DeviceContext::has_multiple_equivalent_tiles |
Boolean that indicates whether the architecture implements an N:M physical tiles to logical blocks mapping.
std::vector<t_logical_block_type> DeviceContext::logical_block_types |
int DeviceContext::num_arch_switches |
std::vector<t_physical_tile_type> DeviceContext::physical_tile_types |
std::string DeviceContext::read_rr_graph_filename |
Name of rrgraph file read (if any).
Used to determine when reading rrgraph if file is already loaded.
MetadataStorage<std::tuple<int, int, short> > DeviceContext::rr_edge_metadata |
Attributes for each rr_edge.
key: <source rr_node_index, sink rr_node_index, iswitch> iswitch: Index of the switch type used to go from this rr_node to the next one in the routing. OPEN if there is no next node (i.e. this node is the last one (a SINK) in a branch of the net's routing). value: map of <attribute_name, attribute_value>
std::vector<t_rr_indexed_data> DeviceContext::rr_indexed_data |
t_rr_node_indices DeviceContext::rr_node_indices |
The indicies of rr nodes of a given type at a specific x,y grid location.
MetadataStorage<int> DeviceContext::rr_node_metadata |
Attributes for each rr_node.
key: rr_node index value: map of <attribute_name, attribute_value>
std::unordered_map<int, int> DeviceContext::rr_node_to_non_config_node_set |
Reverse look-up from RR node to non-configurably connected node set (index into rr_nonconf_node_sets)
t_rr_graph_storage DeviceContext::rr_nodes |
std::vector<std::vector<int> > DeviceContext::rr_non_config_node_sets |
Sets of non-configurably connected nodes.
std::vector<t_rr_rc_data> DeviceContext::rr_rc_data |
Fly-weighted Resistance/Capacitance data for RR Nodes.
std::vector<t_segment_inf> DeviceContext::rr_segments |
Wire segment types in RR graph.
std::vector<t_rr_switch_inf> DeviceContext::rr_switch_inf |
std::vector<std::map<int, int> > DeviceContext::switch_fanin_remap |
switch_fanin_remap is only used for printing out switch fanin stats (the -switch_stats option)
array index: [0..(num_arch_switches-1)]; map key: num of all possible fanin of that type of switch on chip map value: remapped switch index (index in rr_switch_inf)
int DeviceContext::virtual_clock_network_root_idx |
rr_node idx that connects to the input of all clock network wires
Useful for two stage clock routing XXX: currently only one place to source the clock networks so only storing a single value