moh*_*aba 3 regex system-verilog uvm
我试图在systemverilog中按名称获取一个uvm寄存器字段.我想使用正则表达式,以便我可以使用字段名称的模式.这是我的注册字段:
YY_XXX_2_N
ZZ_BBB_3_N
UU_AAA_8_N
MM_CCC_4_N
YY_WWW_9_N
Run Code Online (Sandbox Code Playgroud)
正如您所看到的所有寄存器字段都以_N结尾,我使用以下代码来获取寄存器字段:
field=env.my_regmap.get_field_by_name("_N$");
Run Code Online (Sandbox Code Playgroud)
所以我希望这段代码得到一个与提供的模式匹配的寄存器字段.使用上面的代码,我收到以下错误:
reporter [RegModel] Unable to locate field '_N$' in block 'my_regmap'
Run Code Online (Sandbox Code Playgroud)
我想知道在这种情况下是否有办法使用正则表达式.
谢谢!
get_field_by_name()需要完全匹配才能将单个句柄返回到字段.你需要做的是get_fields()用来构建字段列表,然后使用SV find()
uvm_field_reg all_fields[$], selected_fields[$];
all_fields = get_fields();
selected_fields = all_fields.find(item) with (uvm_re_match("*_N",item.get_name));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |