edacation 0.3.12 → 0.4.0

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
@@ -129,21 +129,25 @@ const util_js_2 = require("./util.js");
129
129
  }
130
130
  if (command === 'yosys') {
131
131
  const workerOptions = (0, index_js_1.getYosysWorkerOptions)(project, target.id);
132
- console.log([workerOptions.tool, ''].concat(workerOptions.commands).join('\n'));
133
- console.log();
134
- if (shouldExecute) {
135
- const designFilePath = path_1.default.join(cwd, 'design.ys');
136
- await (0, promises_1.writeFile)(designFilePath, workerOptions.commands.concat(['']).join('\n'), { encoding: 'utf-8' });
137
- await (0, tool_js_1.executeTool)(workerOptions.tool, ['design.ys'], cwd);
138
- await (0, promises_1.unlink)(designFilePath);
132
+ for (const step of workerOptions.steps) {
133
+ console.log([step.tool, ''].concat(step.commands).join('\n'));
134
+ console.log();
135
+ if (shouldExecute) {
136
+ const designFilePath = path_1.default.join(cwd, 'design.ys');
137
+ await (0, promises_1.writeFile)(designFilePath, step.commands.concat(['']).join('\n'), { encoding: 'utf-8' });
138
+ await (0, tool_js_1.executeTool)(step.tool, ['design.ys'], cwd);
139
+ await (0, promises_1.unlink)(designFilePath);
140
+ }
139
141
  }
140
142
  }
141
143
  else if (command === 'nextpnr') {
142
144
  const workerOptions = (0, index_js_1.getNextpnrWorkerOptions)(project, target.id);
143
- console.log([workerOptions.tool].concat((0, util_js_1.formatArguments)(workerOptions.arguments)).join('\n'));
144
- console.log();
145
- if (shouldExecute) {
146
- await (0, tool_js_1.executeTool)(workerOptions.tool, workerOptions.arguments, cwd);
145
+ for (const step of workerOptions.steps) {
146
+ console.log([step.tool].concat((0, util_js_1.formatArguments)(step.arguments)).join('\n'));
147
+ console.log();
148
+ if (shouldExecute) {
149
+ await (0, tool_js_1.executeTool)(step.tool, step.arguments, cwd);
150
+ }
147
151
  }
148
152
  }
149
153
  else {
@@ -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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"}
@@ -322,6 +322,89 @@ declare const schemaNextpnrTarget: z.ZodObject<{
322
322
  useDefault?: boolean | undefined;
323
323
  } | undefined;
324
324
  }>;
325
+ declare const schemaIVerilogOptions: z.ZodObject<{
326
+ testbenchFile: z.ZodOptional<z.ZodString>;
327
+ }, "strip", z.ZodTypeAny, {
328
+ testbenchFile?: string | undefined;
329
+ }, {
330
+ testbenchFile?: string | undefined;
331
+ }>;
332
+ declare const schemaIVerilog: z.ZodObject<{
333
+ arguments: z.ZodOptional<z.ZodObject<{
334
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
335
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
336
+ }, "strip", z.ZodTypeAny, {
337
+ useGenerated: boolean;
338
+ values: string[];
339
+ }, {
340
+ useGenerated?: boolean | undefined;
341
+ values?: string[] | undefined;
342
+ }>>;
343
+ options: z.ZodOptional<z.ZodObject<{
344
+ testbenchFile: z.ZodOptional<z.ZodString>;
345
+ }, "strip", z.ZodTypeAny, {
346
+ testbenchFile?: string | undefined;
347
+ }, {
348
+ testbenchFile?: string | undefined;
349
+ }>>;
350
+ }, "strip", z.ZodTypeAny, {
351
+ options?: {
352
+ testbenchFile?: string | undefined;
353
+ } | undefined;
354
+ arguments?: {
355
+ useGenerated: boolean;
356
+ values: string[];
357
+ } | undefined;
358
+ }, {
359
+ options?: {
360
+ testbenchFile?: string | undefined;
361
+ } | undefined;
362
+ arguments?: {
363
+ useGenerated?: boolean | undefined;
364
+ values?: string[] | undefined;
365
+ } | undefined;
366
+ }>;
367
+ declare const schemaIVerilogTarget: z.ZodObject<{
368
+ arguments: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
369
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
370
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
371
+ }, {
372
+ useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
373
+ }>, "strip", z.ZodTypeAny, {
374
+ useGenerated: boolean;
375
+ values: string[];
376
+ useDefault: boolean;
377
+ }, {
378
+ useGenerated?: boolean | undefined;
379
+ values?: string[] | undefined;
380
+ useDefault?: boolean | undefined;
381
+ }>>;
382
+ options: z.ZodOptional<z.ZodObject<{
383
+ testbenchFile: z.ZodOptional<z.ZodString>;
384
+ }, "strip", z.ZodTypeAny, {
385
+ testbenchFile?: string | undefined;
386
+ }, {
387
+ testbenchFile?: string | undefined;
388
+ }>>;
389
+ }, "strip", z.ZodTypeAny, {
390
+ options?: {
391
+ testbenchFile?: string | undefined;
392
+ } | undefined;
393
+ arguments?: {
394
+ useGenerated: boolean;
395
+ values: string[];
396
+ useDefault: boolean;
397
+ } | undefined;
398
+ }, {
399
+ options?: {
400
+ testbenchFile?: string | undefined;
401
+ } | undefined;
402
+ arguments?: {
403
+ useGenerated?: boolean | undefined;
404
+ values?: string[] | undefined;
405
+ useDefault?: boolean | undefined;
406
+ } | undefined;
407
+ }>;
325
408
  export declare const schemaProjectConfiguration: z.ZodObject<{
326
409
  defaults: z.ZodOptional<z.ZodObject<{
327
410
  yosys: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
@@ -483,6 +566,78 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
483
566
  values?: string[] | undefined;
484
567
  } | undefined;
485
568
  }>>;
569
+ iverilog: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
570
+ inputFiles: z.ZodOptional<z.ZodObject<{
571
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
572
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
573
+ }, "strip", z.ZodTypeAny, {
574
+ useGenerated: boolean;
575
+ values: string[];
576
+ }, {
577
+ useGenerated?: boolean | undefined;
578
+ values?: string[] | undefined;
579
+ }>>;
580
+ outputFiles: z.ZodOptional<z.ZodObject<{
581
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
582
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
583
+ }, "strip", z.ZodTypeAny, {
584
+ useGenerated: boolean;
585
+ values: string[];
586
+ }, {
587
+ useGenerated?: boolean | undefined;
588
+ values?: string[] | undefined;
589
+ }>>;
590
+ }, {
591
+ arguments: z.ZodOptional<z.ZodObject<{
592
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
593
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
594
+ }, "strip", z.ZodTypeAny, {
595
+ useGenerated: boolean;
596
+ values: string[];
597
+ }, {
598
+ useGenerated?: boolean | undefined;
599
+ values?: string[] | undefined;
600
+ }>>;
601
+ options: z.ZodOptional<z.ZodObject<{
602
+ testbenchFile: z.ZodOptional<z.ZodString>;
603
+ }, "strip", z.ZodTypeAny, {
604
+ testbenchFile?: string | undefined;
605
+ }, {
606
+ testbenchFile?: string | undefined;
607
+ }>>;
608
+ }>, "strip", z.ZodTypeAny, {
609
+ options?: {
610
+ testbenchFile?: string | undefined;
611
+ } | undefined;
612
+ inputFiles?: {
613
+ useGenerated: boolean;
614
+ values: string[];
615
+ } | undefined;
616
+ outputFiles?: {
617
+ useGenerated: boolean;
618
+ values: string[];
619
+ } | undefined;
620
+ arguments?: {
621
+ useGenerated: boolean;
622
+ values: string[];
623
+ } | undefined;
624
+ }, {
625
+ options?: {
626
+ testbenchFile?: string | undefined;
627
+ } | undefined;
628
+ inputFiles?: {
629
+ useGenerated?: boolean | undefined;
630
+ values?: string[] | undefined;
631
+ } | undefined;
632
+ outputFiles?: {
633
+ useGenerated?: boolean | undefined;
634
+ values?: string[] | undefined;
635
+ } | undefined;
636
+ arguments?: {
637
+ useGenerated?: boolean | undefined;
638
+ values?: string[] | undefined;
639
+ } | undefined;
640
+ }>>;
486
641
  }, "strip", z.ZodTypeAny, {
487
642
  yosys?: {
488
643
  options?: {
@@ -521,6 +676,23 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
521
676
  values: string[];
522
677
  } | undefined;
523
678
  } | undefined;
679
+ iverilog?: {
680
+ options?: {
681
+ testbenchFile?: string | undefined;
682
+ } | undefined;
683
+ inputFiles?: {
684
+ useGenerated: boolean;
685
+ values: string[];
686
+ } | undefined;
687
+ outputFiles?: {
688
+ useGenerated: boolean;
689
+ values: string[];
690
+ } | undefined;
691
+ arguments?: {
692
+ useGenerated: boolean;
693
+ values: string[];
694
+ } | undefined;
695
+ } | undefined;
524
696
  }, {
525
697
  yosys?: {
526
698
  options?: {
@@ -559,6 +731,23 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
559
731
  values?: string[] | undefined;
560
732
  } | undefined;
561
733
  } | undefined;
734
+ iverilog?: {
735
+ options?: {
736
+ testbenchFile?: string | undefined;
737
+ } | undefined;
738
+ inputFiles?: {
739
+ useGenerated?: boolean | undefined;
740
+ values?: string[] | undefined;
741
+ } | undefined;
742
+ outputFiles?: {
743
+ useGenerated?: boolean | undefined;
744
+ values?: string[] | undefined;
745
+ } | undefined;
746
+ arguments?: {
747
+ useGenerated?: boolean | undefined;
748
+ values?: string[] | undefined;
749
+ } | undefined;
750
+ } | undefined;
562
751
  }>>;
