-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use PRINTF_FD for rtl event #958
Conversation
4d07c71
to
7fc283c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't like the design of the passthru.buildCmdArgs
in sv-to-vcs/verilator derivation. This design will make it hard to debug the runtime argument, lead to options overriding hell and blurring the boundary between runtime and compile-time.
I can get the idea of separating dpiLib assertion from runEmu derivation. So here are opinions: we could add compile-time metadata to the simulator wrapper, and validate runtime argument using those metadata.
For example:
- Move default global arguments to the wrapper
- Add a
isRuntimeLoad=@isRuntimeLoad@
variable to wrapper, and substitute the value at compile time. related document. Then we can check if user passsv-lib
incorrectly by the arguments the wrapper received. - Since the wrapper becomes complicated now, I suggest remove the current bash implementation embedded in installPhase and replace it with a standalone Python script. This can help us escape from the bash escape hell. And the wrapper installation can be simplifed to
substituteAll ${./sim-wrapper.py} $out/${mainProgram}
. - move plusargs to upper scope, I think
runEmu
should only run emulator with given arguments. And those extra stuff should only appear with their requirement. Eg.+t1_wave_path
should be placed next to where the*-emu-trace
value was specified, but not be automatically generated withinrunEmu
. Also remove the optional installation logic inrunEmu
. Waveform installation script should also be specified next to the*-trace
emulator.
Hi, may you take a look at the new design.
This is addressed in the new
Now all dpi libs handled in compile time. I find a clever way to avoid nix rebuild for runtime load dpilibs.
I do not have a clear understanding what "simulator wrapper" means here. In the new design, the
I'm a bit not in favor of it. Although it's a bit messy, but I feel more important to keep all relevant logics in one central place, including what files should be prepared before run simulator, the exact arguments passed to simulator (though end users may not understand how
Run emulator could be simply done by |
No description provided.