uvm_rookie Posted March 2, 2011 Report Share Posted March 2, 2011 I got the following UVM DEPRECATED Warning. The problem is in the library file uvm_sequence_builtin.svh. Do I need to compile with UVM_NO_DEPRECATED ? ---------------------------------------------------------------- UVM-1.0p1 © 2007-2011 Mentor Graphics Corporation © 2007-2011 Cadence Design Systems, Inc. © 2006-2011 Synopsys, Inc. ---------------------------------------------------------------- UVM_WARNING /uvm/src/seq/uvm_sequencer_base.svh(1390) @ 0.000ns: uvm_test_top.testbench.tx_uvc.tx_agent.sequencer [uVM_DEPRECATED] Registering sequence 'uvm_random_sequence' with sequencer 'uvm_test_top.testbench.tx_uvc.tx_agent.sequencer' is deprecated. UVM_WARNING /uvm/src/seq/uvm_sequencer_base.svh(1390) @ 0.000ns: uvm_test_top.testbench.tx_uvc.tx_agent.sequencer [uVM_DEPRECATED] Registering sequence 'uvm_exhaustive_sequence' with sequencer 'uvm_test_top.testbench.tx_uvc.tx_agent.sequencer' is deprecated. UVM_WARNING /uvm/src/seq/uvm_sequencer_base.svh(1390) @ 0.000ns: uvm_test_top.testbench.tx_uvc.tx_agent.sequencer [uVM_DEPRECATED] Registering sequence 'uvm_simple_sequence' with sequencer 'uvm_test_top.testbench.tx_uvc.tx_agent.sequencer' is deprecated. Quote Link to comment Share on other sites More sharing options...
uwes Posted March 2, 2011 Report Share Posted March 2, 2011 hi, you got three choices here: 1. ignore the deprecated msg 2. switch the deprectated msg off 3. migrate the code to the new sequence library schema /uwe Quote Link to comment Share on other sites More sharing options...
uvm_rookie Posted March 3, 2011 Author Report Share Posted March 3, 2011 hi, you got three choices here: 1. ignore the deprecated msg 2. switch the deprectated msg off 3. migrate the code to the new sequence library schema /uwe Hi, that code is a built-in UVM code. I tried to switch off the message by using UVM_NO_DEPRECATED, but I got all kind of compilation error. So, I guess I can down to choice 1 .... Quote Link to comment Share on other sites More sharing options...
uwes Posted March 3, 2011 Report Share Posted March 3, 2011 Hi, that code is a built-in UVM code. I tried to switch off the message by using UVM_NO_DEPRECATED, but I got all kind of compilation error. So, I guess I can down to choice 1 .... hi, seems there is a misunderstanding. that switch apparently REMOVES all deprecated code from the library. so in that sense code which refers to deprecated features will now fail to compile. Quote Link to comment Share on other sites More sharing options...
SeanChou Posted March 18, 2011 Report Share Posted March 18, 2011 Any description or hint of method3 available? is anything missing below? thanks! 1. replace `uvm_sequence_utils by `uvm_object_utils 2. replace `uvm_sequencer_utils by `uvm_component_utils 3. remove `uvm_update_sequence_lib(_and_item) 4. replace set_config_string("*", "default_sequence".... by uvm_config_db ... Quote Link to comment Share on other sites More sharing options...
uwes Posted March 18, 2011 Report Share Posted March 18, 2011 yes, these are the steps # Switch uvm_sequence_utils to uvm_object_utils # Switch uvm_sequencer_utils to uvm_component_utils # remove the `uvm_update_sequence_lib* macros # If your sequences use “p_sequencer†add `uvm_declare_p_sequencer(<p-sequencer-type>) # create a new style sequence lib (if wanted) class master_seq_lib extends uvm_sequence_library #(bus_10_transaction); `uvm_object_utils(master_seq_lib) `uvm_sequence_library_utils(master_seq_lib) ## Associate sequences with a sequence lib add_typewide_sequence(read_modify_write_seq::get_type()); # Configure the “default_sequence†config setting to point to the library to point either to your seqeunce or your sequence library typedef uvm_config_db#(uvm_object_wrapper) phase_cfg; phase_cfg::set(this,"demo_tb0.whateverbus.initiator_agent.sequencer.run_phase","default_sequence",whateverbus_initiator_nested_seq::get_type()); Quote Link to comment Share on other sites More sharing options...
dave_59 Posted March 21, 2011 Report Share Posted March 21, 2011 hi, you got three choices here: 1. ignore the deprecated msg 2. switch the deprectated msg off 3. migrate the code to the new sequence library schema /uwe 4th option, just seq.start(seqr); in your test. Quote Link to comment Share on other sites More sharing options...
KathleenMeade Posted March 30, 2011 Report Share Posted March 30, 2011 Hi There - It is a good idea to eventually make the code UVM1.0-compliant but here is an idea for the interim. You can use a message catcher callback if you would like to either turn the "warning" into an "info" message - or if you would like to "catch" the message and not print it. Here is an example for your enjoyment Kathleen Create a new class: class my_catcher extends uvm_report_catcher; virtual function action_e catch(); if (get_severity() == UVM_WARNING && get_id() == "UVM_DEPRECATED") begin set_severity(UVM_INFO); return CAUGHT; // remove this line if you just want to turn it into an INFO message end else // also remove this line if you just want it to be an INFO message return THROW; endfunction endclass Then I put this in my test build() method: virtual function void build(); my_catcher catcher; super.build(); // Create the tb demo_tb0 = demo_tb::type_id::create("demo_tb0", this); // KATHLEEN TEST CALLBACK catcher = new(); uvm_report_cb::add(null,catcher); endfunction : build It should just work! This example removes the message or you can modify your callback to turn it into a UVM_INFO message instead. YOu will see something like this in your log file at the end of simulation: --- UVM Report catcher Summary --- Number of demoted UVM_FATAL reports : 0 Number of demoted UVM_ERROR reports : 0 Number of demoted UVM_WARNING reports: 10 Number of caught UVM_FATAL reports : 0 Number of caught UVM_ERROR reports : 0 Number of caught UVM_WARNING reports : 10 Quote Link to comment Share on other sites More sharing options...
xndwds313 Posted February 1, 2012 Report Share Posted February 1, 2012 can anyone clarify the root cause of these warning messages? when I use an user specified sequencer which is extended from the uvm_sequencer#(base_item), and I create instance in the agent of the user sequencer then when I run the case, I will see those warning, but when I use the uvm_sequencer#(base_item) then I will not see these warnings. why's that? Quote Link to comment Share on other sites More sharing options...
janick Posted February 1, 2012 Report Share Posted February 1, 2012 The message is triggered by the actual registration of the sequences in the deprecated sequencer-based sequence library by the `uvm_update_sequence_lib statement. By using uvm_sequencer#(base_item) directly, you are not using that macro in the constructor, hence you do not create populate the (obsolete) library. Quote Link to comment Share on other sites More sharing options...
Roman Posted February 4, 2012 Report Share Posted February 4, 2012 Hi There, If you are using IRUN to compile your code, you may add following to your irun command line. +uvm_set_action="*",UVM_DEPRECATED,_ALL_,UVM_NO_ACTION The better things to do should be "3. migrate the code to the new sequence library schema" as Uwes mentioned. Quote Link to comment Share on other sites More sharing options...
xndwds313 Posted February 6, 2012 Report Share Posted February 6, 2012 Hi Roman, what is the IRUN? I'm sorry I did not use it before. Quote Link to comment Share on other sites More sharing options...
Roman Posted February 6, 2012 Report Share Posted February 6, 2012 Hi , what is the IRUN?IRUN is Cadence Simulator. Quote Link to comment Share on other sites More sharing options...
xndwds313 Posted February 6, 2012 Report Share Posted February 6, 2012 Hi , IRUN is Cadence Simulator. Hi Roman, thanks a lot for your help. I tried your compile option on VCS, it also does work. Quote Link to comment Share on other sites More sharing options...
Roman Posted February 6, 2012 Report Share Posted February 6, 2012 Hi There, "+uvm_set_action " is build-in UVM aware command line arguments , So you could make this workable in all Vendor's Simulator. uvm_set_action=<comp>,<id>,<severity>,<action> provides the equivalent of various uvm_report_object’s set_report_*_action APIs. The special keyword, ALL , can be provided for both/either the id and/or severity arguments. The action can be UVM_NO_ACTION or a | separated list of the other UVM message actions Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.