API для получения всех дескрипторов компонентов OVM

Существует ли API для получения всех дескрипторов компонентов OVM в среде проверки? Причина, по которой я спрашиваю, заключается в том, что мне нужно преобразовать OVM_FATAL в OVM_NOPRINT с помощью обработчика отчетов OVM. Этот обработчик отчетов является объектом, созданным в каждом компоненте ovm_component. В настоящее время у меня есть set_report_severity_action_hier(OVM_FATAL, OVM_NO_ACTION), вызываемый из base_test, который просто применяется к тесту. Мне нужно, чтобы это повлияло на все компоненты, такие как монитор и драйвер.

заранее спасибо


person user1978273    schedule 25.05.2018    source источник


Ответы (1)


Существует метод ovm_component::find_all(), но он имеет ту же проблему, что и set_report_severity_action_hier(); вам нужно вызвать его после того, как все компоненты будут построены. OVM не имеет обратного вызова Phase_ready_to_end(), поэтому вам нужно поместить вызов set_report_severity_action_hier() на любом этапе после сборки в базовом тесте.

person dave_59    schedule 25.05.2018
comment
Спасибо, Дэйв. find_all не является статической функцией и является частью ovm_root. так что я не должен использовать ovm_top.find_all? Также можете ли вы дать мне какое-либо использование этого? Я попытался сделать это в своем базовом тестовом примере. ovm_top.find_all(get_name(), компоненты). Это просто вернуло мне дескриптор компонента ovm_test_top - person user1978273; 27.05.2018
comment
Хорошо понял. Я использовал тот факт, что ovm_is_match поддерживает регулярные выражения. Поэтому я использовал ovm_root.find_all(*, компоненты). Спасибо Дэйв за ваше решение - person user1978273; 27.05.2018