3D-ICE 3.0.0
|
#include "types.h"
#include "string_t.h"
#include "analysis.h"
#include "stack_element_list.h"
#include "system_matrix.h"
#include "thermal_grid.h"
#include "power_grid.h"
#include "dimensions.h"
#include "connection_list.h"
#include "slu_ddefs.h"
Go to the source code of this file.
Data Structures | |
struct | ThermalData_t |
Structure to collect data to run thermal simulations. More... | |
Typedefs | |
typedef struct ThermalData_t | ThermalData_t |
typedef struct ThermalData_t ThermalData_t |
Definition of the type ThermalData_t
Definition at line 107 of file thermal_data.h.
SimResult_t emulate_slot | ( | ThermalData_t * | tdata, |
Dimensions_t * | dimensions, | ||
Analysis_t * | analysis | ||
) |
Simulates a time slot
tdata | the address of the ThermalData to fill |
dimensions | the dimensions of the IC |
analysis | the address of the Analysis structure |
TDICE_WRONG_CONFIG
if the parameters refers to a steady state simulation TDICE_SOLVER_ERROR
if the SLU functions report an error in the structure of the system matrix. TDICE_END_OF_SIMULATION
if power values are over. TDICE_SLOT_DONE
the slot has been simulated correclty Definition at line 1262 of file thermal_data.c.
SimResult_t emulate_steady | ( | ThermalData_t * | tdata, |
Dimensions_t * | dimensions, | ||
Analysis_t * | analysis | ||
) |
Execute steady state simulation
tdata | the address of the ThermalData to fill |
dimensions | the dimensions of the IC |
analysis | the address of the Analysis structure |
TDICE_WRONG_CONFIG
if the parameters refers to a transient simulation TDICE_SOLVER_ERROR
if the SLU functions report an error in the structure of the system matrix. TDICE_END_OF_SIMULATION
if no power values are given or if the simulation suceeded Definition at line 1283 of file thermal_data.c.
SimResult_t emulate_step | ( | ThermalData_t * | tdata, |
Dimensions_t * | dimensions, | ||
Analysis_t * | analysis | ||
) |
Simulates a time step
tdata | the address of the ThermalData to fill |
dimensions | the dimensions of the IC |
analysis | the address of the Analysis structure |
TDICE_WRONG_CONFIG
if the parameters refers to a steady state simulation TDICE_SOLVER_ERROR
if the SLU functions report an error in the structure of the system matrix. TDICE_END_OF_SIMULATION
if power values are over. TDICE_STEP_DONE
if the time step has been simulated correclty TDICE_SLOT_DONE
if the time step has been simulated correclty and the slot has been completed Definition at line 1210 of file thermal_data.c.
void get_cell_position | ( | ChipDimension_t(*) | position_info[4], |
CellIndex_t * | layer_cell_record, | ||
CellIndex_t * | layer_type_record, | ||
StackElementList_t * | stack_elements_list, | ||
Dimensions_t * | dimensions | ||
) |
Get cell position for each cell and sace info to arrays position_info and layer_cell_record
position_info | position info contains "left_x, left_y, right_x, right_y" for each thermal cell |
layer_cell_record | the vector contains the end index of each layer in the position_info |
layer_type_record | the vector contains the layer type information of each layer in the position_info |
stack_elements_list | the list of stack element (bottom first) |
dimensions | the dimensions of the IC |
Definition at line 154 of file thermal_data.c.
Temperature_t get_cell_temperature | ( | ThermalData_t * | tdata, |
Dimensions_t * | dimensions, | ||
CellIndex_t | layer_index, | ||
CellIndex_t | row_index, | ||
CellIndex_t | column_index | ||
) |
Returns the temperature of a thermal cell (L
, R
, C
)
Coordinates of the cell must be within the ranges
tdata | address of the ThermalData structure |
dimensions | the dimensions of the IC |
layer_index | the index L of the thermal cell |
row_index | the index R of the thermal cell |
column_index | the index C of the thermal cell |
0
if the thermal cell (L
, R
, C
) does not exist L
, R
, C
) Definition at line 1358 of file thermal_data.c.
void get_connections_between_layer | ( | CellIndex_t * | layer_cell_record, |
CellIndex_t * | layer_type_record, | ||
ChipDimension_t(*) | position_info_ptr[4], | ||
Dimensions_t * | dimensions | ||
) |
Get connections between layers (from bottom to top)
layer_cell_record | the vector contains the end index of each layer in the position_info |
layer_type_record | the vector contains the layer type information of each layer in the position_info |
position_info_ptr | position info contains "left_x, left_y, right_x, right_y" for each thermal cell |
dimensions | the dimensions of the IC |
Definition at line 733 of file thermal_data.c.
void get_connections_in_layer | ( | CellIndex_t * | layer_cell_record, |
CellIndex_t * | layer_type_record, | ||
ChipDimension_t(*) | position_info_ptr[4], | ||
Dimensions_t * | dimensions | ||
) |
get connections of each grid in the same layer
layer_cell_record | the vector contains the end index of each layer in the position_info |
layer_type_record | the vector contains the layer type information of each layer in the position_info |
position_info_ptr | position info contains "left_x, left_y, right_x, right_y" for each thermal cell |
dimensions | the dimensions of the IC |
Definition at line 660 of file thermal_data.c.
void get_minkowski_difference | ( | ChipDimension_t * | minkowski_diff, |
ChipDimension_t(*) | position_info[4], | ||
int | i_x, | ||
int | i_y | ||
) |
Get the Minkowski difference between two cells
minkowski_diff | the vector contains the minkowski difference information |
position_info | position info contains "left_x, left_y, right_x, right_y" for each thermal cell |
i_x | the index of the one cell |
i_y | the index of the other cell |
Definition at line 629 of file thermal_data.c.
Error_t print_thermal_map | ( | ThermalData_t * | tdata, |
StackElementList_t * | list, | ||
Dimensions_t * | dimensions, | ||
String_t | stack_element_id, | ||
String_t | file_name | ||
) |
Generate a text file with the thermal map of a stack element
tdata | address of the ThermalData structure |
list | the list of stack element (bottom first) |
dimensions | the dimensions of the IC |
stack_element_id | the id of the stack element as it appears in the stack file |
file_name | the path of the file to be generated |
TDICE_FAILURE
if the file cannot be opened or if the stack element stack_element_id does not exist TDICE_SUCCESS
otherwise Definition at line 1382 of file thermal_data.c.
void reset_thermal_state | ( | ThermalData_t * | tdata, |
Analysis_t * | analysis | ||
) |
Reset the thermal state to the initial temperature
tdata | the address of the ThermalData structure to reset |
analysis | the address of the Analysis structure related to tdata |
Definition at line 1045 of file thermal_data.c.
Error_t thermal_data_build | ( | ThermalData_t * | tdata, |
StackElementList_t * | list, | ||
Dimensions_t * | dimensions, | ||
Analysis_t * | analysis | ||
) |
Allocs and initialize memory and prepares the LU factorization
tdata | the address of the ThermalData to fill |
list | the list of stack element (bottom first) |
dimensions | the dimensions of the IC |
analysis | the address of the Analysis structure |
TDICE_FAILURE
if the memory allocation fails or the syatem matrix cannot be split in A=LU. TDICE_SUCCESS
otherwise Definition at line 876 of file thermal_data.c.
void thermal_data_destroy | ( | ThermalData_t * | tdata | ) |
Destroys the content of the fields of the structure tdata
The function releases any dynamic memory used by the structure and resets its state calling thermal_data_init .
tdata | the address of the structure to destroy |
Definition at line 1029 of file thermal_data.c.
void thermal_data_init | ( | ThermalData_t * | tdata | ) |
Inits the fields of the tdata structure with default values
tdata | the address of the structure to initalize |
Definition at line 54 of file thermal_data.c.
Error_t update_coolant_flow_rate | ( | ThermalData_t * | tdata, |
Dimensions_t * | dimensions, | ||
Analysis_t * | analysis, | ||
CoolantFR_t | new_flow_rate | ||
) |
Update the flow rate
Sets the new value in the Channel structure, re-fill the system matrix A and then execute the factorization A=LU again. If tdata succeeds then the source vector will be upadted with the new inlet source value.
tdata | address of the ThermalData structure |
dimensions | the dimensions of the IC |
analysis | address of the Analisys structure |
new_flow_rate | the new flow rate (in ml/min) |
TDICE_FAILURE
if the syatem matrix cannot be split in A=LU. TDICE_SUCCESS
otherwise Definition at line 1331 of file thermal_data.c.
void update_number_of_cells | ( | Dimensions_t * | dimensions, |
StackElementList_t * | stack_elements_list | ||
) |
Update the number of cells in the non-uniform grid scenario
dimensions | the dimensions of the IC |
stack_elements_list | the list of stack element (bottom first) |
Definition at line 69 of file thermal_data.c.