edacation 0.5.1 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/project/configuration.d.ts +134 -5
- package/dist/project/configuration.js +29 -6
- package/dist/project/configuration.js.map +1 -1
- package/dist/project/flasher.d.ts +7 -0
- package/dist/project/flasher.js +77 -0
- package/dist/project/flasher.js.map +1 -0
- package/dist/project/index.d.ts +1 -0
- package/dist/project/index.js +1 -0
- package/dist/project/index.js.map +1 -1
- package/dist/project/iverilog.d.ts +2 -4
- package/dist/project/iverilog.js +31 -39
- package/dist/project/iverilog.js.map +1 -1
- package/dist/project/nextpnr.d.ts +1 -3
- package/dist/project/nextpnr.js +43 -46
- package/dist/project/nextpnr.js.map +1 -1
- package/dist/project/project.d.ts +85 -5
- package/dist/project/project.js +172 -12
- package/dist/project/project.js.map +1 -1
- package/dist/project/yosys.d.ts +3 -7
- package/dist/project/yosys.js +97 -82
- package/dist/project/yosys.js.map +1 -1
- package/dist/util.d.ts +1 -0
- package/dist/util.js +5 -1
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -128,7 +128,7 @@ const util_js_2 = require("./util.js");
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
if (command === 'yosys') {
|
|
131
|
-
const workerOptions = (0, index_js_1.
|
|
131
|
+
const workerOptions = (0, index_js_1.getYosysSynthesisWorkerOptions)(project, target.id);
|
|
132
132
|
for (const step of workerOptions.steps) {
|
|
133
133
|
console.log([step.tool, ''].concat(step.commands).join('\n'));
|
|
134
134
|
console.log();
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AACA,0CAA+D;AAC/D,gDAAwB;AAExB,2CAAsC;AACtC,wDAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,15 @@ declare const schemaYosysOptions: z.ZodObject<{
|
|
|
38
38
|
topLevelModule: z.ZodOptional<z.ZodString>;
|
|
39
39
|
}, z.core.$strip>;
|
|
40
40
|
declare const schemaYosys: z.ZodObject<{
|
|
41
|
-
|
|
41
|
+
synthPrepareCommands: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
43
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
44
|
+
}, z.core.$strip>>;
|
|
45
|
+
synthCommands: z.ZodOptional<z.ZodObject<{
|
|
46
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
47
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
48
|
+
}, z.core.$strip>>;
|
|
49
|
+
rtlCommands: z.ZodOptional<z.ZodObject<{
|
|
42
50
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
43
51
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
44
52
|
}, z.core.$strip>>;
|
|
@@ -48,7 +56,17 @@ declare const schemaYosys: z.ZodObject<{
|
|
|
48
56
|
}, z.core.$strip>>;
|
|
49
57
|
}, z.core.$strip>;
|
|
50
58
|
declare const schemaYosysTarget: z.ZodObject<{
|
|
51
|
-
|
|
59
|
+
synthPrepareCommands: z.ZodOptional<z.ZodObject<{
|
|
60
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
61
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
62
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
63
|
+
}, z.core.$strip>>;
|
|
64
|
+
synthCommands: z.ZodOptional<z.ZodObject<{
|
|
65
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
66
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
67
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
68
|
+
}, z.core.$strip>>;
|
|
69
|
+
rtlCommands: z.ZodOptional<z.ZodObject<{
|
|
52
70
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
53
71
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
54
72
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -62,6 +80,7 @@ declare const schemaNextpnrOptions: z.ZodObject<{
|
|
|
62
80
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
63
81
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
64
82
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
65
84
|
}, z.core.$strip>;
|
|
66
85
|
declare const schemaNextpnr: z.ZodObject<{
|
|
67
86
|
arguments: z.ZodOptional<z.ZodObject<{
|
|
@@ -72,6 +91,7 @@ declare const schemaNextpnr: z.ZodObject<{
|
|
|
72
91
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
73
92
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
74
93
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
94
|
+
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
75
95
|
}, z.core.$strip>>;
|
|
76
96
|
}, z.core.$strip>;
|
|
77
97
|
declare const schemaNextpnrTarget: z.ZodObject<{
|
|
@@ -84,6 +104,38 @@ declare const schemaNextpnrTarget: z.ZodObject<{
|
|
|
84
104
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
85
105
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
86
106
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
107
|
+
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
108
|
+
}, z.core.$strip>>;
|
|
109
|
+
}, z.core.$strip>;
|
|
110
|
+
declare const schemaFlasherOptions: z.ZodObject<{
|
|
111
|
+
board: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, z.core.$strip>;
|
|
113
|
+
declare const schemaFlasher: z.ZodObject<{
|
|
114
|
+
packerArguments: z.ZodOptional<z.ZodObject<{
|
|
115
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
116
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
117
|
+
}, z.core.$strip>>;
|
|
118
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
120
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
121
|
+
}, z.core.$strip>>;
|
|
122
|
+
options: z.ZodOptional<z.ZodObject<{
|
|
123
|
+
board: z.ZodOptional<z.ZodString>;
|
|
124
|
+
}, z.core.$strip>>;
|
|
125
|
+
}, z.core.$strip>;
|
|
126
|
+
declare const schemaFlasherTarget: z.ZodObject<{
|
|
127
|
+
packerArguments: z.ZodOptional<z.ZodObject<{
|
|
128
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
129
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
130
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
131
|
+
}, z.core.$strip>>;
|
|
132
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
133
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
134
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
135
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
136
|
+
}, z.core.$strip>>;
|
|
137
|
+
options: z.ZodOptional<z.ZodObject<{
|
|
138
|
+
board: z.ZodOptional<z.ZodString>;
|
|
87
139
|
}, z.core.$strip>>;
|
|
88
140
|
}, z.core.$strip>;
|
|
89
141
|
declare const schemaIVerilogOptions: z.ZodObject<{
|
|
@@ -119,7 +171,15 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
119
171
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
120
172
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
121
173
|
}, z.core.$strip>>;
|
|
122
|
-
|
|
174
|
+
synthPrepareCommands: z.ZodOptional<z.ZodObject<{
|
|
175
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
176
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
177
|
+
}, z.core.$strip>>;
|
|
178
|
+
synthCommands: z.ZodOptional<z.ZodObject<{
|
|
179
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
180
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
181
|
+
}, z.core.$strip>>;
|
|
182
|
+
rtlCommands: z.ZodOptional<z.ZodObject<{
|
|
123
183
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
124
184
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
125
185
|
}, z.core.$strip>>;
|
|
@@ -145,6 +205,7 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
145
205
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
146
206
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
147
207
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
208
|
+
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
148
209
|
}, z.core.$strip>>;
|
|
149
210
|
}, z.core.$strip>>;
|
|
150
211
|
iverilog: z.ZodOptional<z.ZodObject<{
|
|
@@ -164,6 +225,27 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
164
225
|
testbenchFile: z.ZodOptional<z.ZodString>;
|
|
165
226
|
}, z.core.$strip>>;
|
|
166
227
|
}, z.core.$strip>>;
|
|
228
|
+
flasher: z.ZodOptional<z.ZodObject<{
|
|
229
|
+
inputFiles: z.ZodOptional<z.ZodObject<{
|
|
230
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
231
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
232
|
+
}, z.core.$strip>>;
|
|
233
|
+
outputFiles: z.ZodOptional<z.ZodObject<{
|
|
234
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
235
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
236
|
+
}, z.core.$strip>>;
|
|
237
|
+
packerArguments: z.ZodOptional<z.ZodObject<{
|
|
238
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
239
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
240
|
+
}, z.core.$strip>>;
|
|
241
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
242
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
243
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
244
|
+
}, z.core.$strip>>;
|
|
245
|
+
options: z.ZodOptional<z.ZodObject<{
|
|
246
|
+
board: z.ZodOptional<z.ZodString>;
|
|
247
|
+
}, z.core.$strip>>;
|
|
248
|
+
}, z.core.$strip>>;
|
|
167
249
|
}, z.core.$strip>>;
|
|
168
250
|
targets: z.ZodArray<z.ZodObject<{
|
|
169
251
|
id: z.ZodString;
|
|
@@ -184,7 +266,17 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
184
266
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
185
267
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
186
268
|
}, z.core.$strip>>;
|
|
187
|
-
|
|
269
|
+
synthPrepareCommands: z.ZodOptional<z.ZodObject<{
|
|
270
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
271
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
272
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
273
|
+
}, z.core.$strip>>;
|
|
274
|
+
synthCommands: z.ZodOptional<z.ZodObject<{
|
|
275
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
276
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
277
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
278
|
+
}, z.core.$strip>>;
|
|
279
|
+
rtlCommands: z.ZodOptional<z.ZodObject<{
|
|
188
280
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
189
281
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
190
282
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -214,6 +306,7 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
214
306
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
215
307
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
216
308
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
309
|
+
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
217
310
|
}, z.core.$strip>>;
|
|
218
311
|
}, z.core.$strip>>;
|
|
219
312
|
iverilog: z.ZodOptional<z.ZodObject<{
|
|
@@ -236,14 +329,40 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
236
329
|
testbenchFile: z.ZodOptional<z.ZodString>;
|
|
237
330
|
}, z.core.$strip>>;
|
|
238
331
|
}, z.core.$strip>>;
|
|
332
|
+
flasher: z.ZodOptional<z.ZodObject<{
|
|
333
|
+
inputFiles: z.ZodOptional<z.ZodObject<{
|
|
334
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
335
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
336
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
337
|
+
}, z.core.$strip>>;
|
|
338
|
+
outputFiles: z.ZodOptional<z.ZodObject<{
|
|
339
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
340
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
341
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
342
|
+
}, z.core.$strip>>;
|
|
343
|
+
packerArguments: z.ZodOptional<z.ZodObject<{
|
|
344
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
345
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
346
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
347
|
+
}, z.core.$strip>>;
|
|
348
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
349
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
350
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
351
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
352
|
+
}, z.core.$strip>>;
|
|
353
|
+
options: z.ZodOptional<z.ZodObject<{
|
|
354
|
+
board: z.ZodOptional<z.ZodString>;
|
|
355
|
+
}, z.core.$strip>>;
|
|
356
|
+
}, z.core.$strip>>;
|
|
239
357
|
}, z.core.$strip>>;
|
|
358
|
+
activeTargetId: z.ZodOptional<z.ZodString>;
|
|
240
359
|
}, z.core.$strip>;
|
|
241
360
|
export type ProjectConfiguration = z.infer<typeof schemaProjectConfiguration>;
|
|
242
361
|
export type TargetDefaultsConfiguration = NonNullable<ProjectConfiguration['defaults']>;
|
|
243
362
|
export type TargetConfiguration = ArrayElement<ProjectConfiguration['targets']>;
|
|
244
363
|
export type ValueListConfiguration = z.infer<typeof schemaValueList>;
|
|
245
364
|
export type ValueListConfigurationTarget = z.infer<typeof schemaValueListTarget>;
|
|
246
|
-
export type WorkerId = 'yosys' | 'nextpnr' | 'iverilog';
|
|
365
|
+
export type WorkerId = 'yosys' | 'nextpnr' | 'iverilog' | 'flasher';
|
|
247
366
|
export type WorkerConfiguration = z.infer<typeof schemaWorker>;
|
|
248
367
|
export type WorkerTargetConfiguration = z.infer<typeof schemaWorkerTarget>;
|
|
249
368
|
export type YosysOptions = z.infer<typeof schemaYosysOptions>;
|
|
@@ -255,14 +374,24 @@ export type NextpnrTargetConfiguration = z.infer<typeof schemaNextpnrTarget>;
|
|
|
255
374
|
export type IVerilogOptions = z.infer<typeof schemaIVerilogOptions>;
|
|
256
375
|
export type IVerilogConfiguration = z.infer<typeof schemaIVerilog>;
|
|
257
376
|
export type IVerilogTargetConfiguration = z.infer<typeof schemaIVerilogTarget>;
|
|
377
|
+
export type FlasherOptions = z.infer<typeof schemaFlasherOptions>;
|
|
378
|
+
export type FlasherConfiguration = z.infer<typeof schemaFlasher>;
|
|
379
|
+
export type FlasherTargetConfiguration = z.infer<typeof schemaFlasherTarget>;
|
|
258
380
|
export type TargetOptionTypes = {
|
|
259
381
|
yosys: YosysOptions;
|
|
260
382
|
nextpnr: NextpnrOptions;
|
|
261
383
|
iverilog: IVerilogOptions;
|
|
384
|
+
flasher: FlasherOptions;
|
|
262
385
|
};
|
|
386
|
+
export interface GeneratedFile {
|
|
387
|
+
name: string;
|
|
388
|
+
content: Uint8Array;
|
|
389
|
+
}
|
|
263
390
|
export interface WorkerStep {
|
|
391
|
+
id: string;
|
|
264
392
|
tool: string;
|
|
265
393
|
arguments: string[];
|
|
394
|
+
generatedInputFiles?: GeneratedFile[];
|
|
266
395
|
}
|
|
267
396
|
export interface WorkerOptions<Step extends WorkerStep, Options> {
|
|
268
397
|
inputFiles: string[];
|
|
@@ -35,17 +35,22 @@ const schemaYosysOptions = zod_1.z.object({
|
|
|
35
35
|
topLevelModule: zod_1.z.string().optional()
|
|
36
36
|
});
|
|
37
37
|
const schemaYosys = zod_1.z.object({
|
|
38
|
-
|
|
38
|
+
synthPrepareCommands: schemaValueList.optional(),
|
|
39
|
+
synthCommands: schemaValueList.optional(),
|
|
40
|
+
rtlCommands: schemaValueList.optional(),
|
|
39
41
|
options: schemaYosysOptions.optional()
|
|
40
42
|
});
|
|
41
43
|
const schemaYosysTarget = zod_1.z.object({
|
|
42
|
-
|
|
44
|
+
synthPrepareCommands: schemaValueListTarget.optional(),
|
|
45
|
+
synthCommands: schemaValueListTarget.optional(),
|
|
46
|
+
rtlCommands: schemaValueListTarget.optional(),
|
|
43
47
|
options: schemaYosysOptions.optional()
|
|
44
48
|
});
|
|
45
49
|
const schemaNextpnrOptions = zod_1.z.object({
|
|
46
50
|
placedSvg: zod_1.z.boolean().optional(),
|
|
47
51
|
routedSvg: zod_1.z.boolean().optional(),
|
|
48
|
-
routedJson: zod_1.z.boolean().optional()
|
|
52
|
+
routedJson: zod_1.z.boolean().optional(),
|
|
53
|
+
pinConfigFile: zod_1.z.string().optional()
|
|
49
54
|
});
|
|
50
55
|
const schemaNextpnr = zod_1.z.object({
|
|
51
56
|
arguments: schemaValueList.optional(),
|
|
@@ -55,6 +60,19 @@ const schemaNextpnrTarget = zod_1.z.object({
|
|
|
55
60
|
arguments: schemaValueListTarget.optional(),
|
|
56
61
|
options: schemaNextpnrOptions.optional()
|
|
57
62
|
});
|
|
63
|
+
const schemaFlasherOptions = zod_1.z.object({
|
|
64
|
+
board: zod_1.z.string().optional()
|
|
65
|
+
});
|
|
66
|
+
const schemaFlasher = zod_1.z.object({
|
|
67
|
+
packerArguments: schemaValueList.optional(),
|
|
68
|
+
flasherArguments: schemaValueList.optional(),
|
|
69
|
+
options: schemaFlasherOptions.optional()
|
|
70
|
+
});
|
|
71
|
+
const schemaFlasherTarget = zod_1.z.object({
|
|
72
|
+
packerArguments: schemaValueListTarget.optional(),
|
|
73
|
+
flasherArguments: schemaValueListTarget.optional(),
|
|
74
|
+
options: schemaFlasherOptions.optional()
|
|
75
|
+
});
|
|
58
76
|
const schemaIVerilogOptions = zod_1.z.object({
|
|
59
77
|
testbenchFile: zod_1.z.string().optional()
|
|
60
78
|
});
|
|
@@ -72,10 +90,13 @@ const schemaCombinedNextpnr = schemaWorker.merge(schemaNextpnr);
|
|
|
72
90
|
const schemaCombinedNextpnrTarget = schemaWorkerTarget.merge(schemaNextpnrTarget);
|
|
73
91
|
const schemaCombinedIVerilog = schemaWorker.merge(schemaIVerilog);
|
|
74
92
|
const schemaCombinedIVerilogTarget = schemaWorkerTarget.merge(schemaIVerilogTarget);
|
|
93
|
+
const schemaCombinedFlasher = schemaWorker.merge(schemaFlasher);
|
|
94
|
+
const schemaCombinedFlasherTarget = schemaWorkerTarget.merge(schemaFlasherTarget);
|
|
75
95
|
const schemaTargetDefaults = zod_1.z.object({
|
|
76
96
|
yosys: schemaCombinedYosys.optional(),
|
|
77
97
|
nextpnr: schemaCombinedNextpnr.optional(),
|
|
78
|
-
iverilog: schemaCombinedIVerilog.optional()
|
|
98
|
+
iverilog: schemaCombinedIVerilog.optional(),
|
|
99
|
+
flasher: schemaCombinedFlasher.optional()
|
|
79
100
|
});
|
|
80
101
|
const schemaTarget = zod_1.z.object({
|
|
81
102
|
id: zod_1.z.string(),
|
|
@@ -87,10 +108,12 @@ const schemaTarget = zod_1.z.object({
|
|
|
87
108
|
directory: zod_1.z.string().optional(),
|
|
88
109
|
yosys: schemaCombinedYosysTarget.optional(),
|
|
89
110
|
nextpnr: schemaCombinedNextpnrTarget.optional(),
|
|
90
|
-
iverilog: schemaCombinedIVerilogTarget.optional()
|
|
111
|
+
iverilog: schemaCombinedIVerilogTarget.optional(),
|
|
112
|
+
flasher: schemaCombinedFlasherTarget.optional()
|
|
91
113
|
});
|
|
92
114
|
exports.schemaProjectConfiguration = zod_1.z.object({
|
|
93
115
|
defaults: schemaTargetDefaults.optional(),
|
|
94
|
-
targets: zod_1.z.array(schemaTarget)
|
|
116
|
+
targets: zod_1.z.array(schemaTarget),
|
|
117
|
+
activeTargetId: zod_1.z.string().optional(),
|
|
95
118
|
});
|
|
96
119
|
//# sourceMappingURL=configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAIT,QAAA,cAAc,GAAwB;IAC/C,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,4BAA4B;IAElC,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;CACtB,CAAA;AAEY,QAAA,qBAAqB,GAAyB;IACvD,OAAO,EAAE;QACL,sBAAc;KACjB;CACJ,CAAC;AAEF,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClD,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACrD,CAAC,CAAC;AACH,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FlasherOptions, ProjectConfiguration, WorkerOptions, WorkerStep } from './configuration.js';
|
|
2
|
+
import type { Project } from './project.js';
|
|
3
|
+
export type FlasherStep = WorkerStep;
|
|
4
|
+
export type FlasherWorkerOptions = WorkerOptions<FlasherStep, FlasherOptions>;
|
|
5
|
+
export declare const parseFlasherArguments: (args: string[]) => string[];
|
|
6
|
+
export declare const getFlasherOptions: (configuration: ProjectConfiguration, targetId: string) => FlasherOptions;
|
|
7
|
+
export declare const getFlasherWorkerOptions: (project: Project, targetId: string) => FlasherWorkerOptions;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFlasherWorkerOptions = exports.getFlasherOptions = exports.parseFlasherArguments = void 0;
|
|
4
|
+
const string_args_parser_1 = require("string-args-parser");
|
|
5
|
+
const target_js_1 = require("./target.js");
|
|
6
|
+
const devices_js_1 = require("./devices.js");
|
|
7
|
+
const DEFAULT_OPTIONS = {
|
|
8
|
+
board: undefined,
|
|
9
|
+
};
|
|
10
|
+
const parseFlasherArguments = (args) => args.flatMap((arg) => (0, string_args_parser_1.parseArgs)(arg));
|
|
11
|
+
exports.parseFlasherArguments = parseFlasherArguments;
|
|
12
|
+
const getFlasherOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'flasher', DEFAULT_OPTIONS);
|
|
13
|
+
exports.getFlasherOptions = getFlasherOptions;
|
|
14
|
+
const getFlasherWorkerOptions = (project, targetId) => {
|
|
15
|
+
const configuration = project.getConfiguration();
|
|
16
|
+
const target = (0, target_js_1.getTarget)(configuration, targetId);
|
|
17
|
+
const options = (0, exports.getFlasherOptions)(configuration, targetId);
|
|
18
|
+
const vendor = devices_js_1.VENDORS[target.vendor];
|
|
19
|
+
const family = vendor.families[target.family];
|
|
20
|
+
const generatedInputFiles = [];
|
|
21
|
+
const generatedOutputFiles = [];
|
|
22
|
+
let packerTool;
|
|
23
|
+
const generatedPackerArgs = [];
|
|
24
|
+
const generatedFlasherArgs = [];
|
|
25
|
+
if (options.board) {
|
|
26
|
+
generatedFlasherArgs.push('-b', options.board);
|
|
27
|
+
}
|
|
28
|
+
switch (family.architecture) {
|
|
29
|
+
case 'ecp5': {
|
|
30
|
+
const bitstreamFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.config`);
|
|
31
|
+
generatedInputFiles.push(bitstreamFile);
|
|
32
|
+
const packedFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.bit`);
|
|
33
|
+
generatedOutputFiles.push(packedFile);
|
|
34
|
+
packerTool = 'ecppack';
|
|
35
|
+
generatedPackerArgs.push(bitstreamFile, packedFile);
|
|
36
|
+
generatedFlasherArgs.push(packedFile);
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'ice40': {
|
|
40
|
+
const bitstreamFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.asc`);
|
|
41
|
+
generatedInputFiles.push(bitstreamFile);
|
|
42
|
+
const packedFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.bin`);
|
|
43
|
+
generatedOutputFiles.push(packedFile);
|
|
44
|
+
packerTool = 'icepack';
|
|
45
|
+
generatedPackerArgs.push(bitstreamFile, packedFile);
|
|
46
|
+
generatedFlasherArgs.push(packedFile);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
default: {
|
|
50
|
+
throw new Error(`Packing not supported for architecture "${family.architecture}"`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const inputFiles = (0, target_js_1.getCombined)(configuration, targetId, 'flasher', 'inputFiles', generatedInputFiles).filter((f) => !!f);
|
|
54
|
+
const outputFiles = (0, target_js_1.getCombined)(configuration, targetId, 'flasher', 'outputFiles', generatedOutputFiles).filter((f) => !!f);
|
|
55
|
+
const packerArgs = (0, target_js_1.getCombined)(configuration, targetId, 'flasher', 'packerArguments', generatedPackerArgs, exports.parseFlasherArguments);
|
|
56
|
+
const flasherArgs = (0, target_js_1.getCombined)(configuration, targetId, 'flasher', 'flasherArguments', generatedFlasherArgs, exports.parseFlasherArguments);
|
|
57
|
+
return {
|
|
58
|
+
inputFiles,
|
|
59
|
+
outputFiles,
|
|
60
|
+
target,
|
|
61
|
+
options,
|
|
62
|
+
steps: [
|
|
63
|
+
{
|
|
64
|
+
id: 'pack',
|
|
65
|
+
tool: packerTool,
|
|
66
|
+
arguments: packerArgs
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'flash',
|
|
70
|
+
tool: 'openFPGALoader',
|
|
71
|
+
arguments: flasherArgs
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
exports.getFlasherWorkerOptions = getFlasherWorkerOptions;
|
|
77
|
+
//# sourceMappingURL=flasher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flasher.js","sourceRoot":"","sources":["../../src/project/flasher.ts"],"names":[],"mappings":";;;AAAA,2DAA6C;AAI7C,2CAA8E;AAC9E,6CAAuC;AAOvC,MAAM,eAAe,GAAmB;IACpC,KAAK,EAAE,SAAS;CACnB,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,8BAAS,EAAC,GAAG,CAAC,CAAC,CAAC;AAAlF,QAAA,qBAAqB,yBAA6D;AAExF,MAAM,iBAAiB,GAAG,CAAC,aAAmC,EAAE,QAAgB,EAAkB,EAAE,CACvG,IAAA,sBAAU,EAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AADvD,QAAA,iBAAiB,qBACsC;AAE7D,MAAM,uBAAuB,GAAG,CACnC,OAAgB,EAChB,QAAgB,EACI,EAAE;IACtB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,oBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9C,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,IAAI,UAAkB,CAAC;IACvB,MAAM,mBAAmB,GAAa,EAAE,CAAC;IACzC,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAE1C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,aAAa,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,SAAS,CAAC,CAAC;YAC7E,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAExC,MAAM,UAAU,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,MAAM,CAAC,CAAC;YACvE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEtC,UAAU,GAAG,SAAS,CAAC;YACvB,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAEpD,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM;QACV,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,aAAa,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,MAAM,CAAC,CAAC;YAC1E,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAExC,MAAM,UAAU,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,MAAM,CAAC,CAAC;YACvE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEtC,UAAU,GAAG,SAAS,CAAC;YACvB,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAEpD,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM;QACV,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2CAA2C,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,uBAAW,EAC1B,aAAa,EACb,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,mBAAmB,CACtB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,WAAW,GAAG,IAAA,uBAAW,EAC3B,aAAa,EACb,QAAQ,EACR,SAAS,EACT,aAAa,EACb,oBAAoB,CACvB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,IAAA,uBAAW,EAC1B,aAAa,EACb,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,6BAAqB,CACxB,CAAA;IACD,MAAM,WAAW,GAAG,IAAA,uBAAW,EAC3B,aAAa,EACb,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,6BAAqB,CACxB,CAAA;IAED,OAAO;QACH,UAAU;QACV,WAAW;QACX,MAAM;QACN,OAAO;QACP,KAAK,EAAE;YACH;gBACI,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,UAAU;aACxB;YACD;gBACI,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,WAAW;aACzB;SACJ;KACJ,CAAC;AACN,CAAC,CAAC;AAtGW,QAAA,uBAAuB,2BAsGlC"}
|
package/dist/project/index.d.ts
CHANGED
package/dist/project/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./configuration.js"), exports);
|
|
18
18
|
__exportStar(require("./devices.js"), exports);
|
|
19
|
+
__exportStar(require("./flasher.js"), exports);
|
|
19
20
|
__exportStar(require("./groups.js"), exports);
|
|
20
21
|
__exportStar(require("./iverilog.js"), exports);
|
|
21
22
|
__exportStar(require("./nextpnr.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { IVerilogOptions, ProjectConfiguration, WorkerOptions, WorkerStep } from './configuration.js';
|
|
2
|
-
import type { Project
|
|
2
|
+
import type { Project } from './project.js';
|
|
3
3
|
export type IVerilogStep = WorkerStep;
|
|
4
4
|
export type IVerilogWorkerOptions = WorkerOptions<IVerilogStep, IVerilogOptions>;
|
|
5
|
-
export declare const getIVerilogDefaultOptions: (configuration: ProjectConfiguration) => IVerilogOptions;
|
|
6
|
-
export declare const getIVerilogOptions: (configuration: ProjectConfiguration, targetId: string) => IVerilogOptions;
|
|
7
|
-
export declare const generateIVerilogWorkerOptions: (configuration: ProjectConfiguration, projectInputFiles: ProjectInputFile[], targetId: string) => IVerilogWorkerOptions;
|
|
8
5
|
export declare const parseIVerilogArguments: (args: string[]) => string[];
|
|
6
|
+
export declare const getIVerilogOptions: (configuration: ProjectConfiguration, targetId: string) => IVerilogOptions;
|
|
9
7
|
export declare const getIVerilogWorkerOptions: (project: Project, targetId: string) => IVerilogWorkerOptions;
|
package/dist/project/iverilog.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getIVerilogWorkerOptions = exports.
|
|
6
|
+
exports.getIVerilogWorkerOptions = exports.getIVerilogOptions = exports.parseIVerilogArguments = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const string_args_parser_1 = require("string-args-parser");
|
|
9
9
|
const util_js_1 = require("../util.js");
|
|
@@ -11,62 +11,54 @@ const target_js_1 = require("./target.js");
|
|
|
11
11
|
const DEFAULT_OPTIONS = {
|
|
12
12
|
testbenchFile: undefined
|
|
13
13
|
};
|
|
14
|
-
const
|
|
15
|
-
exports.
|
|
14
|
+
const parseIVerilogArguments = (args) => args.flatMap((arg) => (0, string_args_parser_1.parseArgs)(arg));
|
|
15
|
+
exports.parseIVerilogArguments = parseIVerilogArguments;
|
|
16
16
|
const getIVerilogOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'iverilog', DEFAULT_OPTIONS);
|
|
17
17
|
exports.getIVerilogOptions = getIVerilogOptions;
|
|
18
|
-
const
|
|
18
|
+
const getIVerilogWorkerOptions = (project, targetId) => {
|
|
19
|
+
const configuration = project.getConfiguration();
|
|
19
20
|
const target = (0, target_js_1.getTarget)(configuration, targetId);
|
|
20
21
|
const options = (0, exports.getIVerilogOptions)(configuration, targetId);
|
|
21
|
-
|
|
22
|
-
const designFiles =
|
|
22
|
+
// Input files
|
|
23
|
+
const designFiles = project.getInputFiles().filter((inputFile) => inputFile.type === 'design' && util_js_1.FILE_EXTENSIONS_VERILOG.includes(path_1.default.extname(inputFile.path).substring(1))).map(file => file.path);
|
|
23
24
|
let testbenchFile = options.testbenchFile;
|
|
24
25
|
if (!testbenchFile) {
|
|
25
26
|
// Auto-select from testbench input files
|
|
26
|
-
const allTestbenches =
|
|
27
|
+
const allTestbenches = project.getInputFiles().filter((file) => file.type === 'testbench');
|
|
27
28
|
if (allTestbenches.length === 0)
|
|
28
29
|
throw new Error('Could not auto-select testbench file: no input files marked as such');
|
|
29
30
|
testbenchFile = allTestbenches[0].path;
|
|
30
31
|
}
|
|
31
|
-
const
|
|
32
|
+
const generatedInputFiles = designFiles.concat([testbenchFile]);
|
|
33
|
+
const inputFiles = (0, target_js_1.getCombined)(configuration, targetId, 'iverilog', 'inputFiles', generatedInputFiles).filter((f) => !!f);
|
|
34
|
+
// Output files
|
|
32
35
|
const compiledFile = (0, target_js_1.getTargetFile)(target, 'simulator.vvp');
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
{ tool: 'vvp', arguments: [compiledFile] }
|
|
36
|
+
const generatedOutputFiles = [compiledFile, `${path_1.default.parse(testbenchFile).name}.vcd`];
|
|
37
|
+
const outputFiles = (0, target_js_1.getCombined)(configuration, targetId, 'iverilog', 'outputFiles', generatedOutputFiles).filter((f) => !!f);
|
|
38
|
+
// Args
|
|
39
|
+
const generatedCompileArgs = [
|
|
40
|
+
'-o', compiledFile,
|
|
41
|
+
...designFiles,
|
|
42
|
+
testbenchFile,
|
|
41
43
|
];
|
|
44
|
+
const compileArgs = (0, target_js_1.getCombined)(configuration, targetId, 'iverilog', 'arguments', generatedCompileArgs, exports.parseIVerilogArguments);
|
|
42
45
|
return {
|
|
43
46
|
inputFiles,
|
|
44
47
|
outputFiles,
|
|
45
48
|
target,
|
|
46
49
|
options,
|
|
47
|
-
steps
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const steps = generated.steps.map((step) => {
|
|
60
|
-
const tool = step.tool;
|
|
61
|
-
const args = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'iverilog', 'commands', step.arguments);
|
|
62
|
-
return { tool, arguments: args };
|
|
63
|
-
});
|
|
64
|
-
return {
|
|
65
|
-
inputFiles,
|
|
66
|
-
outputFiles,
|
|
67
|
-
target,
|
|
68
|
-
options,
|
|
69
|
-
steps
|
|
50
|
+
steps: [
|
|
51
|
+
{
|
|
52
|
+
id: 'iverilog',
|
|
53
|
+
tool: 'iverilog',
|
|
54
|
+
arguments: compileArgs
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: 'vvp',
|
|
58
|
+
tool: 'vvp',
|
|
59
|
+
arguments: [compiledFile]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
70
62
|
};
|
|
71
63
|
};
|
|
72
64
|
exports.getIVerilogWorkerOptions = getIVerilogWorkerOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iverilog.js","sourceRoot":"","sources":["../../src/project/iverilog.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,2DAA6C;AAE7C,wCAAmD;AAInD,
|
|
1
|
+
{"version":3,"file":"iverilog.js","sourceRoot":"","sources":["../../src/project/iverilog.ts"],"names":[],"mappings":"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"}
|