Как да приложа отмени на командния ред към SystemVerilog ovm_sequence обекти?

Бих искал да приложа отмяна на командния ред към обект ovm_sequence като този:

+ovm_set_config_int=*,max_timeout,100000

Полето max_timeout е декларирано в макроса ovm_sequence_utils.

Има ли някакъв начин да го направя? Разбирам, че ovm последователностите не са част от ovm йерархията, така че може би не могат да бъдат модифицирани от командния ред.


person Victor Lyuboslavsky    schedule 12.03.2012    source източник


Отговори (2)


Не знам за механизъм, който ви позволява да настроите конфигурационно пространство като това от командния ред. Бърза грешка на източника на OVM също не показва нищо.

Бърз коментар за

ovm последователностите не са част от ovm йерархията

Те не са конструирани по време на изграждане, това е правилно. Те се създават точно преди да започнат да се изпълняват на секвенсер, но всеки базиран на ovm_object клас може да разпитва цяло число на конфигурацията чрез get_config_int()


Обикновено бих използвал plus-arg за неща като това и бих задал config int в моя базов тестов клас въз основа на този plus-arg. Например командният ред ще има:

+max_timeout=100000

...и след това в моя базов тестов клас, който всичките ми тестове наследяват от:

function void build();
    int timeout;
    [....]
    if ($value$plusargs("max_timeout=%d", timeout)) begin
        `ovm_info(get_type_name(), "Setting timeout", OVM_MEDIUM);
        set_config_int("*", "max_timeout", timeout");
    end
    [....]
endfunction

Обикновено моите употреби не са толкова буквални, като имам флагове, които задават множество стойности, но това е основата.

person Paul S    schedule 13.03.2012

Направих го работещо (следвайки инструкциите от http://www.testbench.in/OT_10_OVM_SEQUENCE_5.html ), като добавим следното към моята ovm_sequence в task body():

if(!(p_sequencer.get_config_int("max_timeout",max_timeout)))
  max_timeout = ... // some default value

Ключът тук е, че конфигурацията на командния ред трябва да бъде зададена за секвенсера и последователността може да вземе тази конфигурация с помощта на гореспоменатия код.

person Victor Lyuboslavsky    schedule 13.03.2012