563
752
  targets: z.ZodArray<z.ZodObject<{
564
753
  id: z.ZodString;
@@ -763,6 +952,96 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
763
952
  useDefault?: boolean | undefined;
764
953
  } | undefined;
765
954
  }>>;
955
+ iverilog: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
956
+ inputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
957
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
958
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
959
+ }, {
960
+ useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
961
+ }>, "strip", z.ZodTypeAny, {
962
+ useGenerated: boolean;
963
+ values: string[];
964
+ useDefault: boolean;
965
+ }, {
966
+ useGenerated?: boolean | undefined;
967
+ values?: string[] | undefined;
968
+ useDefault?: boolean | undefined;
969
+ }>>;
970
+ outputFiles: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
971
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
972
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
973
+ }, {
974
+ useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
975
+ }>, "strip", z.ZodTypeAny, {
976
+ useGenerated: boolean;
977
+ values: string[];
978
+ useDefault: boolean;
979
+ }, {
980
+ useGenerated?: boolean | undefined;
981
+ values?: string[] | undefined;
982
+ useDefault?: boolean | undefined;
983
+ }>>;
984
+ }, {
985
+ arguments: z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
986
+ useGenerated: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
987
+ values: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
988
+ }, {
989
+ useDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
990
+ }>, "strip", z.ZodTypeAny, {
991
+ useGenerated: boolean;
992
+ values: string[];
993
+ useDefault: boolean;
994
+ }, {
995
+ useGenerated?: boolean | undefined;
996
+ values?: string[] | undefined;
997
+ useDefault?: boolean | undefined;
998
+ }>>;
999
+ options: z.ZodOptional<z.ZodObject<{
1000
+ testbenchFile: z.ZodOptional<z.ZodString>;
1001
+ }, "strip", z.ZodTypeAny, {
1002
+ testbenchFile?: string | undefined;
1003
+ }, {
1004
+ testbenchFile?: string | undefined;
1005
+ }>>;
1006
+ }>, "strip", z.ZodTypeAny, {
1007
+ options?: {
1008
+ testbenchFile?: string | undefined;
1009
+ } | undefined;
1010
+ inputFiles?: {
1011
+ useGenerated: boolean;
1012
+ values: string[];
1013
+ useDefault: boolean;
1014
+ } | undefined;
1015
+ outputFiles?: {
1016
+ useGenerated: boolean;
1017
+ values: string[];
1018
+ useDefault: boolean;
1019
+ } | undefined;
1020
+ arguments?: {
1021
+ useGenerated: boolean;
1022
+ values: string[];
1023
+ useDefault: boolean;
1024
+ } | undefined;
1025
+ }, {
1026
+ options?: {
1027
+ testbenchFile?: string | undefined;
1028
+ } | undefined;
1029
+ inputFiles?: {
1030
+ useGenerated?: boolean | undefined;
1031
+ values?: string[] | undefined;
1032
+ useDefault?: boolean | undefined;
1033
+ } | undefined;
1034
+ outputFiles?: {
1035
+ useGenerated?: boolean | undefined;
1036
+ values?: string[] | undefined;
1037
+ useDefault?: boolean | undefined;
1038
+ } | undefined;
1039
+ arguments?: {
1040
+ useGenerated?: boolean | undefined;
1041
+ values?: string[] | undefined;
1042
+ useDefault?: boolean | undefined;
1043
+ } | undefined;
1044
+ }>>;
766
1045
  }, "strip", z.ZodTypeAny, {
767
1046
  id: string;
768
1047
  name: string;
@@ -813,6 +1092,26 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
813
1092
  useDefault: boolean;
814
1093
  } | undefined;
