Jump to content
Sign in to follow this  
femi

uvm error after ovm2uvm conversion

Recommended Posts

Hope someone can help here:

Option 1a) Included in Compile file_list, uvm_pkg.sv, uvm_macros.svh and uvm.sv, all before top level test.

1b) Include uvm.sv in top level test.sv.

1c) Also included the directory paths to UVM_HOME, UVM_HOME/uvm_lib/src, just to make sure all options are available (always assume no-knowledge)

1d) irun without -uvmhome option ( if I use the uvmhome option then I get error relating to double declaration of uvm_pkg)

option 2a. Same as 1c

2b. used irun -uvmhome $UVM_HOME

2c. toplevel test has include uvm.sv

Error message is

... extends uvm_sequence_item

|:

*E,SVNOTY .... Syntactically this itentifier appaers to begin datatype but it doest not refer to a visible datatype in the curent scope.

Whats the problem with all my permutations ? Thanks in advance.

Share this post


Link to post
Share on other sites

hi,

the simple path is:

- remove all includes of uvm_* or uvm.sv files from your sources

- add a "import uvm_pkg::*;" where needed, typically followed by an include uvm_macros.svh"

update irun

- remove all ovm/uvm options, incdirs apart from

-uvm or -uvmhome <your path to uvm>

(irun takes care to compile uvm_pkg.sv so no need to add this in your filelist)

Share this post


Link to post
Share on other sites

Hi Mr Uwe,

Thanks for a quick response...

I triesd the option you gave now (which I tried before), but got the following error message:

import uvm_pkg::*;

ncvlog: E*,MULTPK .... MultipleMultiple (2) packages named "uvm_pkg" were found in the searched libraries:

-> found verilog_package worklib.uvm_pkg:sv (VST)

-> found verilog_package mydesign_lib.uvm_pkg:sv (VST).

I think it compiles the uvm_pkg twice (once during the uvmhome declaration and also when its imported in test_top)..

Where is worklib.. is this some kind of virtual lib?

Once again thanks for helping.. While waiting for answer I would also check if my scripts are really clean of uvm_* .

Share this post


Link to post
Share on other sites

The Ubitiquous CLEAN YOUR LIB.. That works a treat.. My compilation runs further now, just had to debug other non-compliant constructs like protected.. maybe some files that havent gone thru ovm2uvm script) ..

Thanks .. but dont hold you breath.... I maybe coming back looking for more clues as per Newbies.. Cheers.

Share this post


Link to post
Share on other sites

Hi Again,

Please can someone give idea of why/when of used of these comand line define options:

i) When I ommitted both options compilation goes through but only get simulation warning regarding sequences being DEPRECATED.. Test doest run because of DEPRECATEDsequences(according to warnings...).

ii) Using UVM_OBJECT_MUST_HAVE_CONSTRUCTOR results in errors.

Why is this the case with UVM, otherwise no problems with test environment in OVM flow..

Thanks.

BR

Share this post


Link to post
Share on other sites

hi,

UVM_NO_DEPRECATED defined means that no deprecated functions/code is available. while this gives you a hint where uvm is moving on it might break your code. at that point you can upgrade your code so it uses non-deprecated features.

UVM_OBJECT_MUST_HAVE_CONSTRUCTOR is an additional define for a change anticipated for uvm1.2. it basically means that you have to have a constructor in any uvm_object. see http://www.eda.org/svdb/view.php?id=3770 for more info including a pointer to the script fixing this.

/uwe

Share this post


Link to post
Share on other sites

Hi Uwe

In my Log , I could see this UVM_DEPRECATED & UVM_WARNING messages about my sequences i.e uvm_simple_sequence is deprecated and test is passing!

Can share your thoughts if i need to upgrade my code and also about the non-deprecated features like?

-Best Regards

////////////////////////////////////

[uVM_DEPRECATED] 5

//////////////////////////////////

Share this post


Link to post
Share on other sites

Hi Hash,

How did your test pass, if you've not actually done the code conversion from DEPRECATED to UVM compliance.

Mine simulation gave all the usual DEPRECATED warning and just got stuck at time 0. Which version simulator/uvm are you using ?

Thanks

Hi Uwe,

Does defining DEPRECATED allow the test to run normally or just compile/elaborate.. I am using cadence irun, do I need an older version of simulator/uvm ? Just a thought.

Thanks

BR

Share this post


Link to post
Share on other sites

defining UVM_NO_DEPRECATED for an older environment typically leads to compile errors since the deprecated code is within ifdefs. there might be some places where the code compiles but you see a runtime warning that things are deprecated.

>Mine simulation gave all the usual DEPRECATED warning and just got stuck at time 0.

this typically happens with old ovm style environments. you may try the +UVM_USE_OVM_RUN_SEMANTIC define (please check the exact spelling).

Share this post


Link to post
Share on other sites

Hi Femi

>>Which version simulator/uvm are you using ?

My Cadence Verison is 11.10-s067 and no issues with simulation as it could see the simulation time!

Hi Uwe

Yes, I could see a run time warning that things are deprecated!

Please let me know if i need to do the code conversion from DEPRECATED to UVM compliance now?

BR

Share this post


Link to post
Share on other sites

Hi Femi

>>>Which version simulator/uvm are you using

Am using 11.10-s067

2)I dont see any issues with the simulation and could see the simulation time too

Hi Uwe

Yes, I could see a run time warning that things are deprecated

2)Do i need to make the code conversion from DEPRECATED to UVM compliance?

As of now I dont see any issues with my test except for the UVM_DEPRECATED messages @ run time

-BR

Share this post


Link to post
Share on other sites

Hi Uwe,

Yes I have used the "+UVM...SEMANTIC" option and +UVM_DEPRECATED the simulation still stuck at time 0.

I think the main issue is that I get DEPRECATED warnings on my main sequencers that has uvm_seqeunce_utils (DEPRECATED), hence

test wont run further.

There is a contradiction with the uvm_users_guide_1.1.pdf (page 181 release date May 18 2011) which states that uvm_sequence utils

should be used in place of uvm_component_utils because ....

According to the uvm_migration.pdf all uvm_sequence_utils declaration should be converted to uvm_object_utils, and this is to migrate

to uvm-1.0, this is not what the user guide is saying. Hmm.

Is there a specific issue with UVM-1.1. So which one do I adhere to migration doc or userguide.. At the moment I am trying migration doc approach

it takes time, but if if I get a response by the time I finish I would also consider other options

Thanks.

Hi Hash,

Thanks for the response. Pls do not hesitate to make further contribution, all ideas are welcomed..

Share this post


Link to post
Share on other sites

Hi Hash,

I think I must have saved the file as ovm2uvm_migration.pdf. Its copied from cadence/this website

( not sure, as I was transversing all websites for any meaning clue to the UVM world)..

But sure its a cadence doc, it has its name on it! . It has list of major code changes required for migration.

Thanks

Femi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×