@@ -4,169 +4,77 @@ object EvalTests {
4
4
5
5
def main (args : Array [String ]): Unit = {
6
6
val testArgs = args.slice(1 , args.length).toArray
7
- args(0 ) match {
8
- case " FMAP16_add" =>
9
- chisel3.Driver .execute(
10
- testArgs, () => new Eval_PositFMAP16_add )
11
- case " FMAP16_mul" =>
12
- chisel3.Driver .execute(
13
- testArgs, () => new Eval_PositFMAP16_mul )
14
- case " FMAP16" =>
15
- chisel3.Driver .execute(
16
- testArgs, () => new Eval_PositFMAP16 )
17
- case " FMAP32_add" =>
18
- chisel3.Driver .execute(
19
- testArgs, () => new Eval_PositFMAP32_add )
20
- case " FMAP32_mul" =>
21
- chisel3.Driver .execute(
22
- testArgs, () => new Eval_PositFMAP32_mul )
23
- case " FMAP32" =>
24
- chisel3.Driver .execute(
25
- testArgs, () => new Eval_PositFMAP32 )
26
- case " FMAP64_add" =>
27
- chisel3.Driver .execute(
28
- testArgs, () => new Eval_PositFMAP64_add )
29
- case " FMAP64_mul" =>
30
- chisel3.Driver .execute(
31
- testArgs, () => new Eval_PositFMAP64_mul )
32
- case " FMAP64" =>
33
- chisel3.Driver .execute(
34
- testArgs, () => new Eval_PositFMAP64 )
35
- case " DivSqrtP16_div" =>
36
- chisel3.Driver .execute(
37
- testArgs, () => new Eval_PositDivSqrtP16_div )
38
- case " DivSqrtP32_div" =>
39
- chisel3.Driver .execute(
40
- testArgs, () => new Eval_PositDivSqrtP32_div )
41
- case " DivSqrtP64_div" =>
42
- chisel3.Driver .execute(
43
- testArgs, () => new Eval_PositDivSqrtP64_div )
44
- case " DivSqrtP16_sqrt" =>
45
- chisel3.Driver .execute(
46
- testArgs, () => new Eval_PositDivSqrtP16_sqrt )
47
- case " DivSqrtP32_sqrt" =>
48
- chisel3.Driver .execute(
49
- testArgs, () => new Eval_PositDivSqrtP32_sqrt )
50
- case " DivSqrtP64_sqrt" =>
51
- chisel3.Driver .execute(
52
- testArgs, () => new Eval_PositDivSqrtP64_sqrt )
53
- case " CompareP16_lt" =>
54
- chisel3.Driver .execute(
55
- testArgs, () => new Eval_PositCompareP16_lt )
56
- case " CompareP32_lt" =>
57
- chisel3.Driver .execute(
58
- testArgs, () => new Eval_PositCompareP32_lt )
59
- case " CompareP64_lt" =>
60
- chisel3.Driver .execute(
61
- testArgs, () => new Eval_PositCompareP64_lt )
62
- case " CompareP16_eq" =>
63
- chisel3.Driver .execute(
64
- testArgs, () => new Eval_PositCompareP16_eq )
65
- case " CompareP32_eq" =>
66
- chisel3.Driver .execute(
67
- testArgs, () => new Eval_PositCompareP32_eq )
68
- case " CompareP64_eq" =>
69
- chisel3.Driver .execute(
70
- testArgs, () => new Eval_PositCompareP64_eq )
71
- case " CompareP16_gt" =>
72
- chisel3.Driver .execute(
73
- testArgs, () => new Eval_PositCompareP16_gt )
74
- case " CompareP32_gt" =>
75
- chisel3.Driver .execute(
76
- testArgs, () => new Eval_PositCompareP32_gt )
77
- case " CompareP64_gt" =>
78
- chisel3.Driver .execute(
79
- testArgs, () => new Eval_PositCompareP64_gt )
80
- case " P16toI32" =>
81
- chisel3.Driver .execute(
82
- testArgs, () => new Eval_PositP16toI32 )
83
- case " P16toI64" =>
84
- chisel3.Driver .execute(
85
- testArgs, () => new Eval_PositP16toI64 )
86
- case " P32toI32" =>
87
- chisel3.Driver .execute(
88
- testArgs, () => new Eval_PositP32toI32 )
89
- case " P32toI64" =>
90
- chisel3.Driver .execute(
91
- testArgs, () => new Eval_PositP32toI64 )
92
- case " P64toI32" =>
93
- chisel3.Driver .execute(
94
- testArgs, () => new Eval_PositP64toI32 )
95
- case " P64toI64" =>
96
- chisel3.Driver .execute(
97
- testArgs, () => new Eval_PositP64toI64 )
98
- case " P16toUI32" =>
99
- chisel3.Driver .execute(
100
- testArgs, () => new Eval_PositP16toUI32 )
101
- case " P16toUI64" =>
102
- chisel3.Driver .execute(
103
- testArgs, () => new Eval_PositP16toUI64 )
104
- case " P32toUI32" =>
105
- chisel3.Driver .execute(
106
- testArgs, () => new Eval_PositP32toUI32 )
107
- case " P32toUI64" =>
108
- chisel3.Driver .execute(
109
- testArgs, () => new Eval_PositP32toUI64 )
110
- case " P64toUI32" =>
111
- chisel3.Driver .execute(
112
- testArgs, () => new Eval_PositP64toUI32 )
113
- case " P64toUI64" =>
114
- chisel3.Driver .execute(
115
- testArgs, () => new Eval_PositP64toUI64 )
116
- case " I32toP16" =>
117
- chisel3.Driver .execute(
118
- testArgs, () => new Eval_PositI32toP16 )
119
- case " I64toP16" =>
120
- chisel3.Driver .execute(
121
- testArgs, () => new Eval_PositI64toP16 )
122
- case " I32toP32" =>
123
- chisel3.Driver .execute(
124
- testArgs, () => new Eval_PositI32toP32 )
125
- case " I64toP32" =>
126
- chisel3.Driver .execute(
127
- testArgs, () => new Eval_PositI64toP32 )
128
- case " I32toP64" =>
129
- chisel3.Driver .execute(
130
- testArgs, () => new Eval_PositI32toP64 )
131
- case " I64toP64" =>
132
- chisel3.Driver .execute(
133
- testArgs, () => new Eval_PositI64toP64 )
134
- case " UI32toP16" =>
135
- chisel3.Driver .execute(
136
- testArgs, () => new Eval_PositUI32toP16 )
137
- case " UI64toP16" =>
138
- chisel3.Driver .execute(
139
- testArgs, () => new Eval_PositUI64toP16 )
140
- case " UI32toP32" =>
141
- chisel3.Driver .execute(
142
- testArgs, () => new Eval_PositUI32toP32 )
143
- case " UI64toP32" =>
144
- chisel3.Driver .execute(
145
- testArgs, () => new Eval_PositUI64toP32 )
146
- case " UI32toP64" =>
147
- chisel3.Driver .execute(
148
- testArgs, () => new Eval_PositUI32toP64 )
149
- case " UI64toP64" =>
150
- chisel3.Driver .execute(
151
- testArgs, () => new Eval_PositUI64toP64 )
152
- case " P16toP32" =>
153
- chisel3.Driver .execute(
154
- testArgs, () => new Eval_PositP16toP32 )
155
- case " P16toP64" =>
156
- chisel3.Driver .execute(
157
- testArgs, () => new Eval_PositP16toP64 )
158
- case " P32toP16" =>
159
- chisel3.Driver .execute(
160
- testArgs, () => new Eval_PositP32toP16 )
161
- case " P32toP64" =>
162
- chisel3.Driver .execute(
163
- testArgs, () => new Eval_PositP32toP64 )
164
- case " P64toP16" =>
165
- chisel3.Driver .execute(
166
- testArgs, () => new Eval_PositP64toP16 )
167
- case " P64toP32" =>
168
- chisel3.Driver .execute(
169
- testArgs, () => new Eval_PositP64toP32 )
7
+
8
+ val testDirAbsolutePath = " ./td"
9
+
10
+ val module = args(0 ) match {
11
+ case " FMAP16_add" => new Eval_PositFMAP16_add
12
+ case " FMAP16_mul" => new Eval_PositFMAP16_mul
13
+ case " FMAP16" => new Eval_PositFMAP16
14
+ case " FMAP32_add" => new Eval_PositFMAP32_add
15
+ case " FMAP32_mul" => new Eval_PositFMAP32_mul
16
+ case " FMAP32" => new Eval_PositFMAP32
17
+ case " FMAP64_add" => new Eval_PositFMAP64_add
18
+ case " FMAP64_mul" => new Eval_PositFMAP64_mul
19
+ case " FMAP64" => new Eval_PositFMAP64
20
+ case " DivSqrtP16_div" => new Eval_PositDivSqrtP16_div
21
+ case " DivSqrtP32_div" => new Eval_PositDivSqrtP32_div
22
+ case " DivSqrtP64_div" => new Eval_PositDivSqrtP64_div
23
+ case " DivSqrtP16_sqrt" => new Eval_PositDivSqrtP16_sqrt
24
+ case " DivSqrtP32_sqrt" => new Eval_PositDivSqrtP32_sqrt
25
+ case " DivSqrtP64_sqrt" => new Eval_PositDivSqrtP64_sqrt
26
+ case " CompareP16_lt" => new Eval_PositCompareP16_lt
27
+ case " CompareP32_lt" => new Eval_PositCompareP32_lt
28
+ case " CompareP64_lt" => new Eval_PositCompareP64_lt
29
+ case " CompareP16_eq" => new Eval_PositCompareP16_eq
30
+ case " CompareP32_eq" => new Eval_PositCompareP32_eq
31
+ case " CompareP64_eq" => new Eval_PositCompareP64_eq
32
+ case " CompareP16_gt" => new Eval_PositCompareP16_gt
33
+ case " CompareP32_gt" => new Eval_PositCompareP32_gt
34
+ case " CompareP64_gt" => new Eval_PositCompareP64_gt
35
+ case " P16toI32" => new Eval_PositP16toI32
36
+ case " P16toI64" => new Eval_PositP16toI64
37
+ case " P32toI32" => new Eval_PositP32toI32
38
+ case " P32toI64" => new Eval_PositP32toI64
39
+ case " P64toI32" => new Eval_PositP64toI32
40
+ case " P64toI64" => new Eval_PositP64toI64
41
+ case " P16toUI32" => new Eval_PositP16toUI32
42
+ case " P16toUI64" => new Eval_PositP16toUI64
43
+ case " P32toUI32" => new Eval_PositP32toUI32
44
+ case " P32toUI64" => new Eval_PositP32toUI64
45
+ case " P64toUI32" => new Eval_PositP64toUI32
46
+ case " P64toUI64" => new Eval_PositP64toUI64
47
+ case " I32toP16" => new Eval_PositI32toP16
48
+ case " I64toP16" => new Eval_PositI64toP16
49
+ case " I32toP32" => new Eval_PositI32toP32
50
+ case " I64toP32" => new Eval_PositI64toP32
51
+ case " I32toP64" => new Eval_PositI32toP64
52
+ case " I64toP64" => new Eval_PositI64toP64
53
+ case " UI32toP16" => new Eval_PositUI32toP16
54
+ case " UI64toP16" => new Eval_PositUI64toP16
55
+ case " UI32toP32" => new Eval_PositUI32toP32
56
+ case " UI64toP32" => new Eval_PositUI64toP32
57
+ case " UI32toP64" => new Eval_PositUI32toP64
58
+ case " UI64toP64" => new Eval_PositUI64toP64
59
+ case " P16toP32" => new Eval_PositP16toP32
60
+ case " P16toP64" => new Eval_PositP16toP64
61
+ case " P32toP16" => new Eval_PositP32toP16
62
+ case " P32toP64" => new Eval_PositP32toP64
63
+ case " P64toP16" => new Eval_PositP64toP16
64
+ case " P64toP32" => new Eval_PositP64toP32
170
65
}
66
+
67
+ (new chisel3.stage.ChiselStage ).emitVerilog(
68
+ module,
69
+ Array .concat(args, Array (" -td=./generated" ))
70
+ )
71
+
72
+ // (new chisel3.stage.ChiselStage).execute(
73
+ // Array("-X", "verilog"),
74
+ // Seq(
75
+ // TargetDirAnnotation(testDirAbsolutePath),
76
+ // ChiselGeneratorAnnotation(module)
77
+ // )
78
+ // )
171
79
}
172
80
}
0 commit comments