815
1094
  } | undefined;
1095
+ iverilog?: {
1096
+ options?: {
1097
+ testbenchFile?: string | undefined;
1098
+ } | undefined;
1099
+ inputFiles?: {
1100
+ useGenerated: boolean;
1101
+ values: string[];
1102
+ useDefault: boolean;
1103
+ } | undefined;
1104
+ outputFiles?: {
1105
+ useGenerated: boolean;
1106
+ values: string[];
1107
+ useDefault: boolean;
1108
+ } | undefined;
1109
+ arguments?: {
1110
+ useGenerated: boolean;
1111
+ values: string[];
1112
+ useDefault: boolean;
1113
+ } | undefined;
1114
+ } | undefined;
816
1115
  directory?: string | undefined;
817
1116
  }, {
818
1117
  id: string;
@@ -864,6 +1163,26 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
864
1163
  useDefault?: boolean | undefined;
865
1164
  } | undefined;
866
1165
  } | undefined;
1166
+ iverilog?: {
1167
+ options?: {
1168
+ testbenchFile?: string | undefined;
1169
+ } | undefined;
1170
+ inputFiles?: {
1171
+ useGenerated?: boolean | undefined;
1172
+ values?: string[] | undefined;
1173
+ useDefault?: boolean | undefined;
1174
+ } | undefined;
1175
+ outputFiles?: {
1176
+ useGenerated?: boolean | undefined;
1177
+ values?: string[] | undefined;
1178
+ useDefault?: boolean | undefined;
1179
+ } | undefined;
1180
+ arguments?: {
1181
+ useGenerated?: boolean | undefined;
1182
+ values?: string[] | undefined;
1183
+ useDefault?: boolean | undefined;
1184
+ } | undefined;
1185
+ } | undefined;
867
1186
  directory?: string | undefined;
868
1187
  }>, "many">;
869
1188
  }, "strip", z.ZodTypeAny, {
@@ -917,6 +1236,26 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
917
1236
  useDefault: boolean;
918
1237
  } | undefined;
919
1238
  } | undefined;
1239
+ iverilog?: {
1240
+ options?: {
1241
+ testbenchFile?: string | undefined;
1242
+ } | undefined;
1243
+ inputFiles?: {
1244
+ useGenerated: boolean;
1245
+ values: string[];
1246
+ useDefault: boolean;
1247
+ } | undefined;
1248
+ outputFiles?: {
1249
+ useGenerated: boolean;
1250
+ values: string[];
1251
+ useDefault: boolean;
1252
+ } | undefined;
1253
+ arguments?: {
1254
+ useGenerated: boolean;
1255
+ values: string[];
1256
+ useDefault: boolean;
1257
+ } | undefined;
1258
+ } | undefined;
920
1259
  directory?: string | undefined;
921
1260
  }[];
922
1261
  defaults?: {
@@ -957,6 +1296,23 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
957
1296
  values: string[];
958
1297
  } | undefined;
959
1298
  } | undefined;
