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 function
to just dump instring
to 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
SynthBuilder
andSynthResult
), 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?