RecoSim  1.0
 All Classes Files Functions Variables Enumerations
user_parameters.h
Go to the documentation of this file.
1 
13 #ifndef USER_PARAMETERS_H
14 #define USER_PARAMETERS_H
15 
16 #include "utils.h"
17 
18 
19 
20 #ifdef RECOSIM_PART
21 #include <systemc.h>
22 #endif
23 
24 /*****************************************************************************/
25 /************************** BEGIN USER SPACE ********************************/
26 
27 #define ZC702
28 
29 
30 #ifdef VIRTEX6
31 
32  #define CPU_PRUN 435 //435
33  #define P_RECONF 150
34  #define RECONF_SPEED 400 //400MB/s
35  #define CELL_SIZE 162 //40.5*4Byte //Virtex6 !!
36 
37 
38  //ZC702 has 13300 slices?
39  //global static power is 22mW
40  #define P_STATIC_1CELL 0.001654 //1.7uW/slice static FPGA static power
41 
42  #define CPU_PSTATIC 24 //we consider CPU has same power in blank and idle mode
43  #define CPU_PIDLE 24
44 
45 
46 #endif
47 
48 
49 
50 #ifdef ZC702
51 
52  #define CPU_PSTATIC 291 //we consider CPU has same power in blank and idle mode
53  #define CPU_PIDLE 291
54  #define CPU_PRUN 410 //435
55 
56 
57  //#define P_RECONF (2.8*4*5) // x4 if we suppose 400M is 4*dynamic power consumption at 120M x5 for demo
58  #define P_RECONF (2*42+28) // 42mW for FARM at 50MHz (x2 pour 100MHz) + 28 of ICAP clock power
59  //#define RECONF_SPEED 120 //120MB/s (PCAP)
60  #define RECONF_SPEED 400 //We suppose a highspeed reconf, optimized FaRM
61 
62  #define CELL_SIZE 162 //40.5*4Byte //Virtex6 !! MUST VERIFY FOR ZC702!!!!!!!!
63 
64 
65  //ZC702 has 13300 slices?
66  //global static power is 48.51mW
67  #define P_STATIC_XC7Z020 48.51
68  #define N_SLICES_XC7Z020 13300
69  //#define P_STATIC_1CELL 0.003647 //3.6uW/slice static FPGA static power
70  #define P_STATIC_1CELL (P_STATIC_XC7Z020/N_SLICES_XC7Z020)
71 
72 
73  //CPU power model
74  //power = a * %CPU use + b | with b idle power and a power/%
75  //b = 291
76 
77  #define PM_CPU_STATIC 89.82
78  #define PM_CPU_ALPHA 0.0837
79  #define PM_CPU_BETA 0.1790
80 
81  #define PM_CPU_VOLTAGE 1
82  #define PM_CPU_CORENUMBER 2
83  #define PM_CPU_FREQUENCY 667
84  //power equation is P=Pstatic*Vcore*Ncores+alpha*Vcore*Vcore*Ncores*Freq+beta*Vcore*Vcore*Ncoresrunning*Freq
85 
86 
87 #endif
88 
89 
90 
91 
92 #define NB_SLICES_APPLICATION 4
93 
94 enum My_Simulation_states { WCET,BCET,RANDOM};
95 extern My_Simulation_states tasks_execution_time;
96 #ifdef RECOSIM_PART
97 extern sc_event TB_lock[NB_SLICES_APPLICATION];
98 extern sc_semaphore Slice_lock_IN;
99 extern sc_semaphore Slice_lock_OUT;
100 extern sc_time application_start_time;
101 extern int app_is_running;
102 #endif
103 extern int current_application_id;
104 
105 #define MAX_RZ 40
106 #define MAX_IMPL 40
107 //definitions for EA3c
108 extern double cost_result[MAX_RZ][MAX_IMPL];
109 extern double cost_energy[MAX_RZ][MAX_IMPL];
110 extern double cost_time[MAX_RZ][MAX_IMPL];
111 extern double cost_resource[MAX_RZ][MAX_IMPL];
112 
113 //definitions for EA3deadline
114 
115 #define STRATEGY_DVFS
116 #define STRATEGY_BLANK
117 //#define STRATEGY_STATIC
118 
119 #ifdef STRATEGY_DVFS
120  #define MAX_FREQ_STEPS 3
121 #else
122  #define MAX_FREQ_STEPS 1
123 #endif
124 extern double cost_result_d[MAX_RZ][MAX_IMPL][MAX_FREQ_STEPS];
125 extern double cost_energy_d[MAX_RZ][MAX_IMPL][MAX_FREQ_STEPS];
126 extern double cost_time_d[MAX_RZ][MAX_IMPL][MAX_FREQ_STEPS];
127 extern double cost_resource_d[MAX_RZ][MAX_IMPL][MAX_FREQ_STEPS];
128 
129 extern unsigned int CPU_FREQUENCIES_STEPS[MAX_FREQ_STEPS];
130 extern unsigned int global_operating_point;
131 extern double CPU_VOLTAGES_STEPS[MAX_FREQ_STEPS];
132 
133 
134 
135 
136 //My_Simulation_states tasking_execution_time = WCET;
137 
138 /************************** END USER SPACE ********************************/
139 /***************************************************************************/
140 
141 #endif