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.
@@ -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.generateYosysSynthCommands = exports.generateYosysSynthPrepareCommands = exports.generateYosysRTLCommands = exports.getYosysWorkerOptions = exports.generateYosysWorkerOptions = exports.getYosysOptions = exports.getYosysDefaultOptions = void 0;
6
+ exports.getYosysSynthesisWorkerOptions = exports.getYosysRTLWorkerOptions = exports.getYosysOptions = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const util_js_1 = require("../util.js");
9
9
  const devices_js_1 = require("./devices.js");
@@ -11,6 +11,8 @@ const target_js_1 = require("./target.js");
11
11
  const DEFAULT_OPTIONS = {
12
12
  optimize: true
13
13
  };
14
+ const getYosysOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'yosys', DEFAULT_OPTIONS);
15
+ exports.getYosysOptions = getYosysOptions;
14
16
  const getFileIngestCommands = (inputFiles, options) => {
15
17
  const commands = [];
16
18
  // Load vhdl files
@@ -35,36 +37,41 @@ const getFileIngestCommands = (inputFiles, options) => {
35
37
  }
36
38
  return commands;
37
39
  };
38
- const getSynthCommands = (arch, outFile) => {
39
- const commands = [];
40
- if (arch === 'generic') {
41
- commands.push('synth;');
42
- commands.push(`write_json "${outFile}";`);
43
- }
44
- else {
45
- commands.push(`synth_${arch} -json "${outFile}";`);
46
- }
47
- return commands;
40
+ const getInputFiles = (project, targetId) => {
41
+ const generatedInputFiles = project.getInputFiles()
42
+ .filter((inputFile) => inputFile.type === 'design' && util_js_1.FILE_EXTENSIONS_HDL.includes(path_1.default.extname(inputFile.path).substring(1)))
43
+ .map((file) => file.path);
44
+ return (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'inputFiles', generatedInputFiles).filter((f) => !!f);
48
45
  };
49
- const getYosysDefaultOptions = (configuration) => (0, target_js_1.getDefaultOptions)(configuration, 'yosys', DEFAULT_OPTIONS);
50
- exports.getYosysDefaultOptions = getYosysDefaultOptions;
51
- const getYosysOptions = (configuration, targetId) => (0, target_js_1.getOptions)(configuration, targetId, 'yosys', DEFAULT_OPTIONS);
52
- exports.getYosysOptions = getYosysOptions;
53
- const generateYosysWorkerOptions = (configuration, projectInputFiles, targetId) => {
46
+ const getOutputFiles = (project, targetId, files) => {
47
+ const target = project.getTarget(targetId);
48
+ if (target === null)
49
+ throw new Error('Target not found');
50
+ const generatedOutputFiles = files.map(f => (0, target_js_1.getTargetFile)(target.config, f));
51
+ return (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'outputFiles', generatedOutputFiles).filter((f) => !!f);
52
+ };
53
+ const getYosysRTLWorkerOptions = (project, targetId) => {
54
+ const configuration = project.getConfiguration();
54
55
  const target = (0, target_js_1.getTarget)(configuration, targetId);
55
56
  const options = (0, exports.getYosysOptions)(configuration, targetId);
56
- const vendor = devices_js_1.VENDORS[target.vendor];
57
- const family = vendor.families[target.family];
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);
61
- const outputFiles = [(0, target_js_1.getTargetFile)(target, `${family.architecture}.json`)];
62
- const tool = 'yosys';
63
- const commands = [...getFileIngestCommands(inputFiles, options), 'proc;'];
64
- if (options.optimize) {
65
- commands.push('opt;');
66
- }
67
- commands.push(...getSynthCommands(family.architecture, outputFiles[0]));
57
+ // Input files
58
+ const inputFiles = getInputFiles(project, targetId);
59
+ // Output files
60
+ const outputFiles = getOutputFiles(project, targetId, ["stats.yosys.json", "rtl.yosys.json"]);
61
+ // Commands
62
+ const generatedCommands = [
63
+ ...getFileIngestCommands(inputFiles, options),
64
+ 'proc;',
65
+ 'opt;',
66
+ 'memory -nomap;',
67
+ 'wreduce -memx;',
68
+ 'opt -full;',
69
+ `tee -q -o "${(0, target_js_1.getTargetFile)(target, 'stats.yosys.json')}" stat -json -width *;`,
70
+ `write_json "${(0, target_js_1.getTargetFile)(target, 'rtl.yosys.json')}";`,
71
+ ''
72
+ ];
73
+ const commands = (0, target_js_1.getCombined)(configuration, targetId, 'yosys', 'rtlCommands', generatedCommands);
74
+ const encoder = new TextEncoder();
68
75
  return {
69
76
  inputFiles,
70
77
  outputFiles,
@@ -72,69 +79,77 @@ const generateYosysWorkerOptions = (configuration, projectInputFiles, targetId)
72
79
  options,
73
80
  steps: [
74
81
  {
75
- tool,
76
- arguments: [],
77
- commands
82
+ id: 'rtl',
83
+ tool: 'yosys',
84
+ arguments: ['rtl.ys'],
85
+ generatedInputFiles: [
86
+ { name: 'rtl.ys', content: encoder.encode(commands.join('\n')) }
87
+ ],
88
+ commands,
78
89
  }
79
90
  ]
80
91
  };
81
92
  };
82
- exports.generateYosysWorkerOptions = generateYosysWorkerOptions;
83
- const getYosysWorkerOptions = (project, targetId) => {
84
- const generated = (0, exports.generateYosysWorkerOptions)(project.getConfiguration(), project.getInputFiles(), targetId);
85
- const inputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'inputFiles', generated.inputFiles).filter((f) => !!f);
86
- const outputFiles = (0, target_js_1.getCombined)(project.getConfiguration(), targetId, 'yosys', 'outputFiles', generated.outputFiles).filter((f) => !!f);
87
- const target = generated.target;
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
- });
93
+ exports.getYosysRTLWorkerOptions = getYosysRTLWorkerOptions;
94
+ const getYosysSynthesisWorkerOptions = (project, targetId) => {
95
+ const configuration = project.getConfiguration();
96
+ const target = (0, target_js_1.getTarget)(configuration, targetId);
97
+ const options = (0, exports.getYosysOptions)(configuration, targetId);
98
+ const vendor = devices_js_1.VENDORS[target.vendor];
99
+ const family = vendor.families[target.family];
100
+ // Input files
101
+ const inputFiles = getInputFiles(project, targetId);
102
+ // Output files
103
+ const outputFiles = getOutputFiles(project, targetId, [`${family.architecture}.json`]);
104
+ // Commands (preparation)
105
+ const generatedPrepareCommands = [
106
+ ...getFileIngestCommands(inputFiles, options),
107
+ 'proc;',
108
+ 'opt;',
109
+ `write_json "${(0, target_js_1.getTargetFile)(target, 'presynth.yosys.json')}";`,
110
+ ''
111
+ ];
112
+ const prepareCommands = (0, target_js_1.getCombined)(configuration, targetId, 'yosys', 'synthPrepareCommands', generatedPrepareCommands);
113
+ // Commands (synthesis)
114
+ const generatedSynthCommands = [
115
+ `read_json "${(0, target_js_1.getTargetFile)(target, 'presynth.yosys.json')}"`,
116
+ ];
117
+ if (family.architecture === 'generic') {
118
+ generatedSynthCommands.push('synth;');
119
+ generatedSynthCommands.push(`write_json "${(0, target_js_1.getTargetFile)(target, family.architecture)}.json"`);
120
+ }
121
+ else {
122
+ generatedSynthCommands.push(`synth_${family.architecture} -json "${(0, target_js_1.getTargetFile)(target, family.architecture)}.json"`);
123
+ }
124
+ generatedSynthCommands.push('');
125
+ const synthCommands = (0, target_js_1.getCombined)(configuration, targetId, 'yosys', 'synthCommands', generatedSynthCommands);
126
+ const encoder = new TextEncoder();
95
127
  return {
96
128
  inputFiles,
97
129
  outputFiles,
98
130
  target,
99
131
  options,
100
- steps
132
+ steps: [
133
+ {
134
+ id: 'prepare',
135
+ tool: 'yosys',
136
+ arguments: ['synth-prepare.ys'],
137
+ generatedInputFiles: [
138
+ { name: 'synth-prepare.ys', content: encoder.encode(prepareCommands.join('\n')) }
139
+ ],
140
+ commands: prepareCommands,
141
+ },
142
+ {
143
+ id: 'synth',
144
+ tool: 'yosys',
145
+ arguments: ['synth.ys'],
146
+ generatedInputFiles: [
147
+ { name: 'synth.ys', content: encoder.encode(synthCommands.join('\n')) }
148
+ ],
149
+ commands: synthCommands,
150
+ }
151
+ ]
101
152
  };
102
153
  };
