OpenFPGA/vpr/src/route/route_export.h

56 lines
2.1 KiB
C++

/******** Function prototypes for functions in route_common.c that ***********
******** are used outside the router modules. ***********/
#include "vpr_types.h"
#include <memory>
#include "timing_info_fwd.h"
#include "route_common.h"
#include "RoutingDelayCalculator.h"
void try_graph(int width_fac,
const t_router_opts& router_opts,
t_det_routing_arch* det_routing_arch,
std::vector<t_segment_inf>& segment_inf,
t_chan_width_dist chan_width_dist,
t_direct_inf* directs,
int num_directs);
bool try_route(int width_fac,
const t_router_opts& router_opts,
const t_analysis_opts& analysis_opts,
t_det_routing_arch* det_routing_arch,
std::vector<t_segment_inf>& segment_inf,
vtr::vector<ClusterNetId, float*>& net_delay,
std::shared_ptr<SetupHoldTimingInfo> timing_info,
std::shared_ptr<RoutingDelayCalculator> delay_calc,
t_chan_width_dist chan_width_dist,
t_direct_inf* directs,
int num_directs,
ScreenUpdatePriority first_iteration_priority);
bool feasible_routing();
std::vector<RRNodeId> collect_congested_rr_nodes();
vtr::vector<RRNodeId, std::set<ClusterNetId>> collect_rr_node_nets();
t_clb_opins_used alloc_route_structs();
void free_route_structs();
vtr::vector<ClusterNetId, t_trace*> alloc_saved_routing();
void free_saved_routing(vtr::vector<ClusterNetId, t_trace*>& best_routing);
void save_routing(vtr::vector<ClusterNetId, t_trace*>& best_routing,
const t_clb_opins_used& clb_opins_used_locally,
t_clb_opins_used& saved_clb_opins_used_locally);
void restore_routing(vtr::vector<ClusterNetId, t_trace*>& best_routing,
t_clb_opins_used& clb_opins_used_locally,
const t_clb_opins_used& saved_clb_opins_used_locally);
void get_serial_num();
void print_route(const char* place_file, const char* route_file);
void print_route(FILE* fp, const vtr::vector<ClusterNetId, t_traceback>& tracebacks);