3D-ICE 3.0.0
ic_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_IC_ELEMENT_H_
40#define _3DICE_IC_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 "dimensions.h"
57
58/******************************************************************************/
59
66 {
70
74
78
82
86
90
95
100
105
110
114
118 } ;
119
122 typedef struct ICElement_t ICElement_t ;
123
124
125
126/******************************************************************************/
127
128
129
135 void ic_element_init (ICElement_t *icel) ;
136
137
138
147 void ic_element_copy (ICElement_t *dst, ICElement_t *src) ;
148
149
150
159 void ic_element_destroy (ICElement_t *icel) ;
160
161
162
173
174
175
186
187
188
200 void ic_element_free (ICElement_t *icel) ;
201
202
203
214 bool ic_element_equal (ICElement_t *icel, ICElement_t *other) ;
215
216
217
225 void ic_element_print (ICElement_t *icel, FILE *stream, String_t prefix) ;
226
227
228
244
245 (ICElement_t *icelement, CellDimension_t cellx, CellDimension_t celly) ;
246
247
248
261 bool check_intersection (ICElement_t *icelement_a, ICElement_t *icelement_b) ;
262
263
264
277 bool check_location (ICElement_t* icel, Dimensions_t *dimensions) ;
278
279
280
292 void align_to_grid (ICElement_t* icel, Dimensions_t *dimensions) ;
293
294
295
308 (
309 ICElement_t *icel,
310 Dimensions_t *dimensions,
311 Temperature_t *temperatures
312 ) ;
313
314
315
328 (
329 ICElement_t *icel,
330 Dimensions_t *dimensions,
331 Temperature_t *temperatures
332 ) ;
333
334
335
348 (
349 ICElement_t *icel,
350 Dimensions_t *dimensions,
351 Temperature_t *temperatures
352 ) ;
353
354/******************************************************************************/
355
356#ifdef __cplusplus
357}
358#endif
359
360#endif /* _3DICE_IC_ELEMENT_H_ */
bool check_intersection(ICElement_t *icelement_a, ICElement_t *icelement_b)
Definition: ic_element.c:177
Temperature_t get_avg_temperature_ic_element(ICElement_t *icel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: ic_element.c:365
void ic_element_print(ICElement_t *icel, FILE *stream, String_t prefix)
Definition: ic_element.c:147
bool ic_element_equal(ICElement_t *icel, ICElement_t *other)
Definition: ic_element.c:136
Temperature_t get_min_temperature_ic_element(ICElement_t *icel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: ic_element.c:313
Temperature_t get_max_temperature_ic_element(ICElement_t *icel, Dimensions_t *dimensions, Temperature_t *temperatures)
Definition: ic_element.c:265
void ic_element_copy(ICElement_t *dst, ICElement_t *src)
Definition: ic_element.c:64
ICElement_t * ic_element_clone(ICElement_t *icel)
Definition: ic_element.c:106
ICElement_t * ic_element_calloc(void)
Definition: ic_element.c:93
void ic_element_destroy(ICElement_t *icel)
Definition: ic_element.c:84
void ic_element_free(ICElement_t *icel)
Definition: ic_element.c:123
bool check_location(ICElement_t *icel, Dimensions_t *dimensions)
Definition: ic_element.c:205
void align_to_grid(ICElement_t *icel, Dimensions_t *dimensions)
Definition: ic_element.c:218
void ic_element_init(ICElement_t *icel)
Definition: ic_element.c:46
bool ic_element_has_center(ICElement_t *icelement, CellDimension_t cellx, CellDimension_t celly)
Definition: ic_element.c:162
char * String_t
Definition: string_t.h:55
Collections of all the structures that are needed for the thermal simulation.
Definition: dimensions.h:311
ChipDimension_t Discr_X
Definition: ic_element.h:85
CellIndex_t Index_start
Definition: ic_element.h:113
ChipDimension_t SW_Y
Definition: ic_element.h:73
ChipDimension_t SW_X
Definition: ic_element.h:69
CellIndex_t NE_Column
Definition: ic_element.h:109
CellIndex_t Index_end
Definition: ic_element.h:117
ChipDimension_t Width
Definition: ic_element.h:81
ChipDimension_t Length
Definition: ic_element.h:77
CellIndex_t SW_Row
Definition: ic_element.h:94
CellIndex_t NE_Row
Definition: ic_element.h:104
ChipDimension_t Discr_Y
Definition: ic_element.h:89
CellIndex_t SW_Column
Definition: ic_element.h:99
double ChipDimension_t
Definition: types.h:187
double Temperature_t
Definition: types.h:71
double CellDimension_t
Definition: types.h:177
uint32_t CellIndex_t
Definition: types.h:213