1299
+ iverilog?: {
1300
+ options?: {
1301
+ testbenchFile?: string | undefined;
1302
+ } | undefined;
1303
+ inputFiles?: {
1304
+ useGenerated: boolean;
1305
+ values: string[];
1306
+ } | undefined;
1307
+ outputFiles?: {
1308
+ useGenerated: boolean;
1309
+ values: string[];
1310
+ } | undefined;
1311
+ arguments?: {
1312
+ useGenerated: boolean;
1313
+ values: string[];
1314
+ } | undefined;
1315
+ } | undefined;
960
1316
  } | undefined;
961
1317
  }, {
962
1318
  targets: {
@@ -1009,6 +1365,26 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
1009
1365
  useDefault?: boolean | undefined;
1010
1366
  } | undefined;
1011
1367
  } | undefined;
1368
+ iverilog?: {
1369
+ options?: {
1370
+ testbenchFile?: string | undefined;
1371
+ } | undefined;
1372
+ inputFiles?: {
1373
+ useGenerated?: boolean | undefined;
1374
+ values?: string[] | undefined;
1375
+ useDefault?: boolean | undefined;
1376
+ } | undefined;
1377
+ outputFiles?: {
1378
+ useGenerated?: boolean | undefined;
1379
+ values?: string[] | undefined;
1380
+ useDefault?: boolean | undefined;
1381
+ } | undefined;
1382
+ arguments?: {
1383
+ useGenerated?: boolean | undefined;
1384
+ values?: string[] | undefined;
1385
+ useDefault?: boolean | undefined;
1386
+ } | undefined;
1387
+ } | undefined;
1012
1388
  directory?: string | undefined;
1013
1389
  }[];
1014
1390
  defaults?: {
@@ -1049,6 +1425,23 @@ export declare const schemaProjectConfiguration: z.ZodObject<{
1049
1425
  values?: string[] | undefined;
1050
1426
  } | undefined;
1051
1427
  } | undefined;
1428
+ iverilog?: {
1429
+ options?: {
1430
+ testbenchFile?: string | undefined;
1431
+ } | undefined;
1432
+ inputFiles?: {
1433
+ useGenerated?: boolean | undefined;
1434
+ values?: string[] | undefined;
1435
+ } | undefined;
1436
+ outputFiles?: {
1437
+ useGenerated?: boolean | undefined;
1438
+ values?: string[] | undefined;
1439
+ } | undefined;
1440
+ arguments?: {
1441
+ useGenerated?: boolean | undefined;
1442
+ values?: string[] | undefined;
1443
+ } | undefined;
1444
+ } | undefined;
1052
1445
  } | undefined;
1053
1446
  }>;
1054
1447
  export type ProjectConfiguration = z.infer<typeof schemaProjectConfiguration>;
