You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an abstract function to `svsim.Backend` which can be used to control
how define key and values will be escaped. Add escaping for '$' for VCS
only.
This is done to work around what I think is a difference in how VCS and
Verilator handle the `+define+key=value` command line argument. In svsim,
we call both like the following (this is a key only, no value):
<tool> '+define+Foo$Bar'
While Verilator will accept this, VCS will not and instead wants:
<tool> '+define+Foo\$Bar'
As far as I can tell, the problem seems to be the single quotes not being
respected by VCS. This is _likely_ due to the fact that the VCS
entrypoint is shell and may have some oddities in how it is handling
command line options. (This is speculation.)
I expect that this could have manifested for anything that was using a
Verilog system function, e.g.., `+define+RANDOM+$random`. For that
specific case, we were already escaping it internally.
The immediate need for this is to get inline layers and their `$`-ridden
ABI (that I wrote...) working with VCS. They are already working with
Verilator.
Signed-off-by: Schuyler Eldridge <[email protected]>
0 commit comments