3D-ICE 3.0.0
connection.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#ifndef _CONNECTION_H_
39#define _CONNECTION_H_
40
43#ifdef __cplusplus
44extern "C"
45{
46#endif
47
48/******************************************************************************/
49#include <stdio.h> // For the file type FILE
50#include "types.h"
51#include "string_t.h"
52
53/******************************************************************************/
54
56{
57 CellIndex_t node1;
58 CellIndex_t node1_layer;
59 CellIndex_t node2;
60 CellIndex_t node2_layer;
61 CellIndex_t direction; // connection direction in z (top bottom =0), x (west, east =1), or y (north south=2);
62 ChipDimension_t value; // connection value, it is intercoonect length if two nodes in the same layer, otherwise, it is the area
63};
64
65typedef struct Connection_t Connection_t;
66
67/******************************************************************************/
78 void connection_init (Connection_t *connection) ;
79 void connection_destroy (Connection_t *connection) ;
80 void connection_free (Connection_t *connection);
81 void connection_copy (Connection_t *dst, Connection_t *src) ;
82 bool connection_equal (Connection_t *connection, Connection_t *other) ;
83 void connection_print (Connection_t *connection, FILE *stream, String_t prefix) ;
84
85/******************************************************************************/
86
87#ifdef __cplusplus
88}
89#endif
90#endif /* _CONNECTION_H_ */
void connection_init(Connection_t *connection)
Definition: connection.c:43
char * String_t
Definition: string_t.h:55
double ChipDimension_t
Definition: types.h:187
uint32_t CellIndex_t
Definition: types.h:213