View Full Version : Missing Classes in avm_compatibility.svh
rahulv.shah
01-17-2008, 09:36 PM
Hi All,
For migrating from AVM3.0 to OVM1.0 using the compatibility feature, the following classes are missing in the avm_compatibility.svh
avm_algorithmic_comparator
avm_in_order_build_in_comparatorThere are few more classes which are missing, but since they are not suppose to be user visible it might not be an issue, but still here is the list (just FYI)
avm_blocking_master_imp
avm_nonblocking_master_imp
avm_master_imp
avm_blocking_slave_imp
avm_nonblocking_slave_imp
avm_slave_imp
avm_analysis_imp
avm_connector_baseFew other differences which are suppose to be invisible to the users (hence it should not ideally affect anyone)
In constructor of avm_named_component there are three arguments: new (name, parent, check_parent) while in ovm_component (used instead of avm_named_component), constructor is having only two arguments: new (name, parent).
class avm_threaded_component consist of task do_run_all() while class ovm_threaded_component doesn't consist of task do_run_all().
Regards
Rahul
There are few more classes which are missing, but since they are not suppose to be user visible it might not be an issue, but still here is the list (just FYI)
avm_blocking_master_imp
avm_nonblocking_master_imp
avm_master_impI noticed this as well, but I've been using the *_imp classes pretty extensively, they are documented and pretty much the only way to create your own source/dest for a connection. Are they really internal??
Also, I found this AVM sequence did not work:
avm_report_server rs = avm_report_server::get_server();
Otherwise pretty easy switch considering how the two projects have a wildly different internal structure.
kurts
01-17-2008, 11:29 PM
Otherwise pretty easy switch considering how the two projects have a wildly different internal structure.
Agreed - I have found that the backward compatibility has far exceeded my expectations. I think the engineering team(s) deserve a pat on the back for their efforts!
-Kurt
rahulv.shah
01-18-2008, 05:18 AM
Hi Kurt,
I agree the engineering team(s) has done a great job for backward compatibility.
Regards
Rahul
dave_59
01-19-2008, 12:57 AM
Hi All,
For migrating from AVM3.0 to OVM1.0 using the compatibility feature, the following classes are missing in the avm_compatibility.svh
avm_algorithmic_comparator
avm_in_order_build_in_comparatorThere are few more classes which are missing, but since they are not suppose to be user visible it might not be an issue, but still here is the list (just FYI)
avm_blocking_master_imp
avm_nonblocking_master_imp
avm_master_imp
avm_blocking_slave_imp
avm_nonblocking_slave_imp
avm_slave_imp
avm_analysis_imp
avm_connector_baseRegards
Rahul
You are right about
avm_algorithmic_comparator
avm_in_order_build_in_comparator
avm_analysis_imp
avm_connector_baseBut the other classes are in there.
Dave
rahulv.shah
01-20-2008, 12:46 AM
Hi Dave ,
I tried migrating AVM3.0 in Questa 6.3d to ovm1.0 for all the above mentioned classes and got the following errors for all the classes mentioned above.
---------------------------------------------------
** Error: near "avm_algorithmic_comp": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_in_order_built_i": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_blocking_master_": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_nonblocking_mast": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_master_imp": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_blocking_slave_i": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_nonblocking_slav": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_slave_imp": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_analysis_imp": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: super.new() call illegal for class with no super-class.
** Error: near "avm_connector_base": syntax error, unexpected "IDENTIFIER"
** Error: Error in class extension specification.
** Error: near "port_type": syntax error, unexpected "IDENTIFIER", expecting ')
---------------------------------------------------------------------------
I also did a grep "grep -i avm_blocking_master_ *" in "ovm-1.0/src/compatibility" but there was no match.
Please let me know if I am missing something for the rest of the classes.
Regards
Rahul
dave_59
01-20-2008, 08:24 PM
My apologies. I see that that macro used to create wrappers for the bi-directional interfaces missed creating the *_imp classes. We will most likely have an OVM update in a week or few.
Dave
We too are finding some missing items in avm compatiblity mode, e.g. when avm_random_stimulus is "aliased" via the `avm_to_ovm_component macro to ovm_random_stimulus the trans_type parameter gets dropped.
We'd like to log and track these issues. What is the correct way to log and report defects with the OVM developers?
Nigele
03-07-2008, 09:48 AM
Hi Wez
If you are a Mentor customer, raise a normal support call and it will be routed to the OVM development team.
You will be able to track resolution via the normal SR/DR process.
I presume Cadence offers a similar capability
- Nigel
dave_59
03-07-2008, 12:22 PM
Hi Wez,
avm_random_stimulus will work as long as you don't use an explicit parameter name in the override. i.e.
avm_random_stimulus #(my_trans) stim_gen; // works
avm_random_stimulus #(.trans_type(my_trans)) stim_gen; // doesn't
But we should fix this anyways.
Dave
Powered by vBulletin™ Version 4.0.3 Copyright © 2010 vBulletin Solutions, Inc. All rights reserved.