VPR-6.0

libvpr/include/physical_types.h File Reference

#include "logic_types.h"
#include "util.h"
Include dependency graph for physical_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_grid_loc_def
struct  s_clb_grid
struct  s_class
struct  s_timing_inf
struct  s_port
struct  s_pin_to_pin_annotation
struct  s_interconnect
struct  s_mode
struct  s_pb_graph_pin
struct  s_pb_graph_edge
struct  s_pb_graph_node
struct  s_pb_type
struct  s_type_descriptor
struct  s_chan
struct  s_chan_width_dist
struct  s_segment_inf
struct  s_switch_inf
struct  transistor_record
struct  poly_record
struct  s_arch
struct  s_power
struct  s_clocks

Typedefs

typedef struct s_class t_class
typedef struct s_timing_inf t_timing_inf
typedef struct s_port t_port
typedef struct
s_pin_to_pin_annotation 
t_pin_to_pin_annotation
typedef struct s_interconnect t_interconnect
typedef struct s_mode t_mode
typedef struct s_pb_graph_pin t_pb_graph_pin
typedef struct s_pb_graph_edge t_pb_graph_edge
typedef struct s_pb_graph_node t_pb_graph_node
typedef struct s_pb_type t_pb_type
typedef struct s_type_descriptor t_type_descriptor
typedef struct s_type_descriptort_type_ptr
typedef struct s_chan t_chan
typedef struct s_chan_width_dist t_chan_width_dist
typedef enum e_switch_block_type t_switch_block_type
typedef struct s_segment_inf t_segment_inf
typedef struct s_arch t_arch
typedef struct s_power t_power
typedef struct s_clocks t_clocks

Enumerations

enum  e_pin_type { OPEN = -1, DRIVER = 0, RECEIVER = 1 }
enum  e_interconnect { COMPLETE_INTERC = 1, DIRECT_INTERC = 2, MUX_INTERC = 3 }
enum  e_side { TOP = 0, RIGHT = 1, BOTTOM = 2, LEFT = 3 }
enum  e_pin_location_distr { E_SPREAD_PIN_DISTR = 1, E_CUSTOM_PIN_DISTR = 2 }
enum  e_pb_type_class { UNKNOWN_CLASS = 0, LUT_CLASS = 1, LATCH_CLASS = 2, MEMORY_CLASS = 3 }
enum  e_grid_loc_type { BOUNDARY = 0, FILL, COL_REPEAT, COL_REL }
enum  e_pb_graph_pin_type {
  PB_PIN_NORMAL = 0, PB_PIN_SEQUENTIAL, PB_PIN_INPAD, PB_PIN_OUTPAD,
  PB_PIN_TERMINAL, PB_PIN_CLOCK
}
enum  e_stat { UNIFORM, GAUSSIAN, PULSE, DELTA }
enum  e_directionality { UNI_DIRECTIONAL, BI_DIRECTIONAL }
enum  e_switch_block_type { SUBSET, WILTON, UNIVERSAL, FULL }
enum  e_Fc_type { ABSOLUTE, FRACTIONAL }
enum  e_pin_to_pin_annotation_type { E_ANNOT_PIN_TO_PIN_DELAY = 0, E_ANNOT_PIN_TO_PIN_CAPACITANCE }
enum  e_pin_to_pin_annotation_format { E_ANNOT_PIN_TO_PIN_MATRIX = 0, E_ANNOT_PIN_TO_PIN_CONSTANT }
enum  e_pin_to_pin_delay_annotations {
  E_ANNOT_PIN_TO_PIN_DELAY_MIN = 0, E_ANNOT_PIN_TO_PIN_DELAY_MAX, E_ANNOT_PIN_TO_PIN_DELAY_TSETUP, E_ANNOT_PIN_TO_PIN_DELAY_CLOCK_TO_Q_MIN,
  E_ANNOT_PIN_TO_PIN_DELAY_CLOCK_TO_Q_MAX, E_ANNOT_PIN_TO_PIN_DELAY_THOLD
}
enum  e_pin_to_pin_capacitance_annotations { E_ANNOT_PIN_TO_PIN_CAPACITANCE_C = 0 }

Detailed Description

Data types describing the physical components on the FPGA architecture.

Key data types:

  • t_type_descriptor: describes a placeable complex logic block,
  • pb_type: describes the types of physical blocks within the t_type_descriptor in a hierarchy where the top block is the complex block and the leaf blocks implement one logical block
  • pb_graph_node: is a flattened version of pb_type so a pb_type with 10 instances will have 10 pb_graph_nodes representing each instance
  • pb: A specific physical block. Shares a many-to-one relationship with a pb_graph_node. For example, a circuit with 10 CLBs will have 10 CLB pbs and 1 CLB pb_graph_node, each CLB pb points to that single one pb_graph_node CLB.

Date: February 19, 2009 Authors: Jason Luu and Kenneth Kent

Definition in file physical_types.h.


Typedef Documentation

typedef struct s_arch t_arch

Definition at line 576 of file physical_types.h.

typedef struct s_chan t_chan
  • chan_width_io: The relative width of the I/O channel between the pads and logic array.
  • chan_x_dist: Describes the x-directed channel width distribution.
  • chan_y_dist: Describes the y-directed channel width distribution.
typedef struct s_class t_class

Definition at line 117 of file physical_types.h.

typedef struct s_clocks t_clocks

Definition at line 615 of file physical_types.h.

Definition at line 210 of file physical_types.h.

typedef struct s_mode t_mode

Definition at line 231 of file physical_types.h.

