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
    Posts
  • #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.

    #1009
    Jim Lewis
    Member

    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:

    NamePkg.vhd
    TranscriptPkg.vhd
    OsvvmGlobalPkg.vhd
    AlertLogPkg.vhd
    MessagePkg.vhd
    SortListPkg_int.vhd
    RandomBasePkg.vhd
    RandomPkg.vhd
    CoveragePkg.vhd
    OsvvmContext.vhd

    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.

    Cheers,

    Jim

    #1014

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

    #1020

    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.

    Regards,

    Wilhelm

    #1021

    Hi Wilhelm,

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

    Normal
    0

    false
    false
    false

    EN-US
    X-NONE
    X-NONE

    MicrosoftInternetExplorer4

    The option is:

    -extv200x 

    Regards.

    Ahmed.

    #1022

    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.
    /home/nxp59337/SyncProjects/virage/workspace/data/sa_dig_ang_datapathn1_lib/sa_dig_ang_datapathn1/nccoex/osvvm/TranscriptPkg.vhd:
    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.

    Regards.

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

    #1024
    Jim Lewis
    Member

    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. 

    Jim

    #1042

    *Hello,

    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.

    Alex

    #1043

    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.

    Regards.

    #1044

    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.

    Alex

    #1045

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

    #1046

    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

    #1048
    Jim Lewis
    Member

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

    Jim

    #1049

    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

    #1050

    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.

    Regards.

    Ahmed.

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