@@ -1056,7 +1449,7 @@ export type TargetDefaultsConfiguration = NonNullable<ProjectConfiguration['defa
1056
1449
  export type TargetConfiguration = ArrayElement<ProjectConfiguration['targets']>;
1057
1450
  export type ValueListConfiguration = z.infer<typeof schemaValueList>;
1058
1451
  export type ValueListConfigurationTarget = z.infer<typeof schemaValueListTarget>;
1059
- export type WorkerId = 'yosys' | 'nextpnr';
1452
+ export type WorkerId = 'yosys' | 'nextpnr' | 'iverilog';
1060
1453
  export type WorkerConfiguration = z.infer<typeof schemaWorker>;
1061
1454
  export type WorkerTargetConfiguration = z.infer<typeof schemaWorkerTarget>;
1062
1455
  export type YosysOptions = z.infer<typeof schemaYosysOptions>;
@@ -1065,14 +1458,23 @@ export type YosysTargetConfiguration = z.infer<typeof schemaYosysTarget>;
1065
1458
  export type NextpnrOptions = z.infer<typeof schemaNextpnrOptions>;
1066
1459
  export type NextpnrConfiguration = z.infer<typeof schemaNextpnr>;
1067
1460
  export type NextpnrTargetConfiguration = z.infer<typeof schemaNextpnrTarget>;
1461
+ export type IVerilogOptions = z.infer<typeof schemaIVerilogOptions>;
1462
+ export type IVerilogConfiguration = z.infer<typeof schemaIVerilog>;
1463
+ export type IVerilogTargetConfiguration = z.infer<typeof schemaIVerilogTarget>;
1068
1464
  export type TargetOptionTypes = {
1069
1465
  yosys: YosysOptions;
1070
1466
  nextpnr: NextpnrOptions;
1467
+ iverilog: IVerilogOptions;
1071
1468
  };
1072
- export interface WorkerOptions {
1469
+ export interface WorkerStep {
1470
+ tool: string;
1471
+ arguments: string[];
1472
+ }
1473
+ export interface WorkerOptions<Step extends WorkerStep, Options> {
1073
1474
  inputFiles: string[];
1074
1475
  outputFiles: string[];
1075
- tool: string;
1076
1476
  target: TargetConfiguration;
1477
+ options: Options;
1478
+ steps: Step[];
1077
1479
  }
1078
1480
  export {};
@@ -54,13 +54,27 @@ const schemaNextpnrTarget = zod_1.z.object({
54
54
  arguments: schemaValueListTarget.optional(),
55
55
  options: schemaNextpnrOptions.optional()
56
56
  });
57
+ const schemaIVerilogOptions = zod_1.z.object({
58
+ testbenchFile: zod_1.z.string().optional()
59
+ });
60
+ const schemaIVerilog = zod_1.z.object({
61
+ arguments: schemaValueList.optional(),
62
+ options: schemaIVerilogOptions.optional()
63
+ });
64
+ const schemaIVerilogTarget = zod_1.z.object({
65
+ arguments: schemaValueListTarget.optional(),
66
+ options: schemaIVerilogOptions.optional()
67
+ });
57
68
  const schemaCombinedYosys = schemaWorker.merge(schemaYosys);
58
69
  const schemaCombinedYosysTarget = schemaWorkerTarget.merge(schemaYosysTarget);
59
70
  const schemaCombinedNextpnr = schemaWorker.merge(schemaNextpnr);
60
71
  const schemaCombinedNextpnrTarget = schemaWorkerTarget.merge(schemaNextpnrTarget);
72
+ const schemaCombinedIVerilog = schemaWorker.merge(schemaIVerilog);
73
+ const schemaCombinedIVerilogTarget = schemaWorkerTarget.merge(schemaIVerilogTarget);
61
74
  const schemaTargetDefaults = zod_1.z.object({
62
75
  yosys: schemaCombinedYosys.optional(),
63
- nextpnr: schemaCombinedNextpnr.optional()
76
+ nextpnr: schemaCombinedNextpnr.optional(),
77
+ iverilog: schemaCombinedIVerilog.optional()
64
78
  });
65
79
  const schemaTarget = zod_1.z.object({
66
80
  id: zod_1.z.string(),
@@ -71,7 +85,8 @@ const schemaTarget = zod_1.z.object({
71
85
  package: zod_1.z.string(),
72
86
  directory: zod_1.z.string().optional(),
73
87
  yosys: schemaCombinedYosysTarget.optional(),
74
- nextpnr: schemaCombinedNextpnrTarget.optional()
88
+ nextpnr: schemaCombinedNextpnrTarget.optional(),
89
+ iverilog: schemaCombinedIVerilogTarget.optional()
75
90
  });
76
91
  exports.schemaProjectConfiguration = zod_1.z.object({
77
92
  defaults: schemaTargetDefaults.optional(),
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  export * from './configuration.js';
2
2
  export * from './devices.js';
3
+ export * from './groups.js';
4
+ export * from './iverilog.js';
3
5
  export * from './nextpnr.js';
4
6
  export * from './project.js';
5
7
  export * from './yosys.js';
6
- export * from './groups.js';
@@ -16,8 +16,9 @@ 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("./groups.js"), exports);
20
+ __exportStar(require("./iverilog.js"), exports);
19
21
  __exportStar(require("./nextpnr.js"), exports);
20
22
  __exportStar(require("./project.js"), exports);
21
23
  __exportStar(require("./yosys.js"), exports);
22
- __exportStar(require("./groups.js"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B"}
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"}
@@ -0,0 +1,9 @@
1
+ import type { IVerilogOptions, ProjectConfiguration, WorkerOptions, WorkerStep } from './configuration.js';
2
+ import type { Project, ProjectInputFile } from './project.js';
3
+ export type IVerilogStep = WorkerStep;
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
+ export declare const parseIVerilogArguments: (args: string[]) => string[];
9
+ export declare const getIVerilogWorkerOptions: (project: Project, targetId: string) => IVerilogWorkerOptions;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getIVerilogWorkerOptions = exports.parseIVerilogArguments = exports.generateIVerilogWorkerOptions = exports.getIVerilogOptions = exports.getIVerilogDefaultOptions = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const string_args_parser_1 = require("string-args-parser");
9
+ const util_js_1 = require("../util.js");
10
+ const target_js_1 = require("./target.js");
11
+ const DEFAULT_OPTIONS = {
12
+ testbenchFile: undefined
13
+ };
14
+ const getIVerilogDefaultOptions = (configuration) => (0, target_js_1.getDefaultOptions)(configuration, 'iverilog', DEFAULT_OPTIONS);
15
+ exports.getIVerilogDefaultOptions = getIVerilogDefaultOptions;
16
+ const getIVerilogOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'iverilog', DEFAULT_OPTIONS);
17
+ exports.getIVerilogOptions = getIVerilogOptions;
18
+ const generateIVerilogWorkerOptions = (configuration, projectInputFiles, targetId) => {
19
+ const target = (0, target_js_1.getTarget)(configuration, targetId);
20
+ 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);
23
+ let testbenchFile = options.testbenchFile;
24
+ if (!testbenchFile) {
25
+ // Auto-select from testbench input files
26
+ const allTestbenches = projectInputFiles.filter((file) => file.type === 'testbench');
27
+ if (allTestbenches.length === 0)
28
+ throw new Error('Could not auto-select testbench file: no input files marked as such');
29
+ testbenchFile = allTestbenches[0].path;
30
+ }
31
+ const inputFiles = designFiles.concat([testbenchFile]);
32
+ 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] }
41
+ ];
42
+ return {
43
+ inputFiles,
44
+ outputFiles,
45
+ target,
46
+ 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
70
+ };
71
+ };
72
+ exports.getIVerilogWorkerOptions = getIVerilogWorkerOptions;
73
+ //# sourceMappingURL=iverilog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iverilog.js","sourceRoot":"","sources":["../../src/project/iverilog.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
- import type { NextpnrOptions, ProjectConfiguration, WorkerOptions } from './configuration.js';
1
+ import type { NextpnrOptions, ProjectConfiguration, WorkerOptions, WorkerStep } from './configuration.js';
2
2
  import type { Project } from './project.js';
3
- export interface NextpnrWorkerOptions extends WorkerOptions {
4
- arguments: string[];
5
- options: NextpnrOptions;
6
- }
3
+ export type NextpnrStep = WorkerStep;
4
+ export type NextpnrWorkerOptions = WorkerOptions<NextpnrStep, NextpnrOptions>;
7
5
  export declare const getNextpnrDefaultOptions: (configuration: ProjectConfiguration) => NextpnrOptions;
8
6
  export declare const getNextpnrOptions: (configuration: ProjectConfiguration, targetId: string) => NextpnrOptions;
9
7
  export declare const generateNextpnrWorkerOptions: (configuration: ProjectConfiguration, targetId: string) => NextpnrWorkerOptions;
@@ -84,10 +84,14 @@ const generateNextpnrWorkerOptions = (configuration, targetId) => {
84
84
  return {
85
85
  inputFiles,
86
86
  outputFiles,
87
- tool,
88
87
  target,
89
- arguments: args,
90
- options
88
+ options,
89
+ steps: [
90
+ {
91
+ tool,
92
+ arguments: args
93
+ }
94
+ ]
91
95
  };
92
96
  };
93
97
  exports.generateNextpnrWorkerOptions = generateNextpnrWorkerOptions;
@@ -97,17 +101,19 @@ const getNextpnrWorkerOptions = (project, targetId) => {
97
101
  const generated = (0, exports.generateNextpnrWorkerOptions)(project.getConfiguration(), targetId);
98
102
  const inputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'nextpnr', 'inputFiles', generated.inputFiles).filter((f) => !!f);
99
103
  const outputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'nextpnr', 'outputFiles', generated.outputFiles).filter((f) => !!f);
100
- const tool = generated.tool;
101
104
  const target = generated.target;
102
- const args = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'nextpnr', 'arguments', generated.arguments, exports.parseNextpnrArguments);
103
105
  const options = generated.options;
