-
Notifications
You must be signed in to change notification settings - Fork 250
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
Add Synopsys VCS simulator support #134
Comments
I would like to help to create this support. But I want to remove the need for observing internal signals in the VHDL/SystemVerilog runner first. That way it is easier to port VUnit to new simulators. |
FWIW, I had started this at https://github.com/cmarqu/vunit/blob/master/vunit/vcs_interface.py |
If somebody reading this has experience with VCS, please contact me, or speak up here. |
https://github.com/cmarqu/vunit now has VCS support that is able to successfully run the example |
A minor comment - in Synopsys terminology it's better if you call it VCSMX than plain VCS as seasoned VCS users get confused a bit. On internal signal monitoring - there is hdl_xmr if needed |
Thanks, I'll make that naming change soon. Internal signal monitoring is not necessary anymore I learned (just after I made the Tcl approach work :)). |
Can you try this: “setenv VCS_TARGET_ARCH linux64 (Thanks to Vijay Kishore my ex-colleague) |
Thanks Vijay and Srini, that variable works fine. |
VCS MX either uses an environment variable What should the behavior be? Options: If the
If the
|
@cmarqu Some valuable principles to keep in mind.
Thus I would recommend just copying the sim setup file from the tool installation folder to the vunit output directory just like we do with modelsim. |
Agree with @kraigher - usually this setup file is done once per design. Thanks |
@cmarqu Planning on finishing the VCS support? |
I'd have to do some paperwork first, so probably not in the near term, sorry. |
@cmarqu Ok I understand. Just let me know if you need any support and I will try to help you |
I've just started using VCS at work so can justify spending some time on this. |
@benreynwar The existing repo is is free from any paperwork issues, so feel free. Nice to see this progressing! |
@cmarqu Looks like you've updated your master branch since it contained the |
@benreynwar I think this is the latest version I had: https://gist.github.com/cmarqu/60b4ea8517769faad412cb63b198c265 |
@cmarqu Thanks! Do you also have the |
Oh, right. Actually, I guess the right set of files is at https://gist.github.com/cmarqu/b7c8d5470d51204b3e66bab289ed548d |
Alright. I've made extremely minor changes to get it installing. Branch is at: I'm getting the following error when I run
Any tips on what's likely going wrong? |
Ah yes - try running https://github.com/VUnit/vunit/blob/master/tools/incisive_vhdl_fixup.py on this file (or all sources). |
I'm currently stuck because for some reason the object file for the logger_pkg package is not getting generated, and so I get error messages when linking. No error message is getting generated before the linking message so debugging is a little tricky. I've put a support request in with synopys so I'll see whether they're able to help. |
@benreynwar is that support request open so that anyone can see? |
@LarsAsplund No, I don't think it's possible to make it public. My next step is to produce a minimal testcase that reproduces the issue independently of VUnit so that I have a better chance of getting help from them. |
Synopsys support has reproduced the issue and are looking into it. |
Synopsys has identified the bug and fixed it in O-2018.09. I'm not sure which official build release it will be a part of. I'm including a snippet where they describe what part of the VUnit code was triggering the bug: There was a code generation optimization bug for handling up-level references to unconstrained parameters from a nested impure function. Source code "src/logger_pkg-body.vhd" which is causing issue. ……
……. |
Hello, I have integrated VCSMX as well - but I am not getting proper exit status. I have updated When I run the failing testcase from verilog/user_guide, VCS simulator exits with proper exit status, but vunit infrastructure is marking it as pass – Any suggestions? python run.py -v "lib.tb_example.Test that a failing test case actually fails" |
I have taken a quick look into supporting the Synopsys VCS simulator.
It looks like similar to Cadence's
cds.lib
, VCS needs a file.synopsys_vss.setup
for the library name-to-path mapping. http://salinasv.blogspot.de/2011/05/simulating-mixed-language-hdl-using-vcs.html has some info about it.It would be nice if there was a class for reading and writing such a file, like the
CDSFile
class incds_file.py
for Incisive.The text was updated successfully, but these errors were encountered: