PDA

View Full Version : elaboration and post_elaboration



miyashita
01-10-2008, 12:48 AM
Hi, OVM Users

There are not elaboration and post_elaboration in Page 4 of OVM_Whitepaper_12-21-07.pdf

I check ovm_component class, but ovm_component have not elaboration and post_elaboration function.
It has export_connections, connect, import_connections and end_of_elaboration function. Is those functions avm_env class members ?

OVM v1.0 does not support elaboration and post_elaboration functions ?

Thanks

dlong
01-10-2008, 04:55 AM
Hi,

The connect, import_connections and export_connections methods form the elaboration phase. The end_of_elaboration method is the post_elaboration phase.

These functions were originally part of the AVM named_component class.

Regards,
Dave
==============
David Long
Doulos
http://www.doulos.com

jlrose
01-10-2008, 04:43 PM
What Dave says is essentially true. In OVM, elaboration is all of the stuff that happens between the post_new phase and the end_of_elaboration phase. There is not an elaboration phase per se. The most important "elaboration" action is the port->implementation binding. This binding happens just before the end_of_elaboration phase. The phase callbacks that Dave listed all happen before port binding.

miyashita
01-13-2008, 10:20 PM
Hi

Thank you for your response.
I understand elaboration and end_of_elaboration phase.

Regards

ctaylor
03-26-2008, 10:09 AM
So should port connections be done in a 'connect' function (which maybe is called only as an AVM legacy thing), or should they just be done in the post_new() call (after super.post_new() which does the build calls).?

dlong
03-26-2008, 10:20 AM
Ports should be connected using the connect functions.

In OVM, the actual connections are not fixed until the port-export hierarchy has been traversed so the import_connections and export_connections methods that were used in AVM for hierarchical exports and ports can be replaced by connect too.

Regards,
Dave

ctaylor
03-26-2008, 10:30 AM
Sorry, I didn't make myself clear. I'm talking about the ovm_component::connect() function that seems to be called automatically - I think this is a legacy of the AVM, but it is not documented in the OVM (1.0.1) Ref guide. Should one put one's port.connect() calls the post_new() function, or is it OK to rely on the component's 'connect' function being called?

dlong
03-26-2008, 10:37 AM
You should override the connect function for the components. You call the port/export connect functions inside this function.

Sorry for any confusion.

Regards,
Dave

ctaylor
03-26-2008, 11:15 AM
So would you say that should be added to the OVM Ref Guide?

dlong
03-26-2008, 01:12 PM
So would you say that should be added to the OVM Ref Guide?

Probably, but that's not for me to say! The post_new and connect phases both occur after construction and before the end of elaboration. My view is that post_new is for stuff that needs to be done after build while connect is for making the connections.

Regards,
Dave