106
+ const steps = generated.steps.map((step) => {
107
+ const tool = step.tool;
108
+ const args = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'nextpnr', 'arguments', step.arguments, exports.parseNextpnrArguments);
109
+ return { tool, arguments: args };
110
+ });
104
111
  return {
105
112
  inputFiles,
106
113
  outputFiles,
107
- tool,
108
114
  target,
109
- arguments: args,
110
- options
115
+ options,
116
+ steps
111
117
  };
112
118
  };
113
119
  exports.getNextpnrWorkerOptions = getNextpnrWorkerOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"nextpnr.js","sourceRoot":"","sources":["../../src/project/nextpnr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nextpnr.js","sourceRoot":"","sources":["../../src/project/nextpnr.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,19 @@
1
1
  import { type ProjectConfiguration } from './configuration.js';
2
2
  type ProjectTarget = ProjectConfiguration['targets'][number];
3
+ export interface ProjectInputFileState {
4
+ path: string;
5
+ type: 'design' | 'testbench';
6
+ }
7
+ export declare class ProjectInputFile {
8
+ private _path;
9
+ private _type;
10
+ constructor(_path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
11
+ get path(): ProjectInputFileState['path'];
12
+ get type(): ProjectInputFileState['type'];
13
+ set type(type: ProjectInputFileState['type']);
14
+ static serialize(file: ProjectInputFile): ProjectInputFileState;
15
+ static deserialize(data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
16
+ }
3
17
  export interface ProjectOutputFileState {
4
18
  path: string;
5
19
  targetId: string | null;
@@ -10,19 +24,19 @@ export declare class ProjectOutputFile {
10
24
  private _path;
11
25
  private _targetId;
12
26
  private _stale;
13
- constructor(_project: Project, _path: string, _targetId?: string | null, _stale?: boolean);
14
- get path(): string;
15
- get targetId(): string | null;
16
- set targetId(id: string | null);
27
+ constructor(_project: Project, _path: ProjectOutputFileState['path'], _targetId?: ProjectOutputFileState['targetId'], _stale?: ProjectOutputFileState['stale']);
28
+ get path(): ProjectOutputFileState['path'];
29
+ get targetId(): ProjectOutputFileState['targetId'];
30
+ set targetId(id: ProjectOutputFileState['targetId']);
17
31
  get target(): ProjectTarget | null;
18
- get stale(): boolean;
19
- set stale(isStale: boolean);
32
+ get stale(): ProjectOutputFileState['stale'];
33
+ set stale(isStale: ProjectOutputFileState['stale']);
20
34
  static serialize(file: ProjectOutputFile): ProjectOutputFileState;
21
35
  static deserialize(project: Project, data: ProjectOutputFileState | string, ..._args: unknown[]): ProjectOutputFile;
22
36
  }
23
37
  export interface ProjectState {
24
38
  name: string;
25
- inputFiles: string[];
39
+ inputFiles: ProjectInputFileState[] | string[];
26
40
  outputFiles: ProjectOutputFileState[] | string[];
27
41
  configuration: ProjectConfiguration;
28
42
  }
@@ -31,11 +45,15 @@ export declare class Project {
31
45
  private inputFiles;
32
46
  private outputFiles;
33
47
  private configuration;
34
- constructor(name: string, inputFiles?: string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration);
48
+ constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration);
35
49
  getName(): string;
36
- getInputFiles(): string[];
50
+ getInputFiles(): ProjectInputFile[];
37
51
  hasInputFile(filePath: string): boolean;
38
- addInputFiles(filePaths: string[]): void;
52
+ getInputFile(filePath: string): ProjectInputFile | null;
53
+ addInputFiles(files: {
54
+ path: string;
55
+ type?: ProjectInputFileState['type'];
56
+ }[]): void;
39
57
  removeInputFiles(filePaths: string[]): void;
40
58
  getOutputFiles(): ProjectOutputFile[];
41
59
  hasOutputFile(filePath: string): boolean;
@@ -97,6 +115,26 @@ export declare class Project {
97
115
  useDefault: boolean;
98
116
  } | undefined;
99
117
  } | undefined;
118
+ iverilog?: {
119
+ options?: {
120
+ testbenchFile?: string | undefined;
121
+ } | undefined;
122
+ inputFiles?: {
123
+ useGenerated: boolean;
124
+ values: string[];
125
+ useDefault: boolean;
126
+ } | undefined;
127
+ outputFiles?: {
128
+ useGenerated: boolean;
129
+ values: string[];
130
+ useDefault: boolean;
131
+ } | undefined;
132
+ arguments?: {
133
+ useGenerated: boolean;
134
+ values: string[];
135
+ useDefault: boolean;
136
+ } | undefined;
137
+ } | undefined;
100
138
  directory?: string | undefined;
101
139
  }[];
102
140
  defaults?: {
@@ -137,6 +175,23 @@ export declare class Project {
137
175
  values: string[];
138
176
  } | undefined;
139
177
  } | undefined;
178
+ iverilog?: {
179
+ options?: {
180
+ testbenchFile?: string | undefined;
181
+ } | undefined;
182
+ inputFiles?: {
183
+ useGenerated: boolean;
184
+ values: string[];
185
+ } | undefined;
186
+ outputFiles?: {
187
+ useGenerated: boolean;
188
+ values: string[];
189
+ } | undefined;
190
+ arguments?: {
191
+ useGenerated: boolean;
192
+ values: string[];
193
+ } | undefined;
194
+ } | undefined;
140
195
  } | undefined;
141
196
  };
142
197
  updateConfiguration(configuration: Partial<ProjectConfiguration>): void;
@@ -1,8 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Project = exports.ProjectOutputFile = void 0;
3
+ exports.Project = exports.ProjectOutputFile = exports.ProjectInputFile = void 0;
4
4
  const util_js_1 = require("../util.js");
5
5
  const configuration_js_1 = require("./configuration.js");
6
+ class ProjectInputFile {
7
+ constructor(_path, _type) {
8
+ this._path = _path;
9
+ this._type = _type;
10
+ }
11
+ get path() {
12
+ return this._path;
13
+ }
14
+ get type() {
15
+ return this._type;
16
+ }
17
+ set type(type) {
18
+ this._type = type;
19
+ }
20
+ static serialize(file) {
21
+ return {
22
+ path: file.path,
23
+ type: file.type
24
+ };
25
+ }
26
+ static deserialize(data, ..._args) {
27
+ // Older versions of this module (<= 0.3.9) stored input files as an array of paths instead,
28
+ // so we need to migrate if data is a string (single output file).
29
+ if (typeof data === 'string') {
30
+ data = { path: data, type: 'design' };
31
+ }
32
+ return new ProjectInputFile(data.path, data.type);
33
+ }
34
+ }
35
+ exports.ProjectInputFile = ProjectInputFile;
6
36
  class ProjectOutputFile {
7
37
  constructor(_project, _path, _targetId = null, _stale = false) {
8
38
  this._project = _project;
@@ -41,7 +71,7 @@ class ProjectOutputFile {
41
71
  };
42
72
  }
43
73
  static deserialize(project, data, ..._args) {
44
- // Older versions of this module (<= 0.3.6) stored output files as an array of paths instead,
74
+ // Older versions of this module (<= 0.3.12) stored output files as an array of paths instead,
45
75
  // so we need to migrate if data is a string (single output file).
46
76
  if (typeof data === 'string') {
47
77
  data = { path: data, targetId: null, stale: false };
@@ -53,7 +83,7 @@ exports.ProjectOutputFile = ProjectOutputFile;
53
83
  class Project {
54
84
  constructor(name, inputFiles = [], outputFiles = [], configuration = configuration_js_1.DEFAULT_CONFIGURATION) {
55
85
  this.name = name;
56
- this.inputFiles = inputFiles;
86
+ this.inputFiles = inputFiles.map((file) => ProjectInputFile.deserialize(file));
57
87
  this.outputFiles = outputFiles.map((file) => ProjectOutputFile.deserialize(this, file));
58
88
  const config = configuration_js_1.schemaProjectConfiguration.safeParse(configuration);
59
89
  if (config.success) {
@@ -72,12 +102,16 @@ class Project {
72
102
  return this.inputFiles;
73
103
  }
74
104
  hasInputFile(filePath) {
75
- return this.inputFiles.some((file) => file === filePath);
105
+ return this.getInputFile(filePath) !== null;
76
106
  }
77
- addInputFiles(filePaths) {
78
- for (const filePath of filePaths) {
79
- if (!this.hasInputFile(filePath)) {
80
- this.inputFiles.push(filePath);
107
+ getInputFile(filePath) {
108
+ return this.inputFiles.find((file) => file.path === filePath) ?? null;
109
+ }
110
+ addInputFiles(files) {
111
+ for (const file of files) {
112
+ if (!this.hasInputFile(file.path)) {
113
+ const inputFile = new ProjectInputFile(file.path, file.type ?? 'design');
114
+ this.inputFiles.push(inputFile);
81
115
  }
82
116
  }
83
117
  this.inputFiles.sort((a, b) => {
@@ -85,7 +119,7 @@ class Project {
85
119
  });
86
120
  }
87
121
  removeInputFiles(filePaths) {
88
- this.inputFiles = this.inputFiles.filter((file) => !filePaths.includes(file));
122
+ this.inputFiles = this.inputFiles.filter((file) => !filePaths.includes(file.path));
89
123
  }
90
124
  getOutputFiles() {
91
125
  return this.outputFiles;
@@ -144,7 +178,7 @@ class Project {
144
178
  static serialize(project) {
145
179
  return {
146
180
  name: project.name,
147
- inputFiles: project.inputFiles,
181
+ inputFiles: project.inputFiles.map((file) => ProjectInputFile.serialize(file)),
148
182
  outputFiles: project.outputFiles.map((file) => ProjectOutputFile.serialize(file)),
149
183
  configuration: project.configuration
150
184
  };
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project/project.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import type { ProjectConfiguration, WorkerOptions, YosysOptions } from './configuration.js';
2
- import type { Project } from './project.js';
3
- export interface YosysWorkerOptions extends WorkerOptions {
1
+ import type { ProjectConfiguration, WorkerOptions, WorkerStep, YosysOptions } from './configuration.js';
2
+ import type { Project, ProjectInputFile } from './project.js';
3
+ export interface YosysStep extends WorkerStep {
4
4
  commands: string[];
5
- options: YosysOptions;
6
5
  }
6
+ export type YosysWorkerOptions = WorkerOptions<YosysStep, YosysOptions>;
7
7
  export declare const getYosysDefaultOptions: (configuration: ProjectConfiguration) => YosysOptions;
8
8
  export declare const getYosysOptions: (configuration: ProjectConfiguration, targetId: string) => YosysOptions;
9
- export declare const generateYosysWorkerOptions: (configuration: ProjectConfiguration, projectInputFiles: string[], targetId: string) => YosysWorkerOptions;
9
+ export declare const generateYosysWorkerOptions: (configuration: ProjectConfiguration, projectInputFiles: ProjectInputFile[], targetId: string) => YosysWorkerOptions;
10
10
  export declare const getYosysWorkerOptions: (project: Project, targetId: string) => YosysWorkerOptions;
11
11
  export declare const generateYosysRTLCommands: (workerOptions: YosysWorkerOptions) => string[];
12
12
  export declare const generateYosysSynthPrepareCommands: (workerOptions: YosysWorkerOptions) => string[];
@@ -55,7 +55,9 @@ const generateYosysWorkerOptions = (configuration, projectInputFiles, targetId)
55
55
  const options = (0, exports.getYosysOptions)(configuration, targetId);
56
56
  const vendor = devices_js_1.VENDORS[target.vendor];
57
57
  const family = vendor.families[target.family];
58
- const inputFiles = projectInputFiles.filter((inputFile) => util_js_1.FILE_EXTENSIONS_HDL.includes(path_1.default.extname(inputFile).substring(1)));
58
+ const inputFiles = projectInputFiles
59
+ .filter((inputFile) => inputFile.type === 'design' && util_js_1.FILE_EXTENSIONS_HDL.includes(path_1.default.extname(inputFile.path).substring(1)))
60
+ .map((file) => file.path);
59
61
  const outputFiles = [(0, target_js_1.getTargetFile)(target, `${family.architecture}.json`)];
60
62
  const tool = 'yosys';
61
63
  const commands = [...getFileIngestCommands(inputFiles, options), 'proc;'];
@@ -66,10 +68,15 @@ const generateYosysWorkerOptions = (configuration, projectInputFiles, targetId)
66
68
  return {
67
69
  inputFiles,
68
70
  outputFiles,
69
- tool,
70
71
  target,
71
- commands,
72
- options
72
+ options,
73
+ steps: [
74
+ {
75
+ tool,
76
+ arguments: [],
77
+ commands
78
+ }
79
+ ]
73
80
  };
74
81
  };
75
82
  exports.generateYosysWorkerOptions = generateYosysWorkerOptions;
@@ -77,17 +84,20 @@ const getYosysWorkerOptions = (project, targetId) => {
77
84
  const generated = (0, exports.generateYosysWorkerOptions)(project.getConfiguration(), project.getInputFiles(), targetId);
78
85
  const inputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'inputFiles', generated.inputFiles).filter((f) => !!f);
79
86
  const outputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'outputFiles', generated.outputFiles).filter((f) => !!f);
80
- const tool = generated.tool;
81
87
  const target = generated.target;
82
- const commands = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'commands', generated.commands);
83
88
  const options = generated.options;
89
+ const steps = generated.steps.map((step) => {
90
+ const tool = step.tool;
91
+ const args = step.arguments;
92
+ const commands = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'commands', step.commands);
93
+ return { tool, arguments: args, commands };
94
+ });
84
95
  return {
85
96
  inputFiles,
86
97
  outputFiles,
87
- tool,
88
98
  target,
89
- commands,
90
- options
99
+ options,
100
+ steps
91
101
  };
92
102
  };
93
103
  exports.getYosysWorkerOptions = getYosysWorkerOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"yosys.js","sourceRoot":"","sources":["../../src/project/yosys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yosys.js","sourceRoot":"","sources":["../../src/project/yosys.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "edacation",
3
3
  "description": "Library and CLI for interacting with Yosys and nextpnr.",
4
4
  "license": "MIT",
5
- "version": "0.3.12",
5
+ "version": "0.4.0",
6
6
  "contributors": [
7
7
  "Danielle Huisman <danielle@huisman.me> (https://github.com/DanielleHuisman)",
8
8
  "Mike Almeloo <git@mikealmel.ooo> (https://github.com/DismissedGuy)"