Verilog to Routing - VPR
Functions
stats.cpp File Reference
#include <cstdio>
#include <cstring>
#include <cmath>
#include <set>
#include "vtr_assert.h"
#include "vtr_log.h"
#include "vtr_math.h"
#include "vtr_ndmatrix.h"
#include "vpr_types.h"
#include "vpr_error.h"
#include "globals.h"
#include "atom_netlist.h"
#include "rr_graph_area.h"
#include "segment_stats.h"
#include "channel_stats.h"
#include "stats.h"
#include "net_delay.h"
#include "read_xml_arch_file.h"
#include "echo_files.h"
#include "timing_info.h"
#include "RoutingDelayCalculator.h"
#include "timing_util.h"
#include "tatum/TimingReporter.hpp"
Include dependency graph for stats.cpp:

Functions

static void load_channel_occupancies (vtr::Matrix< int > &chanx_occ, vtr::Matrix< int > &chany_occ)
 Loads the two arrays passed in with the total occupancy at each of the channel segments in the FPGA. More...
 
static void length_and_bends_stats ()
 Figures out maximum, minimum and average number of bends and net length in the routing. More...
 
static void get_channel_occupancy_stats ()
 Determines how many tracks are used in each channel. More...
 
void routing_stats (bool full_stats, enum e_route_type route_type, std::vector< t_segment_inf > &segment_inf, float R_minW_nmos, float R_minW_pmos, float grid_logic_tile_area, enum e_directionality directionality, int wire_to_ipin_switch)
 Prints out various statistics about the current routing. More...
 
void get_num_bends_and_length (ClusterNetId inet, int *bends_ptr, int *len_ptr, int *segments_ptr)
 Counts and returns the number of bends, wirelength, and number of routing resource segments in net inet's routing. More...
 
void print_wirelen_prob_dist ()
 Prints out the probability distribution of the wirelength / number input pins on a net – i.e. simulates 2-point net length probability distribution. More...
 
void print_lambda ()
 Finds the average number of input pins used per clb. More...
 
int count_netlist_clocks ()
 Count how many clocks are in the netlist. More...
 

Function Documentation

◆ count_netlist_clocks()

int count_netlist_clocks ( )

Count how many clocks are in the netlist.

◆ get_channel_occupancy_stats()

static void get_channel_occupancy_stats ( )
static

Determines how many tracks are used in each channel.

◆ get_num_bends_and_length()

void get_num_bends_and_length ( ClusterNetId  inet,
int *  bends_ptr,
int *  len_ptr,
int *  segments_ptr 
)

Counts and returns the number of bends, wirelength, and number of routing resource segments in net inet's routing.

◆ length_and_bends_stats()

void length_and_bends_stats ( )
static

Figures out maximum, minimum and average number of bends and net length in the routing.

◆ load_channel_occupancies()

static void load_channel_occupancies ( vtr::Matrix< int > &  chanx_occ,
vtr::Matrix< int > &  chany_occ 
)
static

Loads the two arrays passed in with the total occupancy at each of the channel segments in the FPGA.

◆ print_lambda()

void print_lambda ( )

Finds the average number of input pins used per clb.

Does not count inputs which are hooked to global nets (i.e. the clock when it is marked global).

◆ print_wirelen_prob_dist()

void print_wirelen_prob_dist ( )

Prints out the probability distribution of the wirelength / number input pins on a net – i.e. simulates 2-point net length probability distribution.

◆ routing_stats()

void routing_stats ( bool  full_stats,
enum e_route_type  route_type,
std::vector< t_segment_inf > &  segment_inf,
float  R_minW_nmos,
float  R_minW_pmos,
float  grid_logic_tile_area,
enum e_directionality  directionality,
int  wire_to_ipin_switch 
)

Prints out various statistics about the current routing.

Both a routing and an rr_graph must exist when you call this routine.