Verilog to Routing - VPR
|
#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"
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... | |
int count_netlist_clocks | ( | ) |
Count how many clocks are in the netlist.
|
static |
Determines how many tracks are used in each channel.
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.
|
static |
Figures out maximum, minimum and average number of bends and net length in the routing.
|
static |
Loads the two arrays passed in with the total occupancy at each of the channel segments in the FPGA.
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).
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.
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.