edacation 0.6.0 → 0.6.2
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 +85 -20
- package/dist/project/configuration.js +20 -13
- package/dist/project/configuration.js.map +1 -1
- package/dist/project/flasher.d.ts +1 -3
- package/dist/project/flasher.js +37 -41
- package/dist/project/flasher.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 +40 -48
- package/dist/project/nextpnr.js.map +1 -1
- package/dist/project/project.d.ts +34 -4
- package/dist/project/project.js +7 -0
- 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/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
|
+
reportJson: z.ZodOptional<z.ZodBoolean>;
|
|
65
84
|
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
66
85
|
}, z.core.$strip>;
|
|
67
86
|
declare const schemaNextpnr: z.ZodObject<{
|
|
@@ -73,6 +92,7 @@ declare const schemaNextpnr: z.ZodObject<{
|
|
|
73
92
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
74
93
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
75
94
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
reportJson: z.ZodOptional<z.ZodBoolean>;
|
|
76
96
|
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
77
97
|
}, z.core.$strip>>;
|
|
78
98
|
}, z.core.$strip>;
|
|
@@ -86,51 +106,61 @@ declare const schemaNextpnrTarget: z.ZodObject<{
|
|
|
86
106
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
87
107
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
88
108
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
109
|
+
reportJson: z.ZodOptional<z.ZodBoolean>;
|
|
89
110
|
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
90
111
|
}, z.core.$strip>>;
|
|
91
112
|
}, z.core.$strip>;
|
|
92
|
-
declare const
|
|
93
|
-
|
|
113
|
+
declare const schemaFlasherOptions: z.ZodObject<{
|
|
114
|
+
board: z.ZodOptional<z.ZodString>;
|
|
94
115
|
}, z.core.$strip>;
|
|
95
|
-
declare const
|
|
96
|
-
|
|
116
|
+
declare const schemaFlasher: z.ZodObject<{
|
|
117
|
+
packerArguments: z.ZodOptional<z.ZodObject<{
|
|
118
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
119
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
120
|
+
}, z.core.$strip>>;
|
|
121
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
97
122
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
98
123
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
99
124
|
}, z.core.$strip>>;
|
|
100
125
|
options: z.ZodOptional<z.ZodObject<{
|
|
101
|
-
|
|
126
|
+
board: z.ZodOptional<z.ZodString>;
|
|
102
127
|
}, z.core.$strip>>;
|
|
103
128
|
}, z.core.$strip>;
|
|
104
|
-
declare const
|
|
105
|
-
|
|
129
|
+
declare const schemaFlasherTarget: z.ZodObject<{
|
|
130
|
+
packerArguments: z.ZodOptional<z.ZodObject<{
|
|
131
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
132
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
133
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
134
|
+
}, z.core.$strip>>;
|
|
135
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
106
136
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
107
137
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
108
138
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
109
139
|
}, z.core.$strip>>;
|
|
110
140
|
options: z.ZodOptional<z.ZodObject<{
|
|
111
|
-
|
|
141
|
+
board: z.ZodOptional<z.ZodString>;
|
|
112
142
|
}, z.core.$strip>>;
|
|
113
143
|
}, z.core.$strip>;
|
|
114
|
-
declare const
|
|
115
|
-
|
|
144
|
+
declare const schemaIVerilogOptions: z.ZodObject<{
|
|
145
|
+
testbenchFile: z.ZodOptional<z.ZodString>;
|
|
116
146
|
}, z.core.$strip>;
|
|
117
|
-
declare const
|
|
147
|
+
declare const schemaIVerilog: z.ZodObject<{
|
|
118
148
|
arguments: z.ZodOptional<z.ZodObject<{
|
|
119
149
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
120
150
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
121
151
|
}, z.core.$strip>>;
|
|
122
152
|
options: z.ZodOptional<z.ZodObject<{
|
|
123
|
-
|
|
153
|
+
testbenchFile: z.ZodOptional<z.ZodString>;
|
|
124
154
|
}, z.core.$strip>>;
|
|
125
155
|
}, z.core.$strip>;
|
|
126
|
-
declare const
|
|
156
|
+
declare const schemaIVerilogTarget: z.ZodObject<{
|
|
127
157
|
arguments: z.ZodOptional<z.ZodObject<{
|
|
128
158
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
129
159
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
130
160
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
131
161
|
}, z.core.$strip>>;
|
|
132
162
|
options: z.ZodOptional<z.ZodObject<{
|
|
133
|
-
|
|
163
|
+
testbenchFile: z.ZodOptional<z.ZodString>;
|
|
134
164
|
}, z.core.$strip>>;
|
|
135
165
|
}, z.core.$strip>;
|
|
136
166
|
export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
@@ -144,7 +174,15 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
144
174
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
145
175
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
146
176
|
}, z.core.$strip>>;
|
|
147
|
-
|
|
177
|
+
synthPrepareCommands: z.ZodOptional<z.ZodObject<{
|
|
178
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
179
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
180
|
+
}, z.core.$strip>>;
|
|
181
|
+
synthCommands: z.ZodOptional<z.ZodObject<{
|
|
182
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
183
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
184
|
+
}, z.core.$strip>>;
|
|
185
|
+
rtlCommands: z.ZodOptional<z.ZodObject<{
|
|
148
186
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
149
187
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
150
188
|
}, z.core.$strip>>;
|
|
@@ -170,6 +208,7 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
170
208
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
171
209
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
172
210
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
211
|
+
reportJson: z.ZodOptional<z.ZodBoolean>;
|
|
173
212
|
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
174
213
|
}, z.core.$strip>>;
|
|
175
214
|
}, z.core.$strip>>;
|
|
@@ -199,7 +238,11 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
199
238
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
200
239
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
201
240
|
}, z.core.$strip>>;
|
|
202
|
-
|
|
241
|
+
packerArguments: 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
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
203
246
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
204
247
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
205
248
|
}, z.core.$strip>>;
|
|
@@ -227,7 +270,17 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
227
270
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
228
271
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
229
272
|
}, z.core.$strip>>;
|
|
230
|
-
|
|
273
|
+
synthPrepareCommands: z.ZodOptional<z.ZodObject<{
|
|
274
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
275
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
276
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
277
|
+
}, z.core.$strip>>;
|
|
278
|
+
synthCommands: z.ZodOptional<z.ZodObject<{
|
|
279
|
+
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
280
|
+
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
281
|
+
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
282
|
+
}, z.core.$strip>>;
|
|
283
|
+
rtlCommands: z.ZodOptional<z.ZodObject<{
|
|
231
284
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
232
285
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
233
286
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -257,6 +310,7 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
257
310
|
placedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
258
311
|
routedSvg: z.ZodOptional<z.ZodBoolean>;
|
|
259
312
|
routedJson: z.ZodOptional<z.ZodBoolean>;
|
|
313
|
+
reportJson: z.ZodOptional<z.ZodBoolean>;
|
|
260
314
|
pinConfigFile: z.ZodOptional<z.ZodString>;
|
|
261
315
|
}, z.core.$strip>>;
|
|
262
316
|
}, z.core.$strip>>;
|
|
@@ -291,7 +345,12 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
|
|
|
291
345
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
292
346
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
293
347
|
}, z.core.$strip>>;
|
|
294
|
-
|
|
348
|
+
packerArguments: 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
|
+
flasherArguments: z.ZodOptional<z.ZodObject<{
|
|
295
354
|
useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
296
355
|
values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
297
356
|
useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -329,9 +388,15 @@ export type TargetOptionTypes = {
|
|
|
329
388
|
iverilog: IVerilogOptions;
|
|
330
389
|
flasher: FlasherOptions;
|
|
331
390
|
};
|
|
391
|
+
export interface GeneratedFile {
|
|
392
|
+
name: string;
|
|
393
|
+
content: Uint8Array;
|
|
394
|
+
}
|
|
332
395
|
export interface WorkerStep {
|
|
396
|
+
id: string;
|
|
333
397
|
tool: string;
|
|
334
398
|
arguments: string[];
|
|
399
|
+
generatedInputFiles?: GeneratedFile[];
|
|
335
400
|
}
|
|
336
401
|
export interface WorkerOptions<Step extends WorkerStep, Options> {
|
|
337
402
|
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
52
|
routedJson: zod_1.z.boolean().optional(),
|
|
53
|
+
reportJson: zod_1.z.boolean().optional(),
|
|
49
54
|
pinConfigFile: zod_1.z.string().optional()
|
|
50
55
|
});
|
|
51
56
|
const schemaNextpnr = zod_1.z.object({
|
|
@@ -56,6 +61,19 @@ const schemaNextpnrTarget = zod_1.z.object({
|
|
|
56
61
|
arguments: schemaValueListTarget.optional(),
|
|
57
62
|
options: schemaNextpnrOptions.optional()
|
|
58
63
|
});
|
|
64
|
+
const schemaFlasherOptions = zod_1.z.object({
|
|
65
|
+
board: zod_1.z.string().optional()
|
|
66
|
+
});
|
|
67
|
+
const schemaFlasher = zod_1.z.object({
|
|
68
|
+
packerArguments: schemaValueList.optional(),
|
|
69
|
+
flasherArguments: schemaValueList.optional(),
|
|
70
|
+
options: schemaFlasherOptions.optional()
|
|
71
|
+
});
|
|
72
|
+
const schemaFlasherTarget = zod_1.z.object({
|
|
73
|
+
packerArguments: schemaValueListTarget.optional(),
|
|
74
|
+
flasherArguments: schemaValueListTarget.optional(),
|
|
75
|
+
options: schemaFlasherOptions.optional()
|
|
76
|
+
});
|
|
59
77
|
const schemaIVerilogOptions = zod_1.z.object({
|
|
60
78
|
testbenchFile: zod_1.z.string().optional()
|
|
61
79
|
});
|
|
@@ -67,17 +85,6 @@ const schemaIVerilogTarget = zod_1.z.object({
|
|
|
67
85
|
arguments: schemaValueListTarget.optional(),
|
|
68
86
|
options: schemaIVerilogOptions.optional()
|
|
69
87
|
});
|
|
70
|
-
const schemaFlasherOptions = zod_1.z.object({
|
|
71
|
-
board: zod_1.z.string().optional()
|
|
72
|
-
});
|
|
73
|
-
const schemaFlasher = zod_1.z.object({
|
|
74
|
-
arguments: schemaValueList.optional(),
|
|
75
|
-
options: schemaFlasherOptions.optional()
|
|
76
|
-
});
|
|
77
|
-
const schemaFlasherTarget = zod_1.z.object({
|
|
78
|
-
arguments: schemaValueListTarget.optional(),
|
|
79
|
-
options: schemaFlasherOptions.optional()
|
|
80
|
-
});
|
|
81
88
|
const schemaCombinedYosys = schemaWorker.merge(schemaYosys);
|
|
82
89
|
const schemaCombinedYosysTarget = schemaWorkerTarget.merge(schemaYosysTarget);
|
|
83
90
|
const schemaCombinedNextpnr = schemaWorker.merge(schemaNextpnr);
|
|
@@ -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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"}
|
|
@@ -2,8 +2,6 @@ import type { FlasherOptions, ProjectConfiguration, WorkerOptions, WorkerStep }
|
|
|
2
2
|
import type { Project } from './project.js';
|
|
3
3
|
export type FlasherStep = WorkerStep;
|
|
4
4
|
export type FlasherWorkerOptions = WorkerOptions<FlasherStep, FlasherOptions>;
|
|
5
|
-
export declare const getFlasherDefaultOptions: (configuration: ProjectConfiguration) => FlasherOptions;
|
|
6
|
-
export declare const getFlasherOptions: (configuration: ProjectConfiguration, targetId: string) => FlasherOptions;
|
|
7
|
-
export declare const generateFlasherWorkerOptions: (configuration: ProjectConfiguration, targetId: string) => FlasherWorkerOptions;
|
|
8
5
|
export declare const parseFlasherArguments: (args: string[]) => string[];
|
|
6
|
+
export declare const getFlasherOptions: (configuration: ProjectConfiguration, targetId: string) => FlasherOptions;
|
|
9
7
|
export declare const getFlasherWorkerOptions: (project: Project, targetId: string) => FlasherWorkerOptions;
|
package/dist/project/flasher.js
CHANGED
|
@@ -1,80 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFlasherWorkerOptions = exports.
|
|
3
|
+
exports.getFlasherWorkerOptions = exports.getFlasherOptions = exports.parseFlasherArguments = void 0;
|
|
4
4
|
const string_args_parser_1 = require("string-args-parser");
|
|
5
5
|
const target_js_1 = require("./target.js");
|
|
6
6
|
const devices_js_1 = require("./devices.js");
|
|
7
7
|
const DEFAULT_OPTIONS = {
|
|
8
8
|
board: undefined,
|
|
9
9
|
};
|
|
10
|
-
const
|
|
11
|
-
exports.
|
|
10
|
+
const parseFlasherArguments = (args) => args.flatMap((arg) => (0, string_args_parser_1.parseArgs)(arg));
|
|
11
|
+
exports.parseFlasherArguments = parseFlasherArguments;
|
|
12
12
|
const getFlasherOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'flasher', DEFAULT_OPTIONS);
|
|
13
13
|
exports.getFlasherOptions = getFlasherOptions;
|
|
14
|
-
const
|
|
14
|
+
const getFlasherWorkerOptions = (project, targetId) => {
|
|
15
|
+
const configuration = project.getConfiguration();
|
|
15
16
|
const target = (0, target_js_1.getTarget)(configuration, targetId);
|
|
16
17
|
const options = (0, exports.getFlasherOptions)(configuration, targetId);
|
|
17
18
|
const vendor = devices_js_1.VENDORS[target.vendor];
|
|
18
19
|
const family = vendor.families[target.family];
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
const
|
|
20
|
+
const generatedInputFiles = [];
|
|
21
|
+
const generatedOutputFiles = [];
|
|
22
|
+
let packerTool;
|
|
23
|
+
const generatedPackerArgs = [];
|
|
24
|
+
const generatedFlasherArgs = [];
|
|
23
25
|
if (options.board) {
|
|
24
|
-
|
|
26
|
+
generatedFlasherArgs.push('-b', options.board);
|
|
25
27
|
}
|
|
26
28
|
switch (family.architecture) {
|
|
27
29
|
case 'ecp5': {
|
|
28
30
|
const bitstreamFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.config`);
|
|
29
|
-
|
|
31
|
+
generatedInputFiles.push(bitstreamFile);
|
|
30
32
|
const packedFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.bit`);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
generatedOutputFiles.push(packedFile);
|
|
34
|
+
packerTool = 'ecppack';
|
|
35
|
+
generatedPackerArgs.push(bitstreamFile, packedFile);
|
|
36
|
+
generatedFlasherArgs.push(packedFile);
|
|
34
37
|
break;
|
|
35
38
|
}
|
|
36
39
|
case 'ice40': {
|
|
37
40
|
const bitstreamFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.asc`);
|
|
38
|
-
|
|
41
|
+
generatedInputFiles.push(bitstreamFile);
|
|
39
42
|
const packedFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.bin`);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
generatedOutputFiles.push(packedFile);
|
|
44
|
+
packerTool = 'icepack';
|
|
45
|
+
generatedPackerArgs.push(bitstreamFile, packedFile);
|
|
46
|
+
generatedFlasherArgs.push(packedFile);
|
|
43
47
|
break;
|
|
44
48
|
}
|
|
45
49
|
default: {
|
|
46
50
|
throw new Error(`Packing not supported for architecture "${family.architecture}"`);
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
target,
|
|
54
|
-
options,
|
|
55
|
-
steps
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
exports.generateFlasherWorkerOptions = generateFlasherWorkerOptions;
|
|
59
|
-
const parseFlasherArguments = (args) => args.flatMap((arg) => (0, string_args_parser_1.parseArgs)(arg));
|
|
60
|
-
exports.parseFlasherArguments = parseFlasherArguments;
|
|
61
|
-
const getFlasherWorkerOptions = (project, targetId) => {
|
|
62
|
-
const generated = (0, exports.generateFlasherWorkerOptions)(project.getConfiguration(), targetId);
|
|
63
|
-
const inputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'flasher', 'inputFiles', generated.inputFiles).filter((f) => !!f);
|
|
64
|
-
const outputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'flasher', 'outputFiles', generated.outputFiles).filter((f) => !!f);
|
|
65
|
-
const target = generated.target;
|
|
66
|
-
const options = generated.options;
|
|
67
|
-
const steps = generated.steps.map((step) => {
|
|
68
|
-
const tool = step.tool;
|
|
69
|
-
const args = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'flasher', 'arguments', step.arguments, exports.parseFlasherArguments);
|
|
70
|
-
return { tool, arguments: args };
|
|
71
|
-
});
|
|
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);
|
|
72
57
|
return {
|
|
73
58
|
inputFiles,
|
|
74
59
|
outputFiles,
|
|
75
60
|
target,
|
|
76
61
|
options,
|
|
77
|
-
steps
|
|
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
|
+
]
|
|
78
74
|
};
|
|
79
75
|
};
|
|
80
76
|
exports.getFlasherWorkerOptions = getFlasherWorkerOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flasher.js","sourceRoot":"","sources":["../../src/project/flasher.ts"],"names":[],"mappings":";;;AAAA,2DAA6C;AAI7C,
|
|
1
|
+
{"version":3,"file":"flasher.js","sourceRoot":"","sources":["../../src/project/flasher.ts"],"names":[],"mappings":"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"}
|
|
@@ -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', 'arguments', step.arguments, exports.parseIVerilogArguments);
|
|
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;
|