Cadence support for OSVVM 2015.03
Why OSVVM™? › Forums › OSVVM › Cadence support for OSVVM 2015.03
- This topic has 20 replies, 5 voices, and was last updated 7 years, 1 month ago by Jim Lewis.
July 13, 2015 at 01:23 #1007
i downloaded the most recent OSVVM package and I want to use it with Cadence ncvhdl. I am using ncvhdl version 14. I select the compiler option to -v200x.
However, it is incapable of compiling the OSVVM package due to the protected data type.
Any clue, if cadence support protected data types or not? How can I overcome this issue?
Regards.July 13, 2015 at 23:25 #1009
Make sure you have compiled all the files in the order described in the osvvm_release_notes.pdf. For 2015.03, it is:
Assuming that you compiled them in order, which file caused the errors? Was it NamePkg? Was it AlertLogPkg? Let me know the specific error messages. I may be able to create a work around (like I do for other simulators from time to time). You can post them here or email them directly to me at jim at SynthWorks dot com.
JimJuly 14, 2015 at 02:11 #1014
Thanks a lot for your kind correspondence.
This is the error message:
ncvhdl(64): 14.10-s002: (c) Copyright 1995-2014 Cadence Design Systems, Inc.
type NamePType is protected
ncvhdl_p: *E,BADTYP (../TESTBENCH/osvvm/NamePkg.vhd,55|20): expecting a type definition [4.1] .July 28, 2015 at 00:37 #1020WilhelmMember
any news on this issue ?
I would like to know as well, if Cadence supports osvvm. Currently I think, that they can not handle protected type.
WilhelmJuly 28, 2015 at 02:43 #1021
Cadence have the following option it improves the compilation but I still have some problems.
The option is:
Ahmed.August 10, 2015 at 00:49 #1022
I am still struggling with compiling OSVVM using Cadence. I tried irun and ncvhdl but neither of them worked for me. Did anybody managed to do it.
Please inform us if anybody did it?
Latest error messgae:
irun(64): 14.10-s002: (c) Copyright 1995-2014 Cadence Design Systems, Inc.
ncvhdl_p: *E,CYCDEP: cyclic dependency detected between unit(s)
COVERAGEPKG (/home/nxp59337/SyncProjects/virage/workspace/data/sa_dig_ang_datapathn1_lib/sa_dig_ang_datapathn1/nccoex/osvvm/CoveragePkg.vhd, line 103)
OSVVMGLOBALPKG (/home/nxp59337/SyncProjects/virage/workspace/data/sa_dig_ang_datapathn1_lib/sa_dig_ang_datapathn1/nccoex/osvvm/OsvvmGlobalPkg.vhd, line 52).
irun: *E,VHLERR: Error during parsing VHDL file (status 1), exiting.
The error is at those lines:
— type OsvvmOptionsType is (OPT_DEFAULT, FALSE, TRUE) ;
alias CovOptionsType is OSVVM.OsvvmGlobalPkg.OsvvmOptionsType ;
constant COV_OPT_INIT_PARM_DETECT : CovOptionsType := OSVVM.OsvvmGlobalPkg.OPT_INIT_PARM_DETECT ;
— For backward compatibility. Don’t add to other packages.
alias DISABLED is OSVVM.OsvvmGlobalPkg.DISABLED [return OSVVM.OsvvmGlobalPkg.OsvvmOptionsType ];
alias ENABLED is OSVVM.OsvvmGlobalPkg.ENABLED [return OSVVM.OsvvmGlobalPkg.OsvvmOptionsType ];August 17, 2015 at 22:22 #1024
I am having trouble understanding the context of the error messages. Did you use the compile order I supplied at the beginning of this post? What file was being compiled or what was the simulator doing when it printed this message?
It is likely ok to comment out the aliases. Particularly if you are just getting started and remember that depending on the simulator, you may need to reference OsvvmGlobalPkg if you need to set any of the optional parameters.
You can send me email directly at jim at synthworks dot com. Particularly if I don not answer right away. It usually sends me an email when the post is updated, but this time it did not.
JimSeptember 17, 2015 at 07:54 #1042
I’m new with OSVVM and I’m trying to use it with Cadence ncvhdl 14.10-s024.
I found this topic because I have the same issue with protected type.
I was running:
ncvhdl -64bit -me -V200X src/NamePkg.vhd
and I got error like this:
type NamePType is protected
ncvhdl_p: *E,BADTYP (/prj/nvem/sw/SynthWorks/OSVVM@2015.06/NamePkg.vhd,56|20): expecting a type definition [4.1] .
Did anyone solve this issue?Thanks and regards.
AlexSeptember 17, 2015 at 08:35 #1043
Yes, I solved this point but not the complete issue.
You need to add the -extv200x option to your command, and I think it is only available for the irun not the ncvhdl.
Regards.September 18, 2015 at 01:21 #1044
thanks for your reply.
Following your suggestion now I use ‘irun’ with -extv200x option but I get exactly the same error as before.
Could you explain me better how you solved the point?
At the moment I’m interested in using at least the RandomPkg package for random pattern generation.
Thanks and regards.
AlexSeptember 19, 2015 at 23:15 #1045
Well, it took me some time to achieve this step using Cadence flow.
Cadence has a very poor support for VHDL-08, therefore, you will need to do some changes in package code in order to get it to compile.
1. Compile in the order which Jim stated in his first post
2. Compile it to a certain library, e.g., osvvm and then use the library clause within your test-bench (library osvvm; use osvvm.xxx.all;)
3. If you are still getting the error message, then change the logical functions for reduction to or/and/xor/xnor_reduce since Cadence only support this command
At the end I gave up on Cadence, I hope they would support VHDL-08 more.
Regards.September 25, 2015 at 08:04 #1046
with the help of Cadence support (using both options -v200x -extv200x) I made some progress and now I’m able to compile few packages.
Still I have problems with AlertLogPkg.vhd: I get several error like this:
procedure Log( Message : string ; Level : LogType := ALWAYS ; Enable : boolean := FALSE) ;
ncvhdl_p: *E,EXPTYP (/prj/nvem/sw/SynthWorks/OSVVM@2015.06/AlertLogPkg.vhd,208|88): expecting an expression of type BOOLEAN 87[4.3.3] 93[4.3.2].
It seems that the initial value in the procedure declaration is not supported for type boolean.I’m looking for a workaround: do you or does anybody have any suggestion?Thanks very much and kind regards.AlexSeptember 25, 2015 at 08:36 #1048
Cadence does not seem to like it when an enumerated type has the enumeration literals TRUE and FALSE in it. The issue is caused by the OsvvmGlobalPkg.
You can try the one I posted here: https://osvvm.wpengine.com/wp-content/uploads/2015/09/OsvvmGlobalPkg_cadence.txt
Note for some reason the website did not allow me to upload a .vhd, so you will need to change the .txt to .vhd.
Keep posting any errors. I hope to have some time soon to look into issues with Cadence and have some ideas about workarounds for some of the earlier issues I saw.
JimSeptember 28, 2015 at 04:16 #1049
using the new version of OsvvmGlobalPkg (with also a modification in to_OsvvmOptionsType function) the previous issues have been solved.
Anyway I still have problems with AlerLogPkg:
if L ?= R then
ncvhdl_p: *E,EXPTHN (/prj/nvem/sw/SynthWorks/OSVVM@2015.06/AlertLogPkg.vhd,1709|9): expecting the reserved word ‘THEN’ 87[8.6] 93[8.7].
Now, the issue seems to be the “?=” operator; I’m new with VHDL-2008 and I pretty don’t know how to workaround it.Thanks very much for your support and kind regards.AlexSeptember 29, 2015 at 00:22 #1050
You shall rename the L ?= R to L \?=\ R.
All the new operators using the ? shall have \\ before and after.
This is Cadence syntax.
- You must be logged in to reply to this topic.