Synopsys VCS-MX

Why OSVVM™? Forums OSVVM Synopsys VCS-MX

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #1726
    Tim
    Member

    Is OSVVM supported by the latest Synopsys VCS-MX?

    I didn’t notice any scripts in the OsvvmLibaries/Scripts repository.

    #1727
    Jim Lewis
    Member

    Hi 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,
    Jim

    #1728
    Tim
    Member

    I’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
    
    #1729
    Tim
    Member

    I 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
    
    
    #1731
    Tim
    Member

    Meant to say one warning in the previous message.

    #1733
    Jim Lewis
    Member

    Hi 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,
    Jim

    #1734
    Jim Lewis
    Member

    Your 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
Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.