Definition at line 293 of file physical_types.h.

Definition at line 325 of file physical_types.h.

Definition at line 266 of file physical_types.h.

typedef struct s_pb_type t_pb_type

Definition at line 366 of file physical_types.h.

Definition at line 183 of file physical_types.h.

typedef struct s_port t_port

Definition at line 158 of file physical_types.h.

typedef struct s_power t_power

Definition at line 598 of file physical_types.h.

typedef struct s_segment_inf t_segment_inf

Lists all the important information about a certain segment type. Only used if the route_type is DETAILED. [0 .. det_routing_arch.num_segment]

  • frequency: ratio of tracks which are of this segment type.
  • length: Length (in clbs) of the segment.
  • wire_switch: Index of the switch type that connects other wires *to* this segment.
  • opin_switch: Index of the switch type that connects output pins (OPINs) *to* this segment.
  • frac_cb: The fraction of logic blocks along its length to which this segment can connect. (i.e. internal population).
  • frac_sb: The fraction of the length + 1 switch blocks along the segment to which the segment can connect. Segments that aren't long lines must connect to at least two switch boxes.
  • Cmetal: Capacitance of a routing track, per unit logic block length.
  • Rmetal: Resistance of a routing track, per unit logic block length.
  • drivers: How do signals driving a routing track connect to the track? (UDSD by AY)

Definition at line 472 of file physical_types.h.

typedef struct s_timing_inf t_timing_inf

Cluster timing delays:

  • C_ipin_cblock: Capacitance added to a routing track by the isolation buffer between a track and the Cblocks at an (i,j) loc.
  • T_ipin_cblock: Delay through an input pin connection box (from a routing track to a logic block input pin).

Definition at line 431 of file physical_types.h.

typedef struct s_type_descriptor* t_type_ptr

Definition at line 432 of file physical_types.h.


Enumeration Type Documentation

Enumerator:
UNI_DIRECTIONAL 
BI_DIRECTIONAL 

Definition at line 468 of file physical_types.h.

enum e_Fc_type
Enumerator:
ABSOLUTE 
FRACTIONAL 

Definition at line 473 of file physical_types.h.

Enumerator:
BOUNDARY 
FILL 
COL_REPEAT 
COL_REL 

Definition at line 68 of file physical_types.h.

Type of interconnect within complex block: Complete for everything connected (full crossbar), direct for one-to-one connections, and mux for many-to-one connections

Enumerator:
COMPLETE_INTERC 
DIRECT_INTERC 
MUX_INTERC 

Definition at line 33 of file physical_types.h.

Identify pb pin type for timing purposes

Enumerator:
PB_PIN_NORMAL 
PB_PIN_SEQUENTIAL 
PB_PIN_INPAD 
PB_PIN_OUTPAD 
PB_PIN_TERMINAL 
PB_PIN_CLOCK 

Definition at line 234 of file physical_types.h.

pb_type class

Enumerator:
UNKNOWN_CLASS 
LUT_CLASS 
LATCH_CLASS 
MEMORY_CLASS 

Definition at line 46 of file physical_types.h.

pin location distributions

Enumerator:
E_SPREAD_PIN_DISTR 
E_CUSTOM_PIN_DISTR 

Definition at line 41 of file physical_types.h.

Annotations for pin-to-pin connections

Enumerator:
E_ANNOT_PIN_TO_PIN_MATRIX 
E_ANNOT_PIN_TO_PIN_CONSTANT 

Definition at line 53 of file physical_types.h.

Annotations for pin-to-pin connections

Enumerator:
E_ANNOT_PIN_TO_PIN_DELAY 
E_ANNOT_PIN_TO_PIN_CAPACITANCE 

Definition at line 51 of file physical_types.h.

Annotations for pin-to-pin connections

Enumerator:
E_ANNOT_PIN_TO_PIN_CAPACITANCE_C 

Definition at line 59 of file physical_types.h.

Annotations for pin-to-pin connections

Enumerator:
E_ANNOT_PIN_TO_PIN_DELAY_MIN 
E_ANNOT_PIN_TO_PIN_DELAY_MAX 
E_ANNOT_PIN_TO_PIN_DELAY_TSETUP 
E_ANNOT_PIN_TO_PIN_DELAY_CLOCK_TO_Q_MIN 
E_ANNOT_PIN_TO_PIN_DELAY_CLOCK_TO_Q_MAX 
E_ANNOT_PIN_TO_PIN_DELAY_THOLD 

Definition at line 55 of file physical_types.h.

enum e_pin_type

Pins describe I/O into clustered logic block. A pin may be unconnected, driving a net or in the fanout, respectively.

Enumerator:
OPEN 
DRIVER 
RECEIVER 

Definition at line 29 of file physical_types.h.

{ OPEN = -1, DRIVER = 0, RECEIVER = 1 };
enum e_side

Orientations.

Enumerator:
TOP 
RIGHT 
BOTTOM 
LEFT 

Definition at line 37 of file physical_types.h.

{ TOP = 0, RIGHT = 1, BOTTOM = 2, LEFT = 3 };
enum e_stat

Description of routing channel distribution across the FPGA, only available for global routing Width is standard dev. for Gaussian. xpeak is where peak occurs. dc is the dc offset for Gaussian and pulse waveforms.

Enumerator:
UNIFORM 
GAUSSIAN 
PULSE 
DELTA 

Definition at line 442 of file physical_types.h.

Enumerator:
SUBSET 
WILTON 
UNIVERSAL 
FULL 

Definition at line 470 of file physical_types.h.