-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTSV.h
More file actions
57 lines (44 loc) · 1.58 KB
/
TSV.h
File metadata and controls
57 lines (44 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//Copyright (c) 2015-2016, UT-Battelle, LLC. See LICENSE file in the top-level directory
// This file contains code from CACTI-3DD, (c) 2012 Hewlett-Packard Development Company, L.P.
//See LICENSE_CACTI3DD file in the top-level directory.
//No part of DESTINY Project, including this file, may be copied,
//modified, propagated, or distributed except according to the terms
//contained in the LICENSE file.
#ifndef TSV_H_
#define TSV_H_
#include "formula.h"
#include "global.h"
#include <cmath>
#include <iostream>
#include <list>
class TSV : public FunctionUnit {
public:
TSV();
~TSV();
TSV& operator=(const TSV&);
void Initialize(TSV_type tsv_type, bool buffered = false);
void CalculateArea();
void CalculateLatencyAndPower(double _rampInputRead, double _rampInputWrite);
double res; //TSV resistance
double cap; //TSV capacitance
double C_load_TSV; //The intrinsic load plus the load TSV is driving
double min_area;
double F;
int num_gates;
double w_TSV_n[MAX_NUMBER_GATES_STAGE];
double w_TSV_p[MAX_NUMBER_GATES_STAGE];
int numTotalBits; // Total number of TSVs
int numAccessBits; // Number of input bits for a write
int numReadBits; // Number of input bits for a read
int numDataBits; // Number of output bits for a read
double TSV_metal_area;
double buffer_area;
double buffer_area_height;
double buffer_area_width;
unsigned int tsv_type;
bool initialized;
bool invalid;
private:
void _CalculateLatencyAndPower(double _rampInput, double &_dynamicEnergy, double &_latency);
};
#endif /* TSV_H_ */