3D-ICE 3.0.0
power_grid.h
Go to the documentation of this file.
1/******************************************************************************
2 * This file is part of 3D-ICE, version 3.1.0 . *
3 * *
4 * 3D-ICE is free software: you can redistribute it and/or modify it under *
5 * the terms of the GNU General Public License as published by the Free *
6 * Software Foundation, either version 3 of the License, or any later *
7 * version. *
8 * *
9 * 3D-ICE is distributed in the hope that it will be useful, but WITHOUT *
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
12 * more details. *
13 * *
14 * You should have received a copy of the GNU General Public License along *
15 * with 3D-ICE. If not, see <http://www.gnu.org/licenses/>. *
16 * *
17 * Copyright (C) 2021 *
18 * Embedded Systems Laboratory - Ecole Polytechnique Federale de Lausanne *
19 * All Rights Reserved. *
20 * *
21 * Authors: Arvind Sridhar Alessandro Vincenzi *
22 * Giseong Bak Martino Ruggiero *
23 * Thomas Brunschwiler Eder Zulian *
24 * Federico Terraneo Darong Huang *
25 * Luis Costero Marina Zapater *
26 * David Atienza *
27 * *
28 * For any comment, suggestion or request about 3D-ICE, please register and *
29 * write to the mailing list (see http://listes.epfl.ch/doc.cgi?liste=3d-ice) *
30 * Any usage of 3D-ICE for research, commercial or other purposes must be *
31 * properly acknowledged in the resulting products or publications. *
32 * *
33 * EPFL-STI-IEL-ESL Mail : 3d-ice@listes.epfl.ch *
34 * Batiment ELG, ELG 130 (SUBSCRIPTION IS NECESSARY) *
35 * Station 11 *
36 * 1015 Lausanne, Switzerland Url : http://esl.epfl.ch/3d-ice *
37 ******************************************************************************/
38
39#ifndef _3DICE_POWER_GRID_H_
40#define _3DICE_POWER_GRID_H_
41
44#ifdef __cplusplus
45extern "C"
46{
47#endif
48
49/******************************************************************************/
50
51#include "types.h"
52
53#include "channel.h"
54#include "heat_sink.h"
55#include "floorplan.h"
56
57#include "thermal_grid.h"
58#include "stack_element_list.h"
59#include "powers_queue.h"
60#include "dimensions.h"
61
62/******************************************************************************/
63
70 {
74
78
82
86
90
94
98
102
106
114
122
130 } ;
131
134 typedef struct PowerGrid_t PowerGrid_t ;
135
136
137
138/******************************************************************************/
139
140
141
147 void power_grid_init (PowerGrid_t *pgrid) ;
148
149
150
160 Error_t power_grid_build (PowerGrid_t *pgrid, Dimensions_t *dimensions) ;
161
162
163
172 void power_grid_destroy (PowerGrid_t *pgrid) ;
173
174
175
184 void power_grid_fill
185 (
186 PowerGrid_t *pgrid,
187 ThermalGrid_t *tgrid,
188 StackElementList_t *list,
189 Dimensions_t *dimensions
190 ) ;
191
192
193
206
207
208
216 void update_channel_sources (PowerGrid_t *pgrid, Dimensions_t *dimensions) ;
217
218
219
242
243/******************************************************************************/
244
245#ifdef __cplusplus
246}
247#endif
248
249#endif /* _3DICE_POWER_GRID_H_ */
void power_grid_fill(PowerGrid_t *pgrid, ThermalGrid_t *tgrid, StackElementList_t *list, Dimensions_t *dimensions)
Definition: power_grid.c:222
Error_t insert_power_values(PowerGrid_t *pgrid, PowersQueue_t *pvalues)
Definition: power_grid.c:1002
void update_channel_sources(PowerGrid_t *pgrid, Dimensions_t *dimensions)
Definition: power_grid.c:928
Error_t power_grid_build(PowerGrid_t *pgrid, Dimensions_t *dimensions)
Definition: power_grid.c:64
Error_t update_source_vector(PowerGrid_t *pgrid, Dimensions_t *dimensions)
Definition: power_grid.c:528
void power_grid_init(PowerGrid_t *pgrid)
Definition: power_grid.c:46
void power_grid_destroy(PowerGrid_t *pgrid)
Definition: power_grid.c:202
Structure used to store data about the channel that compose the 2D/3D stack.
Definition: channel.h:71
Collections of all the structures that are needed for the thermal simulation.
Definition: dimensions.h:311
The floorplan representing the IC as a set of floorplan elements.
Definition: floorplan.h:69
Structure used to store data about the heat dissipation through the top or bottom surfaces of the 2D/...
Definition: heat_sink.h:69
Structure used to store data about the power sources.
Definition: power_grid.h:70
StackLayerType_t * LayersTypeProfile
Definition: power_grid.h:85
CellIndex_t NCells
Definition: power_grid.h:77
HeatSink_t * BottomHeatSink
Definition: power_grid.h:105
Floorplan_t ** FloorplansProfile
Definition: power_grid.h:89
Source_t * Sources
Definition: power_grid.h:93
Channel_t * Channel
Definition: power_grid.h:97
CellIndex_t NCellsLayer
Definition: power_grid.h:81
CellIndex_t NLayers
Definition: power_grid.h:73
SolidTC_t * HeatSinkBottomTcs
Definition: power_grid.h:121
HeatSink_t * TopHeatSink
Definition: power_grid.h:101
Capacity_t * CellsCapacities
Definition: power_grid.h:129
SolidTC_t * HeatSinkTopTcs
Definition: power_grid.h:113
A First In - First Out circular queue to store power values.
Definition: powers_queue.h:63
Structure used to store data about the thermal cells / RC nodes.
Definition: thermal_grid.h:68
double Capacity_t
Definition: types.h:119
Error_t
Definition: types.h:401
StackLayerType_t
Definition: types.h:243
double SolidTC_t
Definition: types.h:107
double Source_t
Definition: types.h:77
uint32_t CellIndex_t
Definition: types.h:213