VPR-7.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
vpr_types.h File Reference
#include "arch_types.h"
#include <map>
+ Include dependency graph for vpr_types.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  s_pb_stats
 
struct  s_pb
 
struct  s_logical_block
 
struct  s_pack_molecule
 
struct  s_cluster_placement_stats
 
struct  s_tedge
 
struct  s_prepacked_tnode_data
 
struct  s_tnode
 
struct  s_clock
 
struct  s_io
 
struct  s_timing_stats
 
struct  s_slack
 
struct  s_override_constraint
 
struct  s_timing_constraints
 
struct  s_net_power
 
struct  s_net
 
struct  s_grid_tile
 
struct  s_bb
 
struct  s_place_region
 
struct  s_block
 
struct  s_file_name_opts
 
struct  s_packer_opts
 
struct  s_annealing_sched
 
struct  s_placer_opts
 
struct  s_router_opts
 
struct  s_det_routing_arch
 
struct  s_seg_details
 
struct  s_linked_f_pointer
 
struct  s_trace
 
struct  s_rr_node
 
struct  s_rr_indexed_data
 
struct  s_power_opts
 
struct  s_TokenPair
 
struct  s_vpr_setup
 

Macros

#define DEBUG   1 /* Echoes input & checks error conditions */
 
#define TOKENS   " \t\n" /* Input file parsing. */
 
#define MINOR   0 /* For update_screen. Denotes importance of update. */
 
#define MAJOR   1
 
#define MAX_SHORT   32767
 
#define HUGE_POSITIVE_FLOAT   1.e30
 
#define HUGE_NEGATIVE_FLOAT   -1.e30
 
#define EPSILON   1.e-15
 
#define NEGATIVE_EPSILON   -1.e-15
 
#define HIGH_FANOUT_NET_LIM   64 /* All nets with this number of sinks or more are considered high fanout nets */
 
#define FIRST_ITER_WIRELENTH_LIMIT   0.85 /* If used wirelength exceeds this value in first iteration of routing, do not route */
 
#define EMPTY   -1
 
#define NO_CLUSTER   -1
 
#define NEVER_CLUSTER   -2
 
#define NOT_VALID   -10000 /* Marks gains that aren't valid */
 
#define UNDEFINED   -1
 
#define MODEL_LOGIC   "names"
 
#define MODEL_LATCH   "latch"
 
#define MODEL_INPUT   "input"
 
#define MODEL_OUTPUT   "output"
 
#define NO_FIXED_CHANNEL_WIDTH   -1
 
#define NO_PREVIOUS   -1
 

Typedefs

typedef struct s_power_opts t_power_opts
 
typedef struct s_net_power t_net_power
 
typedef size_t bitfield
 
typedef struct s_pb_stats t_pb_stats
 
typedef struct s_pb t_pb
 
typedef struct s_logical_block t_logical_block
 
typedef struct s_pack_molecule t_pack_molecule
 
typedef struct
s_cluster_placement_stats 
t_cluster_placement_stats
 
typedef struct s_tedge t_tedge
 
typedef struct
s_prepacked_tnode_data 
t_prepacked_tnode_data
 
typedef struct s_tnode t_tnode
 
typedef struct s_clock t_clock
 
typedef struct s_io t_io
 
typedef struct s_timing_stats t_timing_stats
 
typedef struct s_slack t_slack
 
typedef struct
s_override_constraint 
t_override_constraint
 
typedef struct s_timing_constraints t_timing_constraints
 
typedef struct s_net t_net
 
typedef struct s_grid_tile t_grid_tile
 
typedef struct s_block t_block
 
typedef struct s_router_opts t_router_opts
 
typedef struct s_det_routing_arch t_det_routing_arch
 
typedef struct s_seg_details t_seg_details
 
typedef enum e_rr_type t_rr_type
 
typedef struct s_trace t_trace
 
typedef struct s_rr_node t_rr_node
 
