Я пытаюсь получить поле регистра uvm по имени в systemverilog. Я хочу использовать регулярное выражение, чтобы я мог использовать шаблон для имени поля. Вот мои регистровых поля:с помощью regex в поисках поля с использованием get_field_by_name
YY_XXX_2_N
ZZ_BBB_3_N
UU_AAA_8_N
MM_CCC_4_N
YY_WWW_9_N
как вы можете видеть все поля регистра заканчивается _N, я использовал следующий код, чтобы получить зарегистрировать поле:
field=env.my_regmap.get_field_by_name("_N$");
поэтому я хочу этот код, чтобы получить регистровое поле, соответствующее предоставленному шаблону. с выше коде, я получаю следующее сообщение об ошибке:
reporter [RegModel] Unable to locate field '_N$' in block 'my_regmap'
Интересно, если есть способ использовать регулярное выражение в этой ситуации.
Спасибо!
Спасибо! он работает, но вы должны инвертировать любую функцию uvm_re_match, которая возвращает 'selected_fields = all_fields.find (item) с (! uvm_re_match (". * _ N $ ", item.get_name()));' –