3D-ICE 3.0.0
stack_element.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_STACK_ELEMENT_H_
40#define _3DICE_STACK_ELEMENT_H_
41
44#ifdef __cplusplus
45extern "C"
46{
47#endif
48
49/******************************************************************************/
50
51#include <stdio.h> // For the file type FILE
52
53#include "types.h"
54#include "string_t.h"
55
56#include "channel.h"
57#include "heat_sink.h"
58#include "die.h"
59#include "dimensions.h"
60#include "layer.h"
61
62/******************************************************************************/
63
71 {
75 } ;
76
80
81/******************************************************************************/
82
93 {
97
101
107
111
115
119
124 } ;
125
129
130
131
132/******************************************************************************/
133
134
135
141 void stack_element_init (StackElement_t *stkel) ;
142
143
144
154
155
156
166
167
168
179
180
181
192
193
194
207 void stack_element_free (StackElement_t *stkel) ;
208
209
210
221
222
223
233
234 (StackElement_t *stkel, FILE *stream, String_t prefix) ;
235
236
237
247
248
249
259 (
260 StackElement_t *stkel,
261 Dimensions_t *dimensions,
262 Temperature_t *temperatures,
263 FILE *stream
264 ) ;
265
266
267
277 (
278 StackElement_t *stkel,
279 Dimensions_t *dimensions,
280 Source_t *sources,
281 FILE *stream
282 ) ;
283
284
285
294
295 (StackElement_t *stkel) ;
296
297/******************************************************************************/
298
299#ifdef __cplusplus
300}
301#endif
302
303#endif /* _3DICE_STACK_ELEMENT_H_ */
void stack_element_copy(StackElement_t *dst, StackElement_t *src)
Definition: stack_element.c:63
void stack_element_print_power_map(StackElement_t *stkel, Dimensions_t *dimensions, Source_t *sources, FILE *stream)
void stack_element_destroy(StackElement_t *stkel)
Definition: stack_element.c:93
void stack_element_init(StackElement_t *stkel)
Definition: stack_element.c:45
CellIndex_t get_source_layer_offset(StackElement_t *stkel)
StackElement_t * stack_element_calloc(void)
void stack_element_print_thermal_map(StackElement_t *stkel, Dimensions_t *dimensions, Temperature_t *temperatures, FILE *stream)
Quantity_t get_number_of_floorplan_elements_stack_element(StackElement_t *stkel)
StackElement_t * stack_element_clone(StackElement_t *stkel)
bool stack_element_same_id(StackElement_t *stkel, StackElement_t *other)
void stack_element_print(StackElement_t *stkel, FILE *stream, String_t prefix)
void stack_element_free(StackElement_t *stkel)
char * String_t
Definition: string_t.h:55
Structure used to store data about the channel that compose the 2D/3D stack.
Definition: channel.h:71
Structure used to store data about the dies that compose the 2D/3D stack.
Definition: die.h:70
Collections of all the structures that are needed for the thermal simulation.
Definition: dimensions.h:311
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 layers that compose the 2D/3D stack.
Definition: layer.h:72
Structure used to store data about the stack element that compose the 2D/3D stack.
Definition: stack_element.h:93
StackElement_p Pointer
CellIndex_t NLayers
HeatSink_t * TopSink
CellIndex_t Offset
StackElementType_t SEType
HeatSink_t * BottomSink
double Temperature_t
Definition: types.h:71
double Source_t
Definition: types.h:77
StackElementType_t
Definition: types.h:325
uint32_t Quantity_t
Definition: types.h:59
uint32_t CellIndex_t
Definition: types.h:213
A union of pointers to types that can be an instance of a StackElement.
Definition: stack_element.h:71
Channel_t * Channel
Definition: stack_element.h:74
Layer_t * Layer
Definition: stack_element.h:72