-
Notifications
You must be signed in to change notification settings - Fork 0
/
main_GCU.cpp
58 lines (41 loc) · 1.88 KB
/
main_GCU.cpp
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
58
#include <iostream>
using namespace std;
#include "schematic.h"
#include "component.h"
#include "capacitor.h"
#include "resistor.h"
#include "resistor_VISHAY_CRCWe3.h"
#include "IC.h"
#include "inductor.h"
#include "inductor_coilcraft.h"
#include "diode.h"
#include "capacitor_WUERTH.h"
#include "inductor_WUERTH.h"
#include "IC_TI.h"
#include "utils.h"
int main(){
cout << "Reliability Calculator" << endl;
cout << "\tcompiled @ " << __DATE__ << " " << __TIME__ << " using GCC " << __VERSION__ << endl << endl;
cout << "FIT for 0.5% in 6 years " << utils::FailureRate2FIT(0.5/100., 6*365*24.) << endl;
component::setAmbientTemperature(45);
schematic* FPGA2 = new schematic("Example FPGA_kintex7");
FPGA2 -> addComponent(new IC ("IC12", 11, 55));
FPGA2 -> getLastComponent () -> setDeviceTemperature (60);
FPGA2 -> addComponent(new capacitor_WUERTH ("C241", "WCAP-CSGP", 1*capacitor ::uF, 2.5, 16));
FPGA2 -> addComponent(new resistor_VISHAY_CRCWe3 ("R60", 4.7*resistor::kOhm, 0.002, 0.063));
// example -> addComponent(new IC_TI("U101", "DS15EA101SQ/NOPB")); // Fetch the data from TI
// example -> addComponent(new IC_TI("U102", "DS15BA101SQ/NOPB")); // Fetch the data from TI
schematic* VCCO2V5 = new schematic("VCCO2V5");
VCCO2V5 -> addComponent (new IC_TI ("RG1", "LMZ21701SILT"));
schematic* ETHERNETSWITCH = new schematic("ETHERNETSWITCH");
ETHERNETSWITCH -> addComponent(new inductor_coilcraft ("TR1", 60));
ETHERNETSWITCH -> addComponent(new inductor_coilcraft ("TR2", 60));
schematic* GCU = new schematic("GCU_total");
GCU -> addComponent(FPGA2);
GCU -> addComponent(VCCO2V5);
GCU -> addComponent(ETHERNETSWITCH);
GCU -> setVerboseOutput(true); // enable verbose output
FPGA2 -> setVerboseOutput(true);
GCU -> getFIT();
return 0;
}