Jump to content

thiennguyen

Members
  • Content Count

    3
  • Joined

  • Last visited

Everything posted by thiennguyen

  1. Hi Justin, As promised, I'd like to release the modified uvm_factory.svh file in attachment for your reference. Please search keyword '//CHANGE' for all the changes made. I tested it with some simple test cases for type and instance overrides and it works as the old implementation. May need to be verified more. New data structure of uvm_object_wrapper is as below: uvm_object_wrapper ovrd_type : ultimate overriding type. Initialized to this type. Used to create the object of this type (after no instance override matches). uvm_factory_queue_class inst_override
  2. Hi Justin, Thanks for your reply. I don't have the modified code yet. But I'd like to make my proposal clearer as below. The problems with the factory are: An associative array lookup step needs to be done to retrieve instance override info of requested_type: uvm_factory_queue_class qc; qc = m_inst_override_queues.exists(requested_type) ? m_inst_override_queues[requested_type] : null; Iterate through m_override_info queue to check for override loop. Iterate through m_type_overrides queue to check for type override. Recursive calls of find_override_by_
  3. Hi, As I read the code in uvm-1.2 package, the type override lookup (by uvm_default_factory::find_override_by_type()) seems to be done every time a new UVM object is created. This really hurts performance because object creation happens most frequently in a UVM environment. My idea is: The implementation needs to be changed so that the type override info is put inside each object proxy, instead of a factory's queue (m_type_overrides). When set_type_override_by_type() is called, it sets the override info for every affected object proxy. So when a new object is created, we just u
×
×
  • Create New...