电子说
uvm_hdl_xxx系列在验证环境中经常使用,hvm_hdl_force/deposit用来后门给信号赋值,uvm_hdl_read用于后门读取信号值。
由于某些原因,导致后门读写失败时,在仿真时会遇到如下的错误:
UVM_ERROR: set: unable to write to hdl path ...
出现这种情况时,可以按如下步骤排查:
检查信号的hierarchy路径是否正确
打开verdi,选中信号后,copy信号的full path可以看到信号的完整路径名。
检查是否添加了debug选项
如果确定信号路径没有问题后,可检查下编译选项中是否添加了-debug_all或者+debug_access+all。
检查信号所在的模块是否为cell
当编译选项没有使用-debug_all,使用的是-debug_access+all或者-debug_access+r+w+f。而恰好信号所在的模块为cell时,也无法正常进行后门访问。
在verdi中,如果模块为cell类型,可以看到undefined cell或者lib cell的标识:
解决办法:
(1)编译选项更换为-debug_all。debug_access+all并不能开启cell和lib类型的访问权限:
The -debug_access+all = -debug_access+line+class+wn+driver+r+w+cbk+f+fn+thread+cbkd. The -debug_access+all option enables debug capabilities equal to -debug_all (except it does not apply capability inside cells and encrypted modules).
(2)结合debug_region编译选项使用:-debug+all -debug_region=cell+lib
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !