|
enum | ScreenUpdatePriority { ScreenUpdatePriority::MINOR = 0,
ScreenUpdatePriority::MAJOR = 1
} |
| For update_screen. Denotes importance of update. More...
|
|
enum | e_router_lookahead { e_router_lookahead::CLASSIC,
e_router_lookahead::MAP,
e_router_lookahead::NO_OP
} |
|
enum | e_route_bb_update { e_route_bb_update::STATIC,
e_route_bb_update::DYNAMIC
} |
|
enum | e_router_initial_timing { e_router_initial_timing::ALL_CRITICAL,
e_router_initial_timing::LOOKAHEAD
} |
|
enum | e_const_gen_inference { e_const_gen_inference::NONE,
e_const_gen_inference::COMB,
e_const_gen_inference::COMB_SEQ
} |
|
enum | e_unrelated_clustering { OFF,
e_unrelated_clustering::ON,
e_unrelated_clustering::AUTO
} |
|
enum | e_balance_block_type_util { OFF,
e_balance_block_type_util::ON,
e_balance_block_type_util::AUTO
} |
|
enum | e_check_route_option { OFF,
e_check_route_option::QUICK,
e_check_route_option::FULL
} |
|
enum | e_cluster_seed {
e_cluster_seed::TIMING,
e_cluster_seed::MAX_INPUTS,
e_cluster_seed::BLEND,
e_cluster_seed::MAX_PINS,
e_cluster_seed::MAX_INPUT_PINS,
e_cluster_seed::BLEND2
} |
| Selection algorithm for selecting next seed. More...
|
|
enum | e_block_pack_status { BLK_PASSED,
BLK_FAILED_FEASIBLE,
BLK_FAILED_ROUTE,
BLK_STATUS_UNDEFINED
} |
|
enum | e_pack_pattern_molecule_type { MOLECULE_SINGLE_ATOM,
MOLECULE_FORCED_PACK
} |
| Describes the molecule type. More...
|
|
enum | e_timing_update_type { e_timing_update_type::FULL,
e_timing_update_type::INCREMENTAL,
e_timing_update_type::AUTO
} |
|
enum | sched_type { AUTO_SCHED,
USER_SCHED
} |
|
enum | pic_type { NO_PICTURE,
PLACEMENT,
ROUTING
} |
|
enum | pfreq { PLACE_NEVER,
PLACE_ONCE,
PLACE_ALWAYS
} |
|
enum | e_pad_loc_type { FREE,
RANDOM,
USER
} |
| Are the pads free to be moved, locked in a random configuration, or locked in user-specified positions? More...
|
|
enum | e_stage_action { STAGE_SKIP = 0,
STAGE_LOAD,
STAGE_DO,
STAGE_AUTO
} |
| Should a stage in the CAD flow be skipped, loaded from a file, or performed. More...
|
|
enum | e_packer_algorithm { PACK_GREEDY,
PACK_BRUTE_FORCE
} |
| Options for packing. More...
|
|
enum | e_place_algorithm { BOUNDING_BOX_PLACE,
PATH_TIMING_DRIVEN_PLACE
} |
|
enum | e_place_effort_scaling { CIRCUIT,
DEVICE_CIRCUIT
} |
|
enum | PlaceDelayModelType { PlaceDelayModelType::DELTA,
PlaceDelayModelType::DELTA_OVERRIDE
} |
|
enum | e_reducer {
e_reducer::MIN,
e_reducer::MAX,
e_reducer::MEDIAN,
e_reducer::ARITHMEAN,
e_reducer::GEOMEAN
} |
|
enum | e_file_type { e_file_type::PDF,
e_file_type::PNG,
e_file_type::SVG,
e_file_type::NONE
} |
|
enum | e_place_delta_delay_algorithm { e_place_delta_delay_algorithm::ASTAR_ROUTE,
e_place_delta_delay_algorithm::DIJKSTRA_EXPANSION
} |
|
enum | e_route_type { GLOBAL,
DETAILED
} |
|
enum | e_router_algorithm { BREADTH_FIRST,
TIMING_DRIVEN
} |
|
enum | e_base_cost_type {
DELAY_NORMALIZED,
DELAY_NORMALIZED_LENGTH,
DELAY_NORMALIZED_FREQUENCY,
DELAY_NORMALIZED_LENGTH_FREQUENCY,
DELAY_NORMALIZED_LENGTH_BOUNDED,
DEMAND_ONLY,
DEMAND_ONLY_NORMALIZED_LENGTH
} |
|
enum | e_routing_failure_predictor {
OFF,
OFF,
OFF,
OFF,
SAFE,
AGGRESSIVE
} |
|
enum | e_routing_budgets_algorithm { MINIMAX,
SCALE_DELAY,
DISABLE
} |
|
enum | e_timing_report_detail { e_timing_report_detail::NETLIST,
e_timing_report_detail::AGGREGATED,
e_timing_report_detail::DETAILED_ROUTING,
e_timing_report_detail::DEBUG
} |
|
enum | e_incr_reroute_delay_ripup { e_incr_reroute_delay_ripup::ON,
e_incr_reroute_delay_ripup::OFF,
e_incr_reroute_delay_ripup::AUTO
} |
|
enum | e_direction : unsigned char {
INC_DIRECTION = 0,
DEC_DIRECTION = 1,
BI_DIRECTION = 2,
NO_DIRECTION = 3,
NUM_DIRECTIONS
} |
|
enum | e_rr_type : unsigned char {
SOURCE = 0,
SINK,
IPIN,
OPIN,
CHANX,
CHANY,
NUM_RR_TYPES
} |
| Type of a routing resource node. More...
|
|
enum | e_cost_indices {
SOURCE_COST_INDEX = 0,
SINK_COST_INDEX,
OPIN_COST_INDEX,
IPIN_COST_INDEX,
CHANX_COST_INDEX_START
} |
| Index of the SOURCE, SINK, OPIN, IPIN, etc. member of device_ctx.rr_indexed_data. More...
|
|
|
constexpr auto | EMPTY_BLOCK_ID = ClusterBlockId(-1) |
|
constexpr auto | INVALID_BLOCK_ID = ClusterBlockId(-2) |
|
constexpr const char * | EMPTY_BLOCK_NAME = "EMPTY" |
|
constexpr int | NO_FIXED_CHANNEL_WIDTH = -1 |
|
constexpr std::array< const char *, NUM_DIRECTIONS > | DIRECTION_STRING = {{"INC_DIRECTION", "DEC_DIRECTION", "BI_DIRECTION", "NO_DIRECTION"}} |
|
constexpr std::array< t_rr_type, NUM_RR_TYPES > | RR_TYPES = {{SOURCE, SINK, IPIN, OPIN, CHANX, CHANY}} |
|
constexpr std::array< const char *, NUM_RR_TYPES > | rr_node_typename {{"SOURCE", "SINK", "IPIN", "OPIN", "CHANX", "CHANY"}} |
|
This is a core file that defines the major data types used by VPR.
This file is divided into generally 4 major sections:
- Global data types and constants
- Packing specific data types
- Placement specific data types
- Routing specific data types
Key background file:
An understanding of libarchfpga/physical_types.h is crucial to understanding this file. physical_types.h contains information about the architecture described in the architecture description language
Key data structures: t_rr_node - The basic building block of the interconnect in the FPGA architecture
Cluster-specific main data structure: t_pb: Stores the mapping between the user netlist and the logic blocks on the FPGA architecture. For example, if a user design has 10 clusters of 5 LUTs each, you will have 10 t_pb instances of type cluster and within each of those clusters another 5 t_pb instances of type LUT. The t_pb hierarchy follows what is described by t_pb_graph_node