typedef struct s_rr_indexed_data t_rr_indexed_data
 
typedef struct s_vpr_setup t_vpr_setup
 

Enumerations

enum  logical_block_types {
  VPACK_INPAD = -2, VPACK_OUTPAD, VPACK_COMB, VPACK_LATCH,
  VPACK_EMPTY
}
 
enum  e_cluster_seed { VPACK_TIMING, VPACK_MAX_INPUTS }
 
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 }
 
enum  e_tnode_type {
  TN_INPAD_SOURCE, TN_INPAD_OPIN, TN_OUTPAD_IPIN, TN_OUTPAD_SINK,
  TN_CB_IPIN, TN_CB_OPIN, TN_INTERMEDIATE_NODE, TN_PRIMITIVE_IPIN,
  TN_PRIMITIVE_OPIN, TN_FF_IPIN, TN_FF_OPIN, TN_FF_SINK,
  TN_FF_SOURCE, TN_FF_CLOCK, TN_CONSTANT_GEN_SOURCE
}
 
enum  sched_type { AUTO_SCHED, USER_SCHED }
 
enum  pic_type { NO_PICTURE, PLACEMENT, ROUTING }
 
enum  e_operation { RUN_FLOW, TIMING_ANALYSIS_ONLY }
 
enum  pfreq { PLACE_NEVER, PLACE_ONCE, PLACE_ALWAYS }
 
enum  e_pad_loc_type { FREE, RANDOM, USER }
 
enum  e_packer_algorithm { PACK_GREEDY, PACK_BRUTE_FORCE }
 
enum  e_place_algorithm { BOUNDING_BOX_PLACE, NET_TIMING_DRIVEN_PLACE, PATH_TIMING_DRIVEN_PLACE }
 
enum  e_route_type { GLOBAL, DETAILED }
 
enum  e_router_algorithm { BREADTH_FIRST, TIMING_DRIVEN, NO_TIMING }
 
enum  e_base_cost_type { INTRINSIC_DELAY, DELAY_NORMALIZED, DEMAND_ONLY }
 
enum  e_drivers { MULTI_BUFFERED, SINGLE }
 
enum  e_direction { INC_DIRECTION = 0, DEC_DIRECTION = 1, BI_DIRECTION = 2 }
 
enum  e_rr_type {
  SOURCE = 0, SINK, IPIN, OPIN,
  CHANX, CHANY, INTRA_CLUSTER_EDGE, NUM_RR_TYPES
}
 
enum  e_cost_indices {
  SOURCE_COST_INDEX = 0, SINK_COST_INDEX, OPIN_COST_INDEX, IPIN_COST_INDEX,
  CHANX_COST_INDEX_START
}
 

Macro Definition Documentation

#define DEBUG   1 /* Echoes input & checks error conditions */

Definition at line 46 of file vpr_types.h.

#define EMPTY   -1

Definition at line 90 of file vpr_types.h.

#define EPSILON   1.e-15

Definition at line 83 of file vpr_types.h.

#define FIRST_ITER_WIRELENTH_LIMIT   0.85 /* If used wirelength exceeds this value in first iteration of routing, do not route */

Definition at line 88 of file vpr_types.h.

#define HIGH_FANOUT_NET_LIM   64 /* All nets with this number of sinks or more are considered high fanout nets */

Definition at line 86 of file vpr_types.h.

#define HUGE_NEGATIVE_FLOAT   -1.e30

Definition at line 80 of file vpr_types.h.

#define HUGE_POSITIVE_FLOAT   1.e30

Definition at line 79 of file vpr_types.h.

#define MAJOR   1

Definition at line 73 of file vpr_types.h.

#define MAX_SHORT   32767

Definition at line 75 of file vpr_types.h.

#define MINOR   0 /* For update_screen. Denotes importance of update. */

Definition at line 72 of file vpr_types.h.

#define MODEL_INPUT   "input"

Definition at line 276 of file vpr_types.h.

