31 #include "physical_types.h" 35 #include "read_xml_arch_file.h" 36 #include "vpr_utils.h" 37 #include "place_macro.h" 38 #include "timing_info_fwd.h" 40 #include "RoutingDelayCalculator.h" 42 #include "vpr_error.h" 76 int fixed_channel_width,
77 std::shared_ptr<SetupHoldTimingInfo> timing_info,
78 std::shared_ptr<RoutingDelayCalculator> delay_calc,
79 ClbNetPinsMatrix<float>& net_delay);
83 std::shared_ptr<SetupHoldTimingInfo> timing_info,
84 std::shared_ptr<RoutingDelayCalculator> delay_calc,
85 ClbNetPinsMatrix<float>& net_delay);
89 int fixed_channel_width,
90 std::shared_ptr<SetupHoldTimingInfo> timing_info,
91 ClbNetPinsMatrix<float>& net_delay);
125 const bool TimingEnabled,
126 const bool readArchFile,
129 t_model** user_models,
130 t_model** library_models,
138 std::vector<t_lb_type_rr_node>** PackerRRGraph,
139 std::vector<t_segment_inf>& Segments,
144 std::string* GraphicsCommands,
154 const std::vector<t_segment_inf>& Segments,
156 const t_chan_width_dist& Chans);
161 const SetupTimingInfo& timing_info,
bool vpr_flow(t_vpr_setup &vpr_setup, t_arch &arch)
Definition: vpr_api.cpp:350
void vpr_show_setup(const t_vpr_setup &vpr_setup)
Show current setup.
Definition: vpr_api.cpp:1157
Definition: vpr_types.h:1487
void vpr_create_rr_graph(t_vpr_setup &vpr_setup, const t_arch &arch, int chan_width)
Create routing graph at specified channel width.
Definition: vpr_api.cpp:852
char * vpr_get_output_file_name(enum e_output_files ename)
Power estimation options.
Definition: vpr_types.h:1435
void vpr_read_options(const int argc, const char **argv, t_options *options)
Read in user options.
Definition: vpr_api.cpp:1089
void vpr_create_device(t_vpr_setup &vpr_setup, const t_arch &Arch)
Create the device (grid + rr graph)
Definition: vpr_api.cpp:387
void vpr_init_with_options(const t_options *options, t_vpr_setup *vpr_setup, t_arch *arch)
Initialize VPR with options.
Definition: vpr_api.cpp:185
Definition: read_options.h:10
RouteStatus vpr_route_flow(t_vpr_setup &vpr_setup, const t_arch &arch)
Perform, load or skip the routing stage.
Definition: vpr_api.cpp:671
void vpr_analysis(t_vpr_setup &vpr_setup, const t_arch &Arch, const RouteStatus &route_status)
Perform post-implementation analysis.
Definition: vpr_api.cpp:1184
Defines the detailed routing architecture of the FPGA.
Definition: vpr_types.h:1129
bool vpr_place_flow(t_vpr_setup &vpr_setup, const t_arch &arch)
Perform, load or skip the placement stage.
Definition: vpr_api.cpp:602
This is a core file that defines the major data types used by VPR.
bool vpr_pack(t_vpr_setup &vpr_setup, const t_arch &arch)
Perform packing.
Definition: vpr_api.cpp:525
RouteStatus vpr_load_routing(t_vpr_setup &vpr_setup, const t_arch &arch, int fixed_channel_width, std::shared_ptr< SetupHoldTimingInfo > timing_info, ClbNetPinsMatrix< float > &net_delay)
Loads a previous routing.
Definition: vpr_api.cpp:826
Annealing schedule information for the placer.
Definition: vpr_types.h:803
Definition: vpr_types.h:766
void vpr_print_error(const VprError &vpr_error)
Prints user file or internal errors for VPR.
Definition: vpr_api.cpp:1311
void vpr_print_args(int argc, const char **argv)
Definition: vpr_api.cpp:124
void vpr_create_device_grid(const t_vpr_setup &vpr_setup, const t_arch &Arch)
Create the device grid.
Definition: vpr_api.cpp:403
void vpr_setup_clock_networks(t_vpr_setup &vpr_setup, const t_arch &Arch)
Definition: vpr_api.cpp:481
Options for netlist loading.
Definition: vpr_types.h:737
Definition: vpr_types.h:470
e_output_files
Definition: echo_files.h:60
void vpr_init_graphics(const t_vpr_setup &vpr_setup, const t_arch &arch)
Definition: vpr_api.cpp:891
void vpr_alloc_and_load_output_file_names(const char *default_name)
Output file names management.
Store settings for VPR.
Definition: vpr_types.h:1459
void vpr_place(t_vpr_setup &vpr_setup, const t_arch &arch)
Perform placement.
Definition: vpr_api.cpp:626
RouteStatus vpr_route_fixed_W(t_vpr_setup &vpr_setup, const t_arch &arch, int fixed_channel_width, std::shared_ptr< SetupHoldTimingInfo > timing_info, std::shared_ptr< RoutingDelayCalculator > delay_calc, ClbNetPinsMatrix< float > &net_delay)
Perform routing at a fixed channel width)
Definition: vpr_api.cpp:760
void vpr_close_graphics(const t_vpr_setup &vpr_setup)
Definition: vpr_api.cpp:900
void vpr_power_estimation(const t_vpr_setup &vpr_setup, const t_arch &Arch, const SetupTimingInfo &timing_info, const RouteStatus &route_status)
Pperforms power estimation.
Definition: vpr_api.cpp:1248
void vpr_check_setup(const t_packer_opts &PackerOpts, const t_placer_opts &PlacerOpts, const t_router_opts &RouterOpts, const t_det_routing_arch &RoutingArch, const std::vector< t_segment_inf > &Segments, const t_timing_inf &Timing, const t_chan_width_dist &Chans)
Verify settings don't conflict or otherwise not make sense.
Definition: vpr_api.cpp:1145
Definition: vpr_types.h:1082
void vpr_check_arch(const t_arch &Arch)
Check inputs are reasonable.
Definition: vpr_api.cpp:1140
void vpr_load_packing(t_vpr_setup &vpr_setup, const t_arch &arch)
Loads a previous packing.
Definition: vpr_api.cpp:581
bool vpr_pack_flow(t_vpr_setup &vpr_setup, const t_arch &arch)
Perform, load or skip the packing stage.
Definition: vpr_api.cpp:487
Definition: vpr_types.h:867
void vpr_load_placement(t_vpr_setup &vpr_setup, const t_arch &arch)
Definition: vpr_api.cpp:657
void vpr_setup_vpr(t_options *Options, const bool TimingEnabled, const bool readArchFile, t_file_name_opts *FileNameOpts, t_arch *Arch, t_model **user_models, t_model **library_models, t_netlist_opts *NetlistOpts, t_packer_opts *PackerOpts, t_placer_opts *PlacerOpts, t_annealing_sched *AnnealSched, t_router_opts *RouterOpts, t_analysis_opts *AnalysisOpts, t_det_routing_arch *RoutingArch, std::vector< t_lb_type_rr_node > **PackerRRGraph, std::vector< t_segment_inf > &Segments, t_timing_inf *Timing, bool *ShowGraphics, int *GraphPause, bool *SaveGraphics, std::string *GraphicsCommands, t_power_opts *PowerOpts)
Read in arch and circuit.
Definition: vpr_api.cpp:1094
void vpr_free_vpr_data_structures(t_arch &Arch, t_vpr_setup &vpr_setup)
Definition: vpr_api.cpp:1061
Names of various files.
Definition: vpr_types.h:722
bool vpr_analysis_flow(t_vpr_setup &vpr_setup, const t_arch &Arch, const RouteStatus &route_status)
Perform or skips the analysis stage.
Definition: vpr_api.cpp:1161
void vpr_print_title()
Display general VPR information.
Definition: vpr_api.cpp:109
void vpr_set_output_file_name(enum e_output_files ename, const char *name, const char *default_name)
void vpr_initialize_logging()
Definition: vpr_api.cpp:135
void vpr_free_all(t_arch &Arch, t_vpr_setup &vpr_setup)
Definition: vpr_api.cpp:1073
RouteStatus vpr_route_min_W(t_vpr_setup &vpr_setup, const t_arch &arch, std::shared_ptr< SetupHoldTimingInfo > timing_info, std::shared_ptr< RoutingDelayCalculator > delay_calc, ClbNetPinsMatrix< float > &net_delay)
Perform routing to find the minimum channel width.
Definition: vpr_api.cpp:797
void vpr_init(const int argc, const char **argv, t_options *options, t_vpr_setup *vpr_setup, t_arch *arch)
Initialize VPR.
Definition: vpr_api.cpp:161
Definition: vpr_types.h:1023