rohd
rohd copied to clipboard
A helper function to save generated System Verilog string as a file
Motivation
I'm wondering if we can have a helper function to save system Verilog module generateSynth() to a file. Its a pain to keep copy pasting the code below to keep track of system verilog code generated.
import 'dart:io';
final res = mod.generateSynth();
final out = File('output.txt').openWrite();
out. Write(res);
File('temp.sv').writeAsStringSync(myString);
I am thinking maybe someone who also beneficial to have the system verilog .sv file as well.
Desired solution
There are two ways I can think of.
First is update:
generateSynth()function to receive arguments likegenerateSynth(toFile=true, path='./mypath/simMod.sv)'
- Note that this might cause breaking changes as
openWrite().close()will returnFuture<void>.
Second:
- Create a
static helper functionto just dump instringto any file format.
Alternatives considered
No response
Additional details
No response
Different cases to consider:
- Generate a string with all modules in it (already supported), return as
String - Generate a string per-module (supported via
SynthBuilderandSynthResult), return asList<SynthResult> - Generate a file with all modules in it (take output of above, put into file)
- Generate one module per file (take output of above, put into files per module)
Each of these options might use a different Synthesizer
The API should be simple to use for all these cases for any Synthesizer.
Maybe something like this, where both options take Synthesizer as an option?
generateSynth -> returns String, optionally additionally dumps to file with all modules in one file?
generateSynthPerModule -> returns List<SynthResult>, optionally additionally dumps to a directory?