103
- exports.getYosysWorkerOptions = getYosysWorkerOptions;
104
- const generateYosysRTLCommands = (workerOptions) => {
105
- // Yosys commands taken from yosys2digitaljs (https://github.com/tilk/yosys2digitaljs/blob/1b4afeae61/src/index.js#L1225)
106
- return [
107
- ...getFileIngestCommands(workerOptions.inputFiles, workerOptions.options),
108
- 'proc;',
109
- 'opt;',
110
- 'memory -nomap;',
111
- 'wreduce -memx;',
112
- 'opt -full;',
113
- `tee -q -o ${(0, target_js_1.getTargetFile)(workerOptions.target, 'stats.yosys.json')} stat -json -width *;`,
114
- `write_json "${(0, target_js_1.getTargetFile)(workerOptions.target, 'rtl.yosys.json')}";`,
115
- ''
116
- ];
117
- };
118
- exports.generateYosysRTLCommands = generateYosysRTLCommands;
119
- const generateYosysSynthPrepareCommands = (workerOptions) => {
120
- return [
121
- ...getFileIngestCommands(workerOptions.inputFiles, workerOptions.options),
122
- 'proc;',
123
- 'opt;',
124
- `write_json "${(0, target_js_1.getTargetFile)(workerOptions.target, 'presynth.yosys.json')}";`,
125
- ''
126
- ];
127
- };
128
- exports.generateYosysSynthPrepareCommands = generateYosysSynthPrepareCommands;
129
- const generateYosysSynthCommands = (workerOptions) => {
130
- const target = workerOptions.target;
131
- const vendor = devices_js_1.VENDORS[target.vendor];
132
- const family = vendor.families[target.family];
133
- return [
134
- `read_json "${(0, target_js_1.getTargetFile)(workerOptions.target, 'presynth.yosys.json')}"`,
135
- ...getSynthCommands(family.architecture, workerOptions.outputFiles[0]),
136
- ''
137
- ];
138
- };
139
- exports.generateYosysSynthCommands = generateYosysSynthCommands;
154
+ exports.getYosysSynthesisWorkerOptions = getYosysSynthesisWorkerOptions;
140
155
  //# sourceMappingURL=yosys.js.map
@@ -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.6.0",
5
+ "version": "0.6.2",
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)"