#define MODEL_LATCH   "latch"

Definition at line 275 of file vpr_types.h.

#define MODEL_LOGIC   "names"

Definition at line 274 of file vpr_types.h.

#define MODEL_OUTPUT   "output"

Definition at line 277 of file vpr_types.h.

#define NEGATIVE_EPSILON   -1.e-15

Definition at line 84 of file vpr_types.h.

#define NEVER_CLUSTER   -2

Definition at line 99 of file vpr_types.h.

#define NO_CLUSTER   -1

Definition at line 98 of file vpr_types.h.

#define NO_FIXED_CHANNEL_WIDTH   -1

Definition at line 692 of file vpr_types.h.

#define NO_PREVIOUS   -1

Definition at line 887 of file vpr_types.h.

#define NOT_VALID   -10000 /* Marks gains that aren't valid */

Definition at line 100 of file vpr_types.h.

#define TOKENS   " \t\n" /* Input file parsing. */

Definition at line 66 of file vpr_types.h.

#define UNDEFINED   -1

Definition at line 103 of file vpr_types.h.

Typedef Documentation

typedef size_t bitfield

Definition at line 70 of file vpr_types.h.

typedef struct s_block t_block

Definition at line 572 of file vpr_types.h.

typedef struct s_clock t_clock

Stats keeper for placement information during packing Contains linked lists to placement locations based on status of primitive

Definition at line 756 of file vpr_types.h.

typedef struct s_grid_tile t_grid_tile
typedef struct s_io t_io
typedef struct s_net t_net
typedef struct s_net_power t_net_power

Definition at line 43 of file vpr_types.h.

Represents a grouping of logical_blocks that match a pack_pattern, these groups are intended to be placed as a single unit during packing Store in linked list

A chain is a special type of pack pattern. A chain can extend across multiple logic blocks. Must segment the chain to fit in a logic block by identifying the actual atom that forms the root of the new chain. Assumes that the root of a chain is the primitive that starts the chain or is driven from outside the logic block

typedef struct s_pb t_pb
typedef struct s_pb_stats t_pb_stats
typedef struct s_power_opts t_power_opts

Definition at line 42 of file vpr_types.h.

typedef struct s_router_opts t_router_opts

Definition at line 694 of file vpr_types.h.

typedef struct s_rr_node t_rr_node
typedef enum e_rr_type t_rr_type
typedef struct s_seg_details t_seg_details
typedef struct s_slack t_slack
typedef struct s_tedge t_tedge
typedef struct s_tnode t_tnode
typedef struct s_trace t_trace
typedef struct s_vpr_setup t_vpr_setup

Enumeration Type Documentation

Enumerator
INTRINSIC_DELAY 
DELAY_NORMALIZED 
DEMAND_ONLY 

Definition at line 688 of file vpr_types.h.

Enumerator
BLK_PASSED 
BLK_FAILED_FEASIBLE 
BLK_FAILED_ROUTE 
BLK_STATUS_UNDEFINED 

Definition at line 116 of file vpr_types.h.

Enumerator
VPACK_TIMING 
VPACK_MAX_INPUTS 

Definition at line 112 of file vpr_types.h.

Enumerator
SOURCE_COST_INDEX 
SINK_COST_INDEX 
OPIN_COST_INDEX 
IPIN_COST_INDEX 
CHANX_COST_INDEX_START 

Definition at line 1009 of file vpr_types.h.

Enumerator
INC_DIRECTION 
DEC_DIRECTION 
BI_DIRECTION 

Definition at line 798 of file vpr_types.h.

enum e_drivers
Enumerator
MULTI_BUFFERED 
SINGLE 

Definition at line 793 of file vpr_types.h.

793  {
795 };
Enumerator
RUN_FLOW 
TIMING_ANALYSIS_ONLY 

Definition at line 468 of file vpr_types.h.

Enumerator
MOLECULE_SINGLE_ATOM 
MOLECULE_FORCED_PACK 

