Verilog to Routing - VPR
Data Fields
RoutingContext Struct Reference

State relating to routing. More...

#include <vpr_context.h>

Inheritance diagram for RoutingContext:
Inheritance graph
[legend]
Collaboration diagram for RoutingContext:
Collaboration graph
[legend]

Data Fields

vtr::vector< ClusterNetId, t_traceback > trace
 
vtr::vector< ClusterNetId, std::unordered_set< int > > trace_nodes
 
vtr::vector< ClusterNetId, std::vector< int > > net_rr_terminals
 
vtr::vector< ClusterNetId, uint8_t > is_clock_net
 
vtr::vector< ClusterBlockId, std::vector< int > > rr_blk_source
 
std::vector< t_rr_node_route_infrr_node_route_inf
 
vtr::dynamic_bitset non_configurable_bitset
 Information about whether a node is part of a non-configurable set. More...
 
t_net_routing_status net_status
 Information about current routing status of each net. More...
 
vtr::vector< ClusterNetId, t_bbroute_bb
 Limits area within which each net must be routed. More...
 
t_clb_opins_used clb_opins_used_locally
 
std::string routing_id
 SHA256 digest of the .route file. More...
 
vtr::Cache< std::tuple< e_router_lookahead, std::string, std::vector< t_segment_inf > >, RouterLookahead > cached_router_lookahead_
 Cache of router lookahead object. More...
 

Additional Inherited Members

- Public Member Functions inherited from Context
 Context ()=default
 
 Context (Context &)=delete
 
Contextoperator= (Context &)=delete
 
virtual ~Context ()=default
 

Detailed Description

State relating to routing.

This should contain only data structures that describe the current routing implementation, or related router algorithmic state.

Field Documentation

◆ cached_router_lookahead_

vtr::Cache<std::tuple<e_router_lookahead, std::string, std::vector<t_segment_inf> >, RouterLookahead> RoutingContext::cached_router_lookahead_

Cache of router lookahead object.

Cache key: (lookahead type, read lookahead (if any), segment definitions).

◆ clb_opins_used_locally

t_clb_opins_used RoutingContext::clb_opins_used_locally

◆ is_clock_net

vtr::vector<ClusterNetId, uint8_t> RoutingContext::is_clock_net

◆ net_rr_terminals

vtr::vector<ClusterNetId, std::vector<int> > RoutingContext::net_rr_terminals

◆ net_status

t_net_routing_status RoutingContext::net_status

Information about current routing status of each net.

◆ non_configurable_bitset

vtr::dynamic_bitset RoutingContext::non_configurable_bitset

Information about whether a node is part of a non-configurable set.

(i.e. connected to others with non-configurable edges like metal shorts that can't be disabled) Stored in a single bit per rr_node for efficiency bit value 0: node is not part of a non-configurable set bit value 1: node is part of a non-configurable set Initialized once when RoutingContext is initialized, static throughout invocation of router

◆ route_bb

vtr::vector<ClusterNetId, t_bb> RoutingContext::route_bb

Limits area within which each net must be routed.

◆ routing_id

std::string RoutingContext::routing_id

SHA256 digest of the .route file.

Used for unique identification and consistency checking

◆ rr_blk_source

vtr::vector<ClusterBlockId, std::vector<int> > RoutingContext::rr_blk_source

◆ rr_node_route_inf

std::vector<t_rr_node_route_inf> RoutingContext::rr_node_route_inf

◆ trace

vtr::vector<ClusterNetId, t_traceback> RoutingContext::trace

◆ trace_nodes

vtr::vector<ClusterNetId, std::unordered_set<int> > RoutingContext::trace_nodes

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