edacation 0.5.0 → 0.6.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/util.d.ts +2 -1
- package/dist/project/configuration.d.ts +184 -1321
- package/dist/project/configuration.js +31 -13
- package/dist/project/configuration.js.map +1 -1
- package/dist/project/flasher.d.ts +9 -0
- package/dist/project/flasher.js +81 -0
- package/dist/project/flasher.js.map +1 -0
- package/dist/project/index.d.ts +1 -0
- package/dist/project/index.js +1 -0
- package/dist/project/index.js.map +1 -1
- package/dist/project/iverilog.js +1 -1
- package/dist/project/iverilog.js.map +1 -1
- package/dist/project/nextpnr.js +14 -3
- package/dist/project/nextpnr.js.map +1 -1
- package/dist/project/project.d.ts +118 -20
- package/dist/project/project.js +441 -42
- package/dist/project/project.js.map +1 -1
- package/dist/project/target.d.ts +1 -0
- package/dist/project/target.js +3 -2
- package/dist/project/target.js.map +1 -1
- package/dist/util.d.ts +3 -2
- package/dist/util.js +5 -1
- package/dist/util.js.map +1 -1
- package/package.json +12 -10
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.schemaProjectConfiguration = exports.DEFAULT_CONFIGURATION = void 0;
|
|
3
|
+
exports.schemaProjectConfiguration = exports.DEFAULT_CONFIGURATION = exports.DEFAULT_TARGET = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
exports.DEFAULT_TARGET = {
|
|
6
|
+
id: 'default',
|
|
7
|
+
name: 'ECP5 - LFE5U-25 - caBGA381',
|
|
8
|
+
vendor: 'lattice',
|
|
9
|
+
family: 'ecp5',
|
|
10
|
+
device: 'lfe5u-25',
|
|
11
|
+
package: 'caBGA381'
|
|
12
|
+
};
|
|
5
13
|
exports.DEFAULT_CONFIGURATION = {
|
|
6
14
|
targets: [
|
|
7
|
-
|
|
8
|
-
id: 'default',
|
|
9
|
-
name: 'ECP5 - LFE5U-12 - caBGA381',
|
|
10
|
-
vendor: 'lattice',
|
|
11
|
-
family: 'ecp5',
|
|
12
|
-
device: 'lfe5u-25',
|
|
13
|
-
package: 'caBGA381'
|
|
14
|
-
}
|
|
15
|
+
exports.DEFAULT_TARGET
|
|
15
16
|
]
|
|
16
17
|
};
|
|
17
18
|
const schemaValueList = zod_1.z.object({
|
|
@@ -44,7 +45,8 @@ const schemaYosysTarget = zod_1.z.object({
|
|
|
44
45
|
const schemaNextpnrOptions = zod_1.z.object({
|
|
45
46
|
placedSvg: zod_1.z.boolean().optional(),
|
|
46
47
|
routedSvg: zod_1.z.boolean().optional(),
|
|
47
|
-
routedJson: zod_1.z.boolean().optional()
|
|
48
|
+
routedJson: zod_1.z.boolean().optional(),
|
|
49
|
+
pinConfigFile: zod_1.z.string().optional()
|
|
48
50
|
});
|
|
49
51
|
const schemaNextpnr = zod_1.z.object({
|
|
50
52
|
arguments: schemaValueList.optional(),
|
|
@@ -65,16 +67,30 @@ const schemaIVerilogTarget = zod_1.z.object({
|
|
|
65
67
|
arguments: schemaValueListTarget.optional(),
|
|
66
68
|
options: schemaIVerilogOptions.optional()
|
|
67
69
|
});
|
|
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
|
+
});
|
|
68
81
|
const schemaCombinedYosys = schemaWorker.merge(schemaYosys);
|
|
69
82
|
const schemaCombinedYosysTarget = schemaWorkerTarget.merge(schemaYosysTarget);
|
|
70
83
|
const schemaCombinedNextpnr = schemaWorker.merge(schemaNextpnr);
|
|
71
84
|
const schemaCombinedNextpnrTarget = schemaWorkerTarget.merge(schemaNextpnrTarget);
|
|
72
85
|
const schemaCombinedIVerilog = schemaWorker.merge(schemaIVerilog);
|
|
73
86
|
const schemaCombinedIVerilogTarget = schemaWorkerTarget.merge(schemaIVerilogTarget);
|
|
87
|
+
const schemaCombinedFlasher = schemaWorker.merge(schemaFlasher);
|
|
88
|
+
const schemaCombinedFlasherTarget = schemaWorkerTarget.merge(schemaFlasherTarget);
|
|
74
89
|
const schemaTargetDefaults = zod_1.z.object({
|
|
75
90
|
yosys: schemaCombinedYosys.optional(),
|
|
76
91
|
nextpnr: schemaCombinedNextpnr.optional(),
|
|
77
|
-
iverilog: schemaCombinedIVerilog.optional()
|
|
92
|
+
iverilog: schemaCombinedIVerilog.optional(),
|
|
93
|
+
flasher: schemaCombinedFlasher.optional()
|
|
78
94
|
});
|
|
79
95
|
const schemaTarget = zod_1.z.object({
|
|
80
96
|
id: zod_1.z.string(),
|
|
@@ -86,10 +102,12 @@ const schemaTarget = zod_1.z.object({
|
|
|
86
102
|
directory: zod_1.z.string().optional(),
|
|
87
103
|
yosys: schemaCombinedYosysTarget.optional(),
|
|
88
104
|
nextpnr: schemaCombinedNextpnrTarget.optional(),
|
|
89
|
-
iverilog: schemaCombinedIVerilogTarget.optional()
|
|
105
|
+
iverilog: schemaCombinedIVerilogTarget.optional(),
|
|
106
|
+
flasher: schemaCombinedFlasherTarget.optional()
|
|
90
107
|
});
|
|
91
108
|
exports.schemaProjectConfiguration = zod_1.z.object({
|
|
92
109
|
defaults: schemaTargetDefaults.optional(),
|
|
93
|
-
targets: zod_1.z.array(schemaTarget)
|
|
110
|
+
targets: zod_1.z.array(schemaTarget),
|
|
111
|
+
activeTargetId: zod_1.z.string().optional(),
|
|
94
112
|
});
|
|
95
113
|
//# sourceMappingURL=configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAIT,QAAA,
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/project/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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 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
|
+
export declare const parseFlasherArguments: (args: string[]) => string[];
|
|
9
|
+
export declare const getFlasherWorkerOptions: (project: Project, targetId: string) => FlasherWorkerOptions;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFlasherWorkerOptions = exports.parseFlasherArguments = exports.generateFlasherWorkerOptions = exports.getFlasherOptions = exports.getFlasherDefaultOptions = 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 getFlasherDefaultOptions = (configuration) => (0, target_js_1.getDefaultOptions)(configuration, 'flasher', DEFAULT_OPTIONS);
|
|
11
|
+
exports.getFlasherDefaultOptions = getFlasherDefaultOptions;
|
|
12
|
+
const getFlasherOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'flasher', DEFAULT_OPTIONS);
|
|
13
|
+
exports.getFlasherOptions = getFlasherOptions;
|
|
14
|
+
const generateFlasherWorkerOptions = (configuration, targetId) => {
|
|
15
|
+
const target = (0, target_js_1.getTarget)(configuration, targetId);
|
|
16
|
+
const options = (0, exports.getFlasherOptions)(configuration, targetId);
|
|
17
|
+
const vendor = devices_js_1.VENDORS[target.vendor];
|
|
18
|
+
const family = vendor.families[target.family];
|
|
19
|
+
const inputFiles = [];
|
|
20
|
+
const outputFiles = [];
|
|
21
|
+
const steps = [];
|
|
22
|
+
const flasherArgs = [];
|
|
23
|
+
if (options.board) {
|
|
24
|
+
flasherArgs.push('-b', options.board);
|
|
25
|
+
}
|
|
26
|
+
switch (family.architecture) {
|
|
27
|
+
case 'ecp5': {
|
|
28
|
+
const bitstreamFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.config`);
|
|
29
|
+
inputFiles.push(bitstreamFile);
|
|
30
|
+
const packedFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.bit`);
|
|
31
|
+
outputFiles.push(packedFile);
|
|
32
|
+
steps.push({ tool: 'ecppack', arguments: [bitstreamFile, packedFile] });
|
|
33
|
+
flasherArgs.push(packedFile);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case 'ice40': {
|
|
37
|
+
const bitstreamFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.asc`);
|
|
38
|
+
inputFiles.push(bitstreamFile);
|
|
39
|
+
const packedFile = (0, target_js_1.getTargetFile)(target, `${family.architecture}.bin`);
|
|
40
|
+
outputFiles.push(packedFile);
|
|
41
|
+
steps.push({ tool: 'icepack', arguments: [bitstreamFile, packedFile] });
|
|
42
|
+
flasherArgs.push(packedFile);
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
default: {
|
|
46
|
+
throw new Error(`Packing not supported for architecture "${family.architecture}"`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
steps.push({ tool: 'openFPGALoader', arguments: flasherArgs });
|
|
50
|
+
return {
|
|
51
|
+
inputFiles,
|
|
52
|
+
outputFiles,
|
|
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
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
inputFiles,
|
|
74
|
+
outputFiles,
|
|
75
|
+
target,
|
|
76
|
+
options,
|
|
77
|
+
steps
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
exports.getFlasherWorkerOptions = getFlasherWorkerOptions;
|
|
81
|
+
//# 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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"}
|
package/dist/project/index.d.ts
CHANGED
package/dist/project/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./configuration.js"), exports);
|
|
18
18
|
__exportStar(require("./devices.js"), exports);
|
|
19
|
+
__exportStar(require("./flasher.js"), exports);
|
|
19
20
|
__exportStar(require("./groups.js"), exports);
|
|
20
21
|
__exportStar(require("./iverilog.js"), exports);
|
|
21
22
|
__exportStar(require("./nextpnr.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B"}
|
package/dist/project/iverilog.js
CHANGED
|
@@ -58,7 +58,7 @@ const getIVerilogWorkerOptions = (project, targetId) => {
|
|
|
58
58
|
const options = generated.options;
|
|
59
59
|
const steps = generated.steps.map((step) => {
|
|
60
60
|
const tool = step.tool;
|
|
61
|
-
const args = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'iverilog', '
|
|
61
|
+
const args = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'iverilog', 'arguments', step.arguments, exports.parseIVerilogArguments);
|
|
62
62
|
return { tool, arguments: args };
|
|
63
63
|
});
|
|
64
64
|
return {
|
|
@@ -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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"}
|
package/dist/project/nextpnr.js
CHANGED
|
@@ -7,7 +7,8 @@ const target_js_1 = require("./target.js");
|
|
|
7
7
|
const DEFAULT_OPTIONS = {
|
|
8
8
|
placedSvg: false,
|
|
9
9
|
routedSvg: false,
|
|
10
|
-
routedJson: true
|
|
10
|
+
routedJson: true,
|
|
11
|
+
pinConfigFile: undefined
|
|
11
12
|
};
|
|
12
13
|
const getNextpnrDefaultOptions = (configuration) => (0, target_js_1.getDefaultOptions)(configuration, 'nextpnr', DEFAULT_OPTIONS);
|
|
13
14
|
exports.getNextpnrDefaultOptions = getNextpnrDefaultOptions;
|
|
@@ -27,6 +28,13 @@ const generateNextpnrWorkerOptions = (configuration, targetId) => {
|
|
|
27
28
|
case 'ecp5': {
|
|
28
29
|
args.push(`--${device.device}`);
|
|
29
30
|
args.push('--package', target.package.toUpperCase());
|
|
31
|
+
if (options.pinConfigFile) {
|
|
32
|
+
args.push('--lpf', options.pinConfigFile);
|
|
33
|
+
}
|
|
34
|
+
// Write bitstream file
|
|
35
|
+
const file = (0, target_js_1.getTargetFile)(target, `${family.architecture}.config`);
|
|
36
|
+
outputFiles.push(file);
|
|
37
|
+
args.push('--textcfg', file);
|
|
30
38
|
break;
|
|
31
39
|
}
|
|
32
40
|
case 'generic': {
|
|
@@ -39,10 +47,13 @@ const generateNextpnrWorkerOptions = (configuration, targetId) => {
|
|
|
39
47
|
case 'ice40': {
|
|
40
48
|
args.push(`--${device.device}`);
|
|
41
49
|
args.push('--package', target.package);
|
|
42
|
-
|
|
50
|
+
if (options.pinConfigFile) {
|
|
51
|
+
args.push('--pcf', options.pinConfigFile);
|
|
52
|
+
}
|
|
53
|
+
// Write ASC file
|
|
43
54
|
const file = (0, target_js_1.getTargetFile)(target, `${family.architecture}.asc`);
|
|
44
55
|
outputFiles.push(file);
|
|
45
|
-
args.push('--asc',
|
|
56
|
+
args.push('--asc', file);
|
|
46
57
|
break;
|
|
47
58
|
}
|
|
48
59
|
case 'nexus': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextpnr.js","sourceRoot":"","sources":["../../src/project/nextpnr.ts"],"names":[],"mappings":";;;AAAA,2DAA6C;AAG7C,6CAAqC;AAErC,2CAAiG;AAOjG,MAAM,eAAe,GAAmB;IACpC,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"nextpnr.js","sourceRoot":"","sources":["../../src/project/nextpnr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
import { type ProjectConfiguration } from './configuration.js';
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { type ProjectConfiguration, TargetConfiguration, TargetOptionTypes, WorkerId } from './configuration.js';
|
|
2
|
+
import { Device, Family, Vendor } from './devices.js';
|
|
3
|
+
type Primitive = string | number | boolean | bigint | symbol | null | undefined | Date | RegExp | ((...args: unknown[]) => unknown);
|
|
4
|
+
type PathArray<T> = T extends Primitive ? never : {
|
|
5
|
+
[K in Extract<keyof T, string>]: T[K] extends Primitive | unknown[] ? [K] : [K] | [K, ...PathArray<T[K]>];
|
|
6
|
+
}[Extract<keyof T, string>];
|
|
7
|
+
type PathArrayValue<T, P extends readonly string[]> = P extends [] ? T : P extends [infer K extends string, ...infer R extends string[]] ? K extends keyof T ? PathArrayValue<T[K], R> : unknown : unknown;
|
|
8
|
+
export type ProjectEvent = 'meta' | 'inputFiles' | 'outputFiles' | 'configuration';
|
|
4
9
|
type EventCallback = (project: Project, events: ProjectEvent[]) => void;
|
|
5
10
|
export interface ProjectInputFileState {
|
|
6
11
|
path: string;
|
|
7
|
-
type: 'design' | 'testbench';
|
|
12
|
+
type: 'design' | 'testbench' | 'pinconfig';
|
|
8
13
|
}
|
|
9
14
|
export declare class ProjectInputFile {
|
|
15
|
+
private _project;
|
|
10
16
|
private _path;
|
|
11
17
|
private _type;
|
|
12
|
-
constructor(_path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
|
|
18
|
+
constructor(_project: Project, _path: ProjectInputFileState['path'], _type: ProjectInputFileState['type']);
|
|
13
19
|
get path(): ProjectInputFileState['path'];
|
|
14
20
|
get type(): ProjectInputFileState['type'];
|
|
15
21
|
set type(type: ProjectInputFileState['type']);
|
|
16
22
|
serialize(): ProjectInputFileState;
|
|
17
|
-
static deserialize(data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
|
|
18
|
-
copy(): ProjectInputFile;
|
|
23
|
+
static deserialize(project: Project, data: ProjectInputFileState | string, ..._args: unknown[]): ProjectInputFile;
|
|
24
|
+
copy(project: Project): ProjectInputFile;
|
|
19
25
|
}
|
|
20
26
|
export interface ProjectOutputFileState {
|
|
21
27
|
path: string;
|
|
@@ -38,6 +44,39 @@ export declare class ProjectOutputFile {
|
|
|
38
44
|
static deserialize(project: Project, data: ProjectOutputFileState | string, ..._args: unknown[]): ProjectOutputFile;
|
|
39
45
|
copy(project: Project): ProjectOutputFile;
|
|
40
46
|
}
|
|
47
|
+
export declare class ProjectTarget {
|
|
48
|
+
private _project;
|
|
49
|
+
private _data;
|
|
50
|
+
constructor(_project: Project, _data: TargetConfiguration);
|
|
51
|
+
get id(): string;
|
|
52
|
+
set id(newId: string);
|
|
53
|
+
get name(): string;
|
|
54
|
+
set name(newName: string);
|
|
55
|
+
get isActive(): boolean;
|
|
56
|
+
setActive(): void;
|
|
57
|
+
get vendorId(): string;
|
|
58
|
+
get availableVendors(): Record<string, Vendor>;
|
|
59
|
+
get vendor(): Vendor | undefined;
|
|
60
|
+
setVendor(vendorId: string): void;
|
|
61
|
+
get familyId(): string;
|
|
62
|
+
get availableFamilies(): Record<string, Family>;
|
|
63
|
+
get family(): Family | undefined;
|
|
64
|
+
setFamily(familyId: string): void;
|
|
65
|
+
get deviceId(): string;
|
|
66
|
+
get availableDevices(): Record<string, Device>;
|
|
67
|
+
get device(): Device | undefined;
|
|
68
|
+
setDevice(deviceId: string): void;
|
|
69
|
+
get packageId(): string;
|
|
70
|
+
get availablePackages(): Record<string, string>;
|
|
71
|
+
get package(): string | undefined;
|
|
72
|
+
setPackage(packageId: string): void;
|
|
73
|
+
get config(): TargetConfiguration;
|
|
74
|
+
setConfig<P extends PathArray<TargetConfiguration>>(path: P, value: PathArrayValue<TargetConfiguration, P>): void;
|
|
75
|
+
getEffectiveOptions<W extends WorkerId>(workerId: W): TargetOptionTypes[W];
|
|
76
|
+
getEffectiveTextConfig(workerId: WorkerId, configId: string, generated: string[], parse?: (values: string[]) => string[]): string[];
|
|
77
|
+
update(updates: Partial<TargetConfiguration>): void;
|
|
78
|
+
serialize(): TargetConfiguration;
|
|
79
|
+
}
|
|
41
80
|
export interface ProjectState {
|
|
42
81
|
name: string;
|
|
43
82
|
inputFiles: ProjectInputFileState[] | string[];
|
|
@@ -54,6 +93,7 @@ export declare class Project {
|
|
|
54
93
|
private batchCounter;
|
|
55
94
|
constructor(name: string, inputFiles?: ProjectInputFileState[] | string[], outputFiles?: ProjectOutputFileState[] | string[], configuration?: ProjectConfiguration, eventCallback?: EventCallback);
|
|
56
95
|
getName(): string;
|
|
96
|
+
setName(name: string): void;
|
|
57
97
|
getInputFiles(): ProjectInputFile[];
|
|
58
98
|
hasInputFile(filePath: string): boolean;
|
|
59
99
|
getInputFile(filePath: string): ProjectInputFile | null;
|
|
@@ -72,9 +112,19 @@ export declare class Project {
|
|
|
72
112
|
removeOutputFiles(filePaths: string[]): void;
|
|
73
113
|
expireOutputFiles(): void;
|
|
74
114
|
setTopLevelModule(targetId: string, module: string): void;
|
|
75
|
-
|
|
115
|
+
setActiveTestbenchPath(targetId: string, testbenchPath?: string): void;
|
|
116
|
+
getActiveTestbenchPath(targetId: string): string | undefined;
|
|
117
|
+
setActivePinConfigPath(targetId: string, pinConfigPath?: string): void;
|
|
118
|
+
getActivePinConfigPath(targetId: string): string | undefined;
|
|
76
119
|
setInputFileType(filePath: string, type: ProjectInputFile['type']): void;
|
|
120
|
+
getTargets(): ProjectTarget[];
|
|
121
|
+
hasTarget(id: string): boolean;
|
|
77
122
|
getTarget(id: string): ProjectTarget | null;
|
|
123
|
+
getActiveTarget(): ProjectTarget | null;
|
|
124
|
+
setActiveTarget(id: string | null): void;
|
|
125
|
+
addTarget(id?: string, config?: Omit<TargetConfiguration, 'id'>): ProjectTarget;
|
|
126
|
+
removeTarget(id: string): void;
|
|
127
|
+
updateTarget(id: string, updates: Partial<TargetConfiguration>): void;
|
|
78
128
|
getConfiguration(): {
|
|
79
129
|
targets: {
|
|
80
130
|
id: string;
|
|
@@ -83,11 +133,29 @@ export declare class Project {
|
|
|
83
133
|
family: string;
|
|
84
134
|
device: string;
|
|
85
135
|
package: string;
|
|
136
|
+
directory?: string | undefined;
|
|
86
137
|
yosys?: {
|
|
138
|
+
inputFiles?: {
|
|
139
|
+
useGenerated: boolean;
|
|
140
|
+
values: string[];
|
|
141
|
+
useDefault: boolean;
|
|
142
|
+
} | undefined;
|
|
143
|
+
outputFiles?: {
|
|
144
|
+
useGenerated: boolean;
|
|
145
|
+
values: string[];
|
|
146
|
+
useDefault: boolean;
|
|
147
|
+
} | undefined;
|
|
148
|
+
commands?: {
|
|
149
|
+
useGenerated: boolean;
|
|
150
|
+
values: string[];
|
|
151
|
+
useDefault: boolean;
|
|
152
|
+
} | undefined;
|
|
87
153
|
options?: {
|
|
88
154
|
optimize?: boolean | undefined;
|
|
89
155
|
topLevelModule?: string | undefined;
|
|
90
156
|
} | undefined;
|
|
157
|
+
} | undefined;
|
|
158
|
+
nextpnr?: {
|
|
91
159
|
inputFiles?: {
|
|
92
160
|
useGenerated: boolean;
|
|
93
161
|
values: string[];
|
|
@@ -98,18 +166,19 @@ export declare class Project {
|
|
|
98
166
|
values: string[];
|
|
99
167
|
useDefault: boolean;
|
|
100
168
|
} | undefined;
|
|
101
|
-
|
|
169
|
+
arguments?: {
|
|
102
170
|
useGenerated: boolean;
|
|
103
171
|
values: string[];
|
|
104
172
|
useDefault: boolean;
|
|
105
173
|
} | undefined;
|
|
106
|
-
} | undefined;
|
|
107
|
-
nextpnr?: {
|
|
108
174
|
options?: {
|
|
109
175
|
placedSvg?: boolean | undefined;
|
|
110
176
|
routedSvg?: boolean | undefined;
|
|
111
177
|
routedJson?: boolean | undefined;
|
|
178
|
+
pinConfigFile?: string | undefined;
|
|
112
179
|
} | undefined;
|
|
180
|
+
} | undefined;
|
|
181
|
+
iverilog?: {
|
|
113
182
|
inputFiles?: {
|
|
114
183
|
useGenerated: boolean;
|
|
115
184
|
values: string[];
|
|
@@ -125,11 +194,11 @@ export declare class Project {
|
|
|
125
194
|
values: string[];
|
|
126
195
|
useDefault: boolean;
|
|
127
196
|
} | undefined;
|
|
128
|
-
} | undefined;
|
|
129
|
-
iverilog?: {
|
|
130
197
|
options?: {
|
|
131
198
|
testbenchFile?: string | undefined;
|
|
132
199
|
} | undefined;
|
|
200
|
+
} | undefined;
|
|
201
|
+
flasher?: {
|
|
133
202
|
inputFiles?: {
|
|
134
203
|
useGenerated: boolean;
|
|
135
204
|
values: string[];
|
|
@@ -145,15 +214,31 @@ export declare class Project {
|
|
|
145
214
|
values: string[];
|
|
146
215
|
useDefault: boolean;
|
|
147
216
|
} | undefined;
|
|
217
|
+
options?: {
|
|
218
|
+
board?: string | undefined;
|
|
219
|
+
} | undefined;
|
|
148
220
|
} | undefined;
|
|
149
|
-
directory?: string | undefined;
|
|
150
221
|
}[];
|
|
151
222
|
defaults?: {
|
|
152
223
|
yosys?: {
|
|
224
|
+
inputFiles?: {
|
|
225
|
+
useGenerated: boolean;
|
|
226
|
+
values: string[];
|
|
227
|
+
} | undefined;
|
|
228
|
+
outputFiles?: {
|
|
229
|
+
useGenerated: boolean;
|
|
230
|
+
values: string[];
|
|
231
|
+
} | undefined;
|
|
232
|
+
commands?: {
|
|
233
|
+
useGenerated: boolean;
|
|
234
|
+
values: string[];
|
|
235
|
+
} | undefined;
|
|
153
236
|
options?: {
|
|
154
237
|
optimize?: boolean | undefined;
|
|
155
238
|
topLevelModule?: string | undefined;
|
|
156
239
|
} | undefined;
|
|
240
|
+
} | undefined;
|
|
241
|
+
nextpnr?: {
|
|
157
242
|
inputFiles?: {
|
|
158
243
|
useGenerated: boolean;
|
|
159
244
|
values: string[];
|
|
@@ -162,17 +247,18 @@ export declare class Project {
|
|
|
162
247
|
useGenerated: boolean;
|
|
163
248
|
values: string[];
|
|
164
249
|
} | undefined;
|
|
165
|
-
|
|
250
|
+
arguments?: {
|
|
166
251
|
useGenerated: boolean;
|
|
167
252
|
values: string[];
|
|
168
253
|
} | undefined;
|
|
169
|
-
} | undefined;
|
|
170
|
-
nextpnr?: {
|
|
171
254
|
options?: {
|
|
172
255
|
placedSvg?: boolean | undefined;
|
|
173
256
|
routedSvg?: boolean | undefined;
|
|
174
257
|
routedJson?: boolean | undefined;
|
|
258
|
+
pinConfigFile?: string | undefined;
|
|
175
259
|
} | undefined;
|
|
260
|
+
} | undefined;
|
|
261
|
+
iverilog?: {
|
|
176
262
|
inputFiles?: {
|
|
177
263
|
useGenerated: boolean;
|
|
178
264
|
values: string[];
|
|
@@ -185,11 +271,11 @@ export declare class Project {
|
|
|
185
271
|
useGenerated: boolean;
|
|
186
272
|
values: string[];
|
|
187
273
|
} | undefined;
|
|
188
|
-
} | undefined;
|
|
189
|
-
iverilog?: {
|
|
190
274
|
options?: {
|
|
191
275
|
testbenchFile?: string | undefined;
|
|
192
276
|
} | undefined;
|
|
277
|
+
} | undefined;
|
|
278
|
+
flasher?: {
|
|
193
279
|
inputFiles?: {
|
|
194
280
|
useGenerated: boolean;
|
|
195
281
|
values: string[];
|
|
@@ -202,14 +288,26 @@ export declare class Project {
|
|
|
202
288
|
useGenerated: boolean;
|
|
203
289
|
values: string[];
|
|
204
290
|
} | undefined;
|
|
291
|
+
options?: {
|
|
292
|
+
board?: string | undefined;
|
|
293
|
+
} | undefined;
|
|
205
294
|
} | undefined;
|
|
206
295
|
} | undefined;
|
|
296
|
+
activeTargetId?: string | undefined;
|
|
207
297
|
};
|
|
208
298
|
updateConfiguration(configuration: Partial<ProjectConfiguration>): void;
|
|
209
299
|
protected importFromProject(other: Project, doTriggerEvent?: boolean): void;
|
|
300
|
+
triggerInputFilesChanged(): void;
|
|
301
|
+
triggerOutputFilesChanged(): void;
|
|
302
|
+
triggerConfigurationChanged(): void;
|
|
210
303
|
protected emitEvents(...events: ProjectEvent[]): void;
|
|
211
304
|
protected batchEvents<T>(func: () => T, ...events: ProjectEvent[]): T;
|
|
212
|
-
protected
|
|
305
|
+
protected ignoreEvents<T>(func: () => T): T;
|
|
306
|
+
protected static emitsEvents(...events: ProjectEvent[]): <T>(_target: object, _propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
|
|
307
|
+
protected makeCorrections(): boolean;
|
|
308
|
+
private correctTestbenchPath;
|
|
309
|
+
private correctPinconfigPaths;
|
|
310
|
+
correctActiveTarget(): boolean;
|
|
213
311
|
static serialize(project: Project): ProjectState;
|
|
214
312
|
static deserialize(data: ProjectState, ..._args: unknown[]): Project;
|
|
215
313
|
static loadFromData(rawData: Uint8Array): Project;
|