Cadence support for OSVVM 2015.03

Why OSVVM™? Forums OSVVM Cadence support for OSVVM 2015.03

Viewing 15 posts - 1 through 15 (of 21 total)
  • Author
  • #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?


    Jim Lewis

    Hi Ahmed,

    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.




    Hi Jim,

    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] [3].


    Hi Jim,

    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.




    Hi Wilhelm,

    Cadence have the following option it improves the compilation but I still have some problems.





    The option is:





    Hi All,

    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 ];

    Jim Lewis

    Hi Ahmed,

    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. 




    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] [3].

    Did anyone solve this issue?Thanks and regards.



    Hi Alessandro,

    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.



    Hello Ahmed,

    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.



    Hi Alex,

    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;)

    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.



    Hello Ahmed,

    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.Alex

    Jim Lewis

    Hi Alex,

    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:

    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.  



    Hello Jim,

    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.Alex


    Hi Alessandro,

    You shall rename the L ?= R to L \?=\ R.

    All the new operators using the ? shall have \\ before and after.

    This is Cadence syntax.



Viewing 15 posts - 1 through 15 (of 21 total)
  • You must be logged in to reply to this topic.