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 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.getYosysWorkerOptions)(project, target.id);
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();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
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
- commands: z.ZodOptional<z.ZodObject<{
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
- commands: z.ZodOptional<z.ZodObject<{
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
- commands: z.ZodOptional<z.ZodObject<{
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
- commands: z.ZodOptional<z.ZodObject<{
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
- commands: schemaValueList.optional(),
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
- commands: schemaValueListTarget.optional(),
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":"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"}
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":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './configuration.js';
2
2
  export * from './devices.js';
3
+ export * from './flasher.js';
3
4
  export * from './groups.js';
4
5
  export * from './iverilog.js';
5
6
  export * from './nextpnr.js';
@@ -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, ProjectInputFile } from './project.js';
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;
@@ -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.parseIVerilogArguments = exports.generateIVerilogWorkerOptions = exports.getIVerilogOptions = exports.getIVerilogDefaultOptions = void 0;
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 getIVerilogDefaultOptions = (configuration) => (0, target_js_1.getDefaultOptions)(configuration, 'iverilog', DEFAULT_OPTIONS);
15
- exports.getIVerilogDefaultOptions = getIVerilogDefaultOptions;
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 generateIVerilogWorkerOptions = (configuration, projectInputFiles, targetId) => {
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
- const files = projectInputFiles.filter((inputFile) => inputFile.type === 'design' && util_js_1.FILE_EXTENSIONS_VERILOG.includes(path_1.default.extname(inputFile.path).substring(1)));
22
- const designFiles = files.map((file) => file.path);
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 = projectInputFiles.filter((file) => file.type === 'testbench');
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 inputFiles = designFiles.concat([testbenchFile]);
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 outputFiles = [compiledFile, `${path_1.default.parse(testbenchFile).name}.vcd`];
34
- const compileArgs = [];
35
- compileArgs.push('-o', compiledFile);
36
- compileArgs.push(...designFiles);
37
- compileArgs.push(testbenchFile);
38
- const steps = [
39
- { tool: 'iverilog', arguments: compileArgs },
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
- exports.generateIVerilogWorkerOptions = generateIVerilogWorkerOptions;
51
- const parseIVerilogArguments = (args) => args.flatMap((arg) => (0, string_args_parser_1.parseArgs)(arg));
52
- exports.parseIVerilogArguments = parseIVerilogArguments;
53
- const getIVerilogWorkerOptions = (project, targetId) => {
54
- const generated = (0, exports.generateIVerilogWorkerOptions)(project.getConfiguration(), project.getInputFiles(), targetId);
55
- const inputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'iverilog', 'inputFiles', generated.inputFiles).filter((f) => !!f);
56
- const outputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'iverilog', 'outputFiles', generated.outputFiles).filter((f) => !!f);
57
- const target = generated.target;
58
- const options = generated.options;
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":"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"}
1
+ {"version":3,"file":"iverilog.js","sourceRoot":"","sources":["../../src/project/iverilog.ts"],"names":[],"mappings":"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"}