/
Driver.cc
117 lines (113 loc) · 3.47 KB
/
Driver.cc
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// See LICENSE for license details.
#ifndef RTLSIM
#include "simif_f1.h"
#else
#include "simif_emul.h"
#endif
// This is heinous i'm sorry...
#ifdef DESIGNNAME_EnableShiftRegister
#include "EnableShiftRegister.h"
#elif defined DESIGNNAME_GCD
#include "GCD.h"
#elif defined DESIGNNAME_Parity
#include "Parity.h"
#elif defined DESIGNNAME_PointerChaser
#include "PointerChaser.h"
#elif defined DESIGNNAME_ResetShiftRegister
#include "ResetShiftRegister.h"
#elif defined DESIGNNAME_Risc
#include "Risc.h"
#elif defined DESIGNNAME_RiscSRAM
#include "RiscSRAM.h"
#elif defined DESIGNNAME_ShiftRegister
#include "ShiftRegister.h"
#elif defined DESIGNNAME_Stack
#include "Stack.h"
#elif defined DESIGNNAME_WireInterconnect
#include "WireInterconnect.h"
#elif defined DESIGNNAME_AssertModule
#include "AssertModule.h"
#elif defined DESIGNNAME_AssertGlobalResetCondition
#include "AssertTorture.h"
#elif defined DESIGNNAME_PrintfModule
#include "PrintfModule.h"
#elif defined DESIGNNAME_NarrowPrintfModule
#include "NarrowPrintfModule.h"
#elif defined DESIGNNAME_MulticlockPrintfModule
#include "MulticlockPrintfModule.h"
#elif defined DESIGNNAME_TriggerPredicatedPrintf
#include "PrintfModule.h"
#elif defined DESIGNNAME_PrintfGlobalResetCondition
#include "PrintfModule.h"
#elif defined DESIGNNAME_AutoCounterModule
#include "AutoCounterModule.h"
#elif defined DESIGNNAME_AutoCounter32bRollover
#include "AutoCounterModule.h"
#elif defined DESIGNNAME_AutoCounterGlobalResetCondition
#include "AutoCounterModule.h"
#elif defined DESIGNNAME_AutoCounterCoverModule
#include "AutoCounterCoverModule.h"
#elif defined DESIGNNAME_AutoCounterPrintfModule
#include "PrintfModule.h"
#elif defined DESIGNNAME_MulticlockAutoCounterModule
#include "MulticlockAutoCounterModule.h"
#elif defined DESIGNNAME_Accumulator
#include "Accumulator.h"
#elif defined DESIGNNAME_VerilogAccumulator
#include "VerilogAccumulator.h"
#elif defined DESIGNNAME_TrivialMulticlock
#include "TrivialMulticlock.h"
#elif defined DESIGNNAME_MulticlockAssertModule
#include "MulticlockAssertModule.h"
#elif defined DESIGNNAME_AssertTorture
#include "AssertTorture.h"
#elif defined DESIGNNAME_TriggerWiringModule
#include "TriggerWiringModule.h"
#elif defined DESIGNNAME_TwoAdders
#include "TwoAdders.h"
#elif defined DESIGNNAME_Regfile
#include "Regfile.h"
#elif defined DESIGNNAME_MultiRegfile
#include "MultiRegfile.h"
#elif defined DESIGNNAME_MultiRegfileFMR
#include "MultiRegfileFMR.h"
#elif defined DESIGNNAME_MultiSRAM
#include "MultiSRAM.h"
#elif defined DESIGNNAME_MultiSRAMFMR
#include "MultiSRAMFMR.h"
#elif defined DESIGNNAME_NestedModels
#include "NestedModels.h"
#elif defined DESIGNNAME_MultiReg
#include "MultiReg.h"
#elif defined DESIGNNAME_PassthroughModel
#include "PassthroughModels.h"
#elif defined DESIGNNAME_PassthroughModelNested
#include "PassthroughModels.h"
#elif defined DESIGNNAME_PassthroughModelBridgeSource
#include "PassthroughModels.h"
#elif defined DESIGNNAME_ResetPulseBridgeTest
#include "ResetPulseBridgeTest.h"
#elif defined DESIGNNAME_TerminationModule
#include "TerminationModule.h"
#endif
class dut_emul_t :
#ifdef RTLSIM
public simif_emul_t,
#else
public simif_f1_t,
#endif
public DESIGNDRIVERCLASS {
public:
#ifdef RTLSIM
dut_emul_t(int argc, char **argv) : DESIGNDRIVERCLASS(argc, argv) {}
#else
dut_emul_t(int argc, char **argv)
: simif_f1_t(argc, argv), DESIGNDRIVERCLASS(argc, argv) {}
#endif
};
int main(int argc, char **argv) {
dut_emul_t dut(argc, argv);
dut.init(argc, argv);
dut.run();
return dut.teardown();
}