• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. Viewing OVM Transactions in Simvision

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 65
  • Views 15257
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Viewing OVM Transactions in Simvision

Main
Main over 16 years ago

Hello,

Can anyone please help with transactions viewing in Waves.

I'm using OVM functions begin_tr / end_tr as appear in the Reference and in the Xbus example.

How can I see them in simvision.

I can's see it. I Can't see any Instantiated Class in the Design Browser.

So how could I find my Transactions? I understand this is the only Way to see mt item objects in the waves.

Can you please. It is very frustrating.

Thanks

 

  • Cancel
  • StephenH
    StephenH over 16 years ago

     Hi.

    begin_tr and end_tr are empty "stub" methods in the main OVM distribution - the idea is to provide a common API for users, whilst letting each vendor provide the implementation in a way that best fits their tools.

    Because of this you have to compile an extra file to get the SimVision transaction fibres working.
    If you're using the OVM that ships with IUS, this file is included already in the compilation, but if you're using the ovmworld.org version, you have to compile the file separately. It's called cdns_recording.svh and is located in tools/ovm/src/cdns_additions/ inside the IUS installation directory.

    The transaction fibres should show up inside the sequencer instances in the OVM class hierarchy (unless you're calling begin_tr from a different location).If you don't even see the OVM class hierarchy, there must be something wrong with your instantiation of the OVM testbench, because IUS 8.1 and 8.2 definitely show the OVM hierarchy in the Design Browser. I was going to paste a screenshot to show you what to expect, but this forum won't let me insert an image...

    A final note: IUS 8.2 can send class objects to the waveforms even without transaction recording, but this is not the same as the transaction recording - the two are complimentary. You should also be able to see in the Design Browser the class objects under any instance, and the values of the class fields are shown there too. You can even descend into queues, arrays of classes etc.

     

    • designbrowser.gif
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Main
    Main over 16 years ago

    Hi StephenH,

     

    Thanks allot for your really helpful email, though unfortunately I still can't see OVM class hierarchy in IUS8.1s009

    Also I couldn't find cdns_additions directory but only an empty cdns_extentions folder with no files in it?!?

    The gif you sent - is it simply the Xbus OVM example? If it is, then I compiled it and run it under the specified Version and all I can see is just the xbus_tb_top module and all the class definitions bellow but no xbus_test_top class hierarchy.

    Are you sure I can see it also in my version (IUS81)? because it seems from the Gif, you are using IUS82

    and finally, what is the exact command line you are using. Maybe I'm missing some flags.

     Thanks and I appreciate your help,

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 16 years ago

    You're right, I was using 8.2s3. I checked it in 8.1s9 and it does work, the location of the cdns_additions is:
    IUS08.10.009-s/tools/ovm/src/cdns_additions/cdns_recording.svh

    I used the xbus example directly, I simply copied it to my home directory and ran the compile_ius.f:

    cp -r $IUS_HOME/tools/ovm/examples/xbus ~
    cd ~/xbus
    irun -f compile_ius.f +incdir+$IUS_HOME/tools/ovm/src -gui

    Hopefully that'll work for you as well. If not, you know where to come for help ;-)

     

    • designbrowser1.gif
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 16 years ago

    I forgot to mention - because the begin_tr is responsible for registering the transaction fibre, you will not see anything in the DesignBrowser at time 0. You have to run a short time until the 1st time the sequencer calls begin_tr, after which the transactions become visible.There isn't any work-around for this in SystemVerilog.
    In the xbus example, I run for just 1 ns to see the transactions.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Main
    Main over 16 years ago

    Thanks !!! this time it worked after I linked ovmhome to the IUS installation as you said.

    Anyway, just a side effect I noticed that the results of my test case were different between the former IUS62 I used to work with

    and the current IUS81. Same code but different version. Do you know what could be the reason?

    All of the sudden, I get only 2 items and then transactions are stopped as if the sequencer stopped executing sequences.

    (in IUS62 there were more before they stopped but also then I didn't know why they stopped long before simulation ended)

    Do you know what could be the reason that transactions stopps?

    Sorry I'm jumping to a totally different issue but I'm new to OVM and I'm currently trying a pilot for SV functional verification using OVM,

    (Hopefully the OVM wil turn out to be usefull and convenient and not a big headache)

    Thanks allot again and if you think that I'm already pushing it too much don't hesistate to say so :)

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 16 years ago

    There are various posible reasons for your simulation to stop at a different time.
    It sounds like you've switched OVM versions between 6.2 and 8.1 - of course 6.2 didn't come with OVM, so you were forced to download it separately, but 8.1 ships with OVM.

    If you have different OVM versions, that will in turn affect the randomisation, giving you different results for the same seed.

    Have a look in the sequencers and check what value of "count" was generated, this will tell you how many transactions to expect.

    If you want some help looking into OVM, feel free to contact a Cadence AE. There are OVM trained experts in every region of the world now, ready to help people get started. If you're not sure who is your local AE, drop me a private message or email stephenh at cadence . com with your contact details and I'll find someone close to your location.

    Enjoy!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information