在项目中生成后门路径发现脚本自动生成ralf文件中需要指定一些路径,才可在寄存器模型生成后门路径,ralgen userguide只提供了具体语法,所以记录一下一些关于脚本生成和环境配置的内容
ralf file
在python脚本中,对于field/register/block都需要按照格式填写他们的后门路径,以保证可以通过路径层层索引到该信号值.具体生成的ralf文件如下所示:
for field:
for register:
for block:
环境配置
设置rgm的后门路径,需要指定<BLOCK_NAME>_TOP_PATH对应的路径
//one example
`define <BLOCK>_TOP_PATH tb_cmsdk_mcu.u_cmsdk_mcu.i_XXX_dig_top.u_cmsdk_system
在env也需要设置寄存器模型的后门路径
rgm.build();
rgm.lock_mode();
rgm.default_map.set_auto_predict(1);
rgm.set_hdl_path_root("tb_cmsdk_mcu.u_cmsdk_mcu.i_XXX_dig_top.u_cmsdk_system");
...
Notice
对于不标准的设计,有可能在DUT中找不到对应的寄存器地址的后门路径,地址的返回值是由寄存器变量拼成的,这时候寄存器的后门路径调用时就可能会出错。
对于寄存器后门访问的使用等我进一步用到的时候会继续更新