Definition at line 233 of file vpr_types.h.

Enumerator
PACK_GREEDY 
PACK_BRUTE_FORCE 

Definition at line 590 of file vpr_types.h.

Enumerator
FREE 
RANDOM 
USER 

Definition at line 478 of file vpr_types.h.

478  {
479  FREE, RANDOM, USER
480 };
Enumerator
BOUNDING_BOX_PLACE 
NET_TIMING_DRIVEN_PLACE 
PATH_TIMING_DRIVEN_PLACE 

Definition at line 632 of file vpr_types.h.

Enumerator
GLOBAL 
DETAILED 

Definition at line 682 of file vpr_types.h.

682  {
684 };
Enumerator
BREADTH_FIRST 
TIMING_DRIVEN 
NO_TIMING 

Definition at line 685 of file vpr_types.h.

enum e_rr_type
Enumerator
SOURCE 
SINK 
IPIN 
OPIN 
CHANX 
CHANY 
INTRA_CLUSTER_EDGE 
NUM_RR_TYPES 

Definition at line 853 of file vpr_types.h.

853  {
855 } t_rr_type;
enum e_rr_type t_rr_type
Enumerator
TN_INPAD_SOURCE 
TN_INPAD_OPIN 
TN_OUTPAD_IPIN 
TN_OUTPAD_SINK 
TN_CB_IPIN 
TN_CB_OPIN 
TN_INTERMEDIATE_NODE 
TN_PRIMITIVE_IPIN 
TN_PRIMITIVE_OPIN 
TN_FF_IPIN 
TN_FF_OPIN 
TN_FF_SINK 
TN_FF_SOURCE 
TN_FF_CLOCK 
TN_CONSTANT_GEN_SOURCE 

Definition at line 300 of file vpr_types.h.

300  {
301  /* Types of tnodes (timing graph nodes). */
302  TN_INPAD_SOURCE, /* input to an input I/O pad */
303  TN_INPAD_OPIN, /* output from an input I/O pad */
304  TN_OUTPAD_IPIN, /* input to an output I/O pad */
305  TN_OUTPAD_SINK, /* output from an output I/O pad */
306  TN_CB_IPIN, /* input pin to complex block */
307  TN_CB_OPIN, /* output pin from complex block */
308  TN_INTERMEDIATE_NODE, /* Used in post-packed timing graph only:
309  connection between intra-cluster pins. */
310  TN_PRIMITIVE_IPIN, /* input pin to a primitive (e.g. a LUT) */
311  TN_PRIMITIVE_OPIN, /* output pin from a primitive (e.g. a LUT) */
312  TN_FF_IPIN, /* input pin to a flip-flop - goes to TN_FF_SINK */
313  TN_FF_OPIN, /* output pin from a flip-flop - comes from TN_FF_SOURCE */
314  TN_FF_SINK, /* sink (D) pin of flip-flop */
315  TN_FF_SOURCE, /* source (Q) pin of flip-flop */
316  TN_FF_CLOCK, /* clock pin of flip-flop */
317  TN_CONSTANT_GEN_SOURCE /* source of a constant logic 1 or 0 */
318 } e_tnode_type;
e_tnode_type
Definition: vpr_types.h:300
Enumerator
VPACK_INPAD 
VPACK_OUTPAD 
VPACK_COMB 
VPACK_LATCH 
VPACK_EMPTY 

Definition at line 107 of file vpr_types.h.

enum pfreq
Enumerator
PLACE_NEVER 
PLACE_ONCE 
PLACE_ALWAYS 

Definition at line 472 of file vpr_types.h.

enum pic_type
Enumerator
NO_PICTURE 
PLACEMENT 
ROUTING 

Definition at line 462 of file vpr_types.h.

462  {
464 };
enum sched_type
Enumerator
AUTO_SCHED 
USER_SCHED 

Definition at line 457 of file vpr_types.h.

457  {
459 };