VPR Project¶
This is the content of base/vpr_api.cpp
Functions
-
void
free_complex_block_types
()¶ General API for VPR Other software tools should generally call just the functions defined here For advanced/power users, you can call functions defined elsewhere in VPR or modify the data structures directly at your discretion but be aware that doing so can break the correctness of VPR
Author: Jason Luu June 21, 2012
-
void
free_device
(const t_det_routing_arch &routing_arch)¶
-
void
free_circuit
()¶
-
void
get_intercluster_switch_fanin_estimates
(const t_vpr_setup &vpr_setup, const t_arch &arch, const int wire_segment_length, int *opin_switch_fanin, int *wire_switch_fanin, int *ipin_switch_fanin)¶
-
void
vpr_print_title
()¶
-
void
vpr_print_args
(int argc, const char **argv)¶
-
void
vpr_initialize_logging
()¶
-
void
vpr_init
(const int argc, const char **argv, t_options *options, t_vpr_setup *vpr_setup, t_arch *arch)¶ General API for VPR
VPR is a CAD tool used to conduct FPGA architecture exploration. It takes, as input, a technology-mapped netlist and a description of the FPGA architecture being investigated. VPR then generates a packed, placed, and routed FPGA (in .net, .place, and .route files respectively) that implements the input netlist
Software tools interfacing to VPR should generally call just the functions defined here For advanced/power users, you can call functions defined elsewhere in VPR or modify the data structures directly at your discretion but be aware that doing so can break the correctness of this tool
General Usage:
vpr_init
vpr_pack
vpr_init_pre_place_and_route
vpr_place_and_route
vpr_free_all
If you are a new developer, key files to begin understanding this code base are:
libarchfpga/physical_types.h - Data structures that define the properties of the FPGA architecture
vpr_types.h - Very major file that defines the core data structures used in VPR. This includes detailed architecture information, user netlist data structures, and data structures that describe the mapping between those two.
globals.h - Defines the global variables used by VPR.
Author: Jason Luu June 21, 2012
-
void
vpr_init_with_options
(const t_options *options, t_vpr_setup *vpr_setup, t_arch *arch)¶
-
bool
vpr_flow
(t_vpr_setup &vpr_setup, t_arch &arch)¶
-
void
vpr_create_device
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
void
vpr_create_device_grid
(const t_vpr_setup &vpr_setup, const t_arch &Arch)¶
-
void
vpr_setup_clock_networks
(t_vpr_setup &vpr_setup, const t_arch &Arch)¶
-
bool
vpr_pack_flow
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
bool
vpr_pack
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
void
vpr_load_packing
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
bool
vpr_place_flow
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
void
vpr_place
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
void
vpr_load_placement
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
RouteStatus
vpr_route_flow
(t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
void
vpr_create_rr_graph
(t_vpr_setup &vpr_setup, const t_arch &arch, int chan_width_fac)¶
-
void
vpr_init_graphics
(const t_vpr_setup &vpr_setup, const t_arch &arch)¶
-
void
vpr_close_graphics
(const t_vpr_setup&)¶
-
void
free_atoms
()¶
-
void
free_placement
()¶
-
void
free_routing
()¶
-
void
vpr_free_vpr_data_structures
(t_arch &Arch, t_vpr_setup &vpr_setup)¶
-
void
vpr_free_all
(t_arch &Arch, t_vpr_setup &vpr_setup)¶
-
void
vpr_read_options
(const int argc, const char **argv, t_options *options)¶
-
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)¶
-
void
vpr_check_arch
(const t_arch &Arch)¶
-
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)¶
-
void
vpr_show_setup
(const t_vpr_setup &vpr_setup)¶
-
bool
vpr_analysis_flow
(t_vpr_setup &vpr_setup, const t_arch &Arch, const RouteStatus &route_status)¶
-
void
vpr_analysis
(t_vpr_setup &vpr_setup, const t_arch &Arch, const RouteStatus &route_status)¶
-
void
vpr_power_estimation
(const t_vpr_setup &vpr_setup, const t_arch &Arch, const SetupTimingInfo &timing_info, const RouteStatus &route_status)¶
-
void
vpr_print_error
(const VprError &vpr_error)¶