Есть ли способ исправить предупреждение, связанное с поддержкой поиска на основе строк для фабрики? - PullRequest
0 голосов
/ 11 июня 2019

Я бесполезно пытался справиться с постоянным предупреждением, которое я получаю со следующим сообщением:

UVM_WARNING @ 0: reporter [TPRGED] Type name 'packet2mem_comp_Str' already registered with factory. No string-based lookup support for multiple types with the same type name.

Я не зарегистрировал ни одного класса с таким же именем, кроме родительского, который, я полагаю, не представляет никаких проблем.

Мой класс является унаследованным параметризованным классом, объявленным следующим образом:

class packet2mem_comp #(string S = "MEM") extends mem_comp;
  typedef packet2mem_comp #(S) packet2mem_comp_Str;
  `uvm_object_utils(packet2mem_comp_Str)

  function new (string name = "packet2mem_comp");
    super.new(name);
  endfunction : new


... //rest of my code


endclass: packet2mem_comp

Кто-нибудь сталкивался с подобными проблемами?

Приветствия

1 Ответ

0 голосов
/ 11 июня 2019

Существуют специальные версии макросов для параметризованных классов. Вместо

`uvm_object_utils(packet2mem_comp_Str)

попробовать

`uvm_object_param_utils(packet2mem_comp_Str)

или, возможно,

`uvm_object_param_utils(packet2mem_comp #(S))

Вы не опубликовали MCVE, поэтому я не проверял это.

...