VPR-6.0

s_rr_node Struct Reference

#include <vpr_types.h>

Collaboration diagram for s_rr_node:

Data Fields

short xlow
short xhigh
short ylow
short yhigh
short ptc_num
short cost_index
short occ
short capacity
short fan_in
short num_edges
t_rr_type type
int * edges
short * switches
float R
float C
enum e_direction direction
enum e_drivers drivers
int num_wire_drivers
int num_opin_drivers
int prev_node
int prev_edge
int net_num
t_pb_graph_pinpb_graph_pin
t_tnodetnode
float pack_intrinsic_cost

Detailed Description

Main structure describing one routing resource node. Everything in this structure should describe the graph -- information needed only to store algorithm-specific data should be stored in one of the parallel rr_node_?? structures.

  • xlow, xhigh, ylow, yhigh: Integer coordinates (see route.c for coordinate system) of the ends of this routing resource. xlow = xhigh and ylow = yhigh for pins or for segments of length 1. These values are used to decide whether or not this node should be added to the expansion heap, based on things like whether it's outside the net bounding box or is moving further away from the target, etc.
  • type: What is this routing resource?
  • ptc_num: Pin, track or class number, depending on rr_node type. Needed to properly draw.
  • cost_index: An integer index into the table of routing resource indexed data (this indirection allows quick dynamic changes of rr base costs, and some memory storage savings for fields that have only a few distinct values).
  • occ: Current occupancy (usage) of this node.
  • capacity: Capacity of this node (number of routes that can use it).
  • num_edges: Number of edges exiting this node. That is, the number of nodes to which it connects.
  • edges[0..num_edges-1]: Array of indices of the neighbours of this node.
  • switches[0..num_edges-1]: Array of switch indexes for each of the edges leaving this node.

The following parameters are only needed for timing analysis.

  • R: Resistance to go through this node. This is only metal resistance (end to end, so conservative) -- it doesn't include the switch that leads to another rr_node.
  • C: Total capacitance of this node. Includes metal capacitance, the input capacitance of all switches hanging off the node, the output capacitance of all switches to the node, and the connection box buffer capacitances hanging off it.
  • direction: if the node represents a track, this field indicates the direction of the track. Otherwise the value contained in the field should be ignored. (UDSD by AY)
  • drivers: if the node represents a track, this field indicates the driving architecture of the track. Otherwise the value contained in the field should be ignored. (UDSD by AY)

Definition at line 795 of file vpr_types.h.


Field Documentation

float s_rr_node::C

Definition at line 814 of file vpr_types.h.

Definition at line 806 of file vpr_types.h.

Definition at line 804 of file vpr_types.h.

Definition at line 816 of file vpr_types.h.

Definition at line 817 of file vpr_types.h.

Definition at line 810 of file vpr_types.h.

Definition at line 807 of file vpr_types.h.

Definition at line 824 of file vpr_types.h.

Definition at line 808 of file vpr_types.h.

Definition at line 819 of file vpr_types.h.

Definition at line 818 of file vpr_types.h.

Definition at line 805 of file vpr_types.h.

Definition at line 827 of file vpr_types.h.

Definition at line 825 of file vpr_types.h.

Definition at line 823 of file vpr_types.h.

Definition at line 822 of file vpr_types.h.

Definition at line 802 of file vpr_types.h.

float s_rr_node::R

Definition at line 813 of file vpr_types.h.

Definition at line 811 of file vpr_types.h.

Definition at line 826 of file vpr_types.h.

Definition at line 809 of file vpr_types.h.

Definition at line 798 of file vpr_types.h.

Definition at line 797 of file vpr_types.h.

Definition at line 800 of file vpr_types.h.

Definition at line 799 of file vpr_types.h.


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