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

Go to the source code of this file.

Macros

#define POWER_DRC_MIN_L   2.0
 
#define POWER_DRC_MIN_W   5.0
 
#define POWER_DRC_MIN_DIFF_L   5.5
 
#define POWER_DRC_SPACING   3.0
 
#define POWER_DRC_POLY_OVERHANG   2.5
 
#define POWER_MTA_W   (POWER_DRC_MIN_W + POWER_DRC_POLY_OVERHANG + POWER_DRC_SPACING)
 
#define POWER_MTA_L   (POWER_DRC_MIN_L + 2 * POWER_DRC_MIN_DIFF_L + POWER_DRC_SPACING)
 

Functions

void power_sizing_init (t_arch *arch)
 
double power_count_transistors_buffer (float buffer_size)
 
double power_transistor_area (double num_transistors)
 

Macro Definition Documentation

#define POWER_DRC_MIN_DIFF_L   5.5

Definition at line 34 of file power_sizing.h.

#define POWER_DRC_MIN_L   2.0

The functions in this file are used to count the transistors in the FPGA, for physical size estimations

Definition at line 32 of file power_sizing.h.

#define POWER_DRC_MIN_W   5.0

Definition at line 33 of file power_sizing.h.

#define POWER_DRC_POLY_OVERHANG   2.5

Definition at line 36 of file power_sizing.h.

#define POWER_DRC_SPACING   3.0

Definition at line 35 of file power_sizing.h.

#define POWER_MTA_L   (POWER_DRC_MIN_L + 2 * POWER_DRC_MIN_DIFF_L + POWER_DRC_SPACING)

Definition at line 39 of file power_sizing.h.

Definition at line 38 of file power_sizing.h.

Function Documentation

double power_count_transistors_buffer ( float  buffer_size)

Counts the number of transistors in a buffer.

  • buffer_size: The final stage size of the buffer, relative to a minimum sized inverter

Definition at line 100 of file power_sizing.c.

100  {
101  int stages;
102  float effort;
103  float stage_size;
104  int stage_idx;
105  double transistor_cnt = 0.;
106 
107  stages = power_calc_buffer_num_stages(buffer_size,
109  effort = calc_buffer_stage_effort(stages, buffer_size);
110 
111  stage_size = 1;
112  for (stage_idx = 0; stage_idx < stages; stage_idx++) {
113  transistor_cnt += power_count_transistors_inv(stage_size);
114  stage_size *= effort;
115  }
116 
117  return transistor_cnt;
118 }
t_power_arch * g_power_arch
Definition: power.c:68
float logical_effort_factor
int power_calc_buffer_num_stages(float final_stage_size, float desired_stage_effort)
Definition: power_util.c:179
static double power_count_transistors_inv(float size)
Definition: power_sizing.c:477
float calc_buffer_stage_effort(int N, float final_stage_size)
Definition: power_util.c:204

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void power_sizing_init ( t_arch arch)

Definition at line 237 of file power_sizing.c.

237  {
238  float transistors_per_tile;
239 
240  // tech size = 2 lambda, so lambda^2/4.0 = tech^2
242  (float) 2.0);
243 
244  // Determines physical size of different PBs
245  power_size_pb();
246 
247  /* Find # of transistors in each tile type */
248  transistors_per_tile = power_transistors_per_tile(arch);
249 
250  /* Calculate CLB tile size
251  * - Assume a square tile
252  * - Assume min transistor size is Wx6L
253  * - Assume an overhead to space transistors
254  */
256  power_transistor_area(transistors_per_tile));
257 }
#define POWER_MTA_L
Definition: power_sizing.h:39
t_power_tech * g_power_tech
Definition: power.c:67
static double g_MTA_area
Definition: power_sizing.c:34
float tech_size
Definition: power.h:134
t_power_commonly_used * g_power_commonly_used
Definition: power.c:66
static double power_transistors_per_tile(t_arch *arch)
Definition: power_sizing.c:264
double power_transistor_area(double num_MTAs)
Definition: power_sizing.c:504
static void power_size_pb(void)
Definition: power_sizing.c:516
#define POWER_MTA_W
Definition: power_sizing.h:38

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double power_transistor_area ( double  num_transistors)

Definition at line 504 of file power_sizing.c.

504  {
505  return num_MTAs * g_MTA_area;
506 }
static double g_MTA_area
Definition: power_sizing.c:34

+ Here is the caller graph for this function: