Synopsys VCS-MX
Why OSVVM™? › Forums › OSVVM › Synopsys VCS-MX
- This topic has 15 replies, 3 voices, and was last updated 2 years ago by Jim Lewis.
-
AuthorPosts
-
October 5, 2020 at 15:23 #1726TimMember
Is OSVVM supported by the latest Synopsys VCS-MX?
I didn’t notice any scripts in the OsvvmLibaries/Scripts repository.
October 5, 2020 at 15:49 #1727Jim LewisMemberHi Tim,
> Is OSVVM supported by the latest Synopsys VCS-MX?
It is my understanding that it is, however, I have not done any testing with it – yet. Hopefully toward the end of the year, that will be changing.> I didn’t notice any scripts in the OsvvmLibaries/Scripts repository.
It is on my todo list. Does VCS-MX have a tcl interface or do you run
it from the unix/linux shell?The path to tcl is fairly straight forward. There are a only a
couple of steps.
1) Edit ToolConfiguration.tcl
In VCS-MX run the following tcl command:
puts [info nameofexecutable]
As long as the tail of this path does not match one of the other tools, this is easy,
you would just need to add another branch to the if-then-else of the form:} elseif {[string match $ToolExecutableName "<root-name-of-executable>"]} { set ToolType "simulator" set ToolVendor "Synopsys" set simulator "VCS-MX" # if you can get the tool version, ok, but it is ok to temporarily # put something in here like I did in GHDL quietly set ToolNameVersion ${simulator}-<version> echo $ToolNameVersion source ${SCRIPT_DIR}/VendorScripts_Synopsys_VCS_MX.tcl
2) Create VendorScripts_Synopsys_VCS_MX.tcl
Copy either Mentor or RivieraPro versions.
Substitute the in the VCS-MX commands to compile for 2008
and run a simulation. Currently for other simulators
I am logging all signals – but for larger sims this may
not be practical.If you have problems, reach out to be by email. Especially if
either I can write it and you can test it, or if you are willing
to share the final version of the above files.Best Regards,
JimOctober 5, 2020 at 16:01 #1728TimMemberI’m running from tcsh on Linux and get the following syntax error when using VCS 2020.03-SP1:
Error-[IEEEVHDLSYNTAXERR] Syntax error ../osvvm/ScoreboardPkg_int.vhd, 53 analysis-PreParsing generic map ( ^ Syntax error detected during VHDL parsing.
I have a script with the following:
mkdir -p worklib vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/*.vhd
And, synopsys_sim.setup file with:
WORK > DEFAULT DEFAULT : ./worklib VHDL_MODE = 08 SMART_ORDER = TRUE
October 5, 2020 at 17:02 #1729TimMemberI got it to compile now with one error.
Warning-[AGGRNULLRANGE] Null range ../osvvm/RandomPkg.vhd, 109 RANDOMPKG subtype NULL_RANGE_TYPE is integer range 0 downto 1 ; ^ Range 0 downto 1 is a null range.
Modified my build script
mkdir -p worklib vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/NamePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/OsvvmGlobalPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/TranscriptPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/TextUtilPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/AlertLogPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/RandomBasePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/SortListPkg_int.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/MessagePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/CoveragePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/RandomPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/VendorCovApiPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ResolutionPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/MemoryPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/OsvvmContext.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/TbUtilPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/VendorCovApiPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ScoreboardPkg_int.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ScoreboardGenericPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ScoreboardPkg_slv.vhd
Modified the synopsys_sim.setup file
WORK > DEFAULT OSVVM > DEFAULT DEFAULT : ./worklib
October 6, 2020 at 13:00 #1731TimMemberMeant to say one warning in the previous message.
October 8, 2020 at 17:26 #1733Jim LewisMemberHi Tim,
Sorry I missed your additional discussion.This warning is ok. The code is legal VHDL code. It would be more obvious if they would print the message as:
Warning: NULL_RANGE_TYPE has a null range, Range 0 downto 1
Null ranges are legal. Often people end with them unintentionally, so the vendors decided to issue a warning. However, in the OSVVM packages they are a methodology that allows parameters to be not specified and still handled correctly.
Best Regards,
JimOctober 8, 2020 at 19:45 #1734Jim LewisMemberYour Script has a couple of things out of order. Specifically
VendorCovApiPkg.vhd must be compiled before CoveragePkg.vhd,
OsvvmContext.vhd must be compiled last (or almost last),
RandomPkg.vhd must be compiled before CoveragePkg.vhd,
ScoreboardGenericPkg.vhd must be compiled before ScoreboardPkg_int.vhd and ScoreboardPkg_slv.vhd.Our compile script is osvvm.pro. I made the following match the
ordering in osvvm.pro.mkdir -p worklib vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/NamePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/OsvvmGlobalPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/VendorCovApiPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/TranscriptPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/TextUtilPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/AlertLogPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/MessagePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/SortListPkg_int.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/RandomBasePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/RandomPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/CoveragePkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/MemoryPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ScoreboardGenericPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ScoreboardPkg_int.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ScoreboardPkg_slv.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/ResolutionPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/TbUtilPkg.vhd vhdlan -full64 -vhdl08 -verbose -nc ../osvvm/OsvvmContext.vhd
December 18, 2020 at 12:58 #1764Antonio BergnoliMemberAnd what about OSVVM-common?
i ‘m fighting with vcs for this error:Error-[VHDL08-IMPL-SUBTYPE] VHDL-2008 Usage Not Supported
./src/StreamTransactionPkg.vhd, 198
STREAMTRANSACTIONPKGsignal TransactionRec : inout StreamRecType
^
Use of unbounded type or base type is not supported in this context.And many many others of the same kind.
Ay sugggestion to make vcs happy?December 18, 2020 at 15:05 #1765Jim LewisMemberHi Antonio,
Ouch. Did you report the tool bug to Synopsys? Did they respond?I would have to think about a work around. Maybe if generics were
added to the package to constrain the size of DataToModel, DataFromModel,
ParamToModel, and ParamFromModel – and they were sized to match the largest
item in the system, it should be ok – maybe after some simple model tweaks
(there is a ToTransaction and FromTransaction that resize).The problem I see is that each different device in the system has different
requirements. UARTS have 8 bits of data and 3 bits of error injection,
vs AxiStream that supports multiple bytes of data and on item that is passed
via the Param field is the TUser which can be small or much larger than the
data.September 25, 2021 at 01:05 #1846Jim LewisMemberA quick update. I am working with Synopsys on VCS. Things are looking up. I should have more news on this shortly.
In the upcoming 2021.09 release there are scripts to use the OSVVM scripts with VCS.
April 15, 2022 at 14:11 #1957Antonio BergnoliMemberHi Jim,
i’m still fighting with osvvm and VCS S-2021.09-SP together, but i’m getting the same behaviourApril 16, 2022 at 02:12 #1958Jim LewisMemberHi Antonio,
You will need their latest service pack for VCS. I think there was one in October. The hot-fixes they were providing me for testing did not get integrated until shortly after the 2021.09 release.Best Regards,
JimApril 19, 2022 at 14:26 #1959Antonio BergnoliMemberThanks Jim, using the Service Pack 2 everithing works fine.
Best Regards
AntonioSeptember 30, 2022 at 10:50 #2061Antonio BergnoliMemberHi Jim,
starting from the commit 66e31acb for the repository “Scripts” i discover that VCS does not work anymore, hence the
799f7963 is the last working commit. I was not able right now to submit a pull request, in any case i will try to investigate which is the root cause of that.October 1, 2022 at 17:19 #2062Jim LewisMemberHi Antonio,
I should be able to look into it shortly too. Also if it is a TCL error, you may need to update your TCL version.Cheers,
Jim -
AuthorPosts
- You must be logged in to reply to this topic.