VCS elab没有问题,再运行时碰到报错:
The object at dereference depth 1 is being used before it was constructed/allocated.
Please make sure that the object is allocated before using it.
具体出错的代码是下图中第45行:
我理解的这个报错信息意思大概是,这行代码中,有没有实例化,就拿来使用的部分。但是我不能确定这里是virt_sqr, ahb_mst_sqr, ahb_mst, sequencer, 它们四个当中的哪一个出了问题。
首先第一直觉是右边的部分出了问题,我先去追踪了sequencer,看其是否有实例化,但是这里的sequencer在agent中,根据 is_active 来判断是否将其实例化。而这里的is_active又是在config文件中设置的。所以我去将其默认值设置为1,再次编译运行,依然报错。然后考虑ahb_mst是否再env中由实例化,看到其由create创建,所以不是它的问题,排除这两个。第三个考虑的是ahb_mst_sqr是否有实例化,去到其文件中查看果然没有实例化,所以将其实例化,再次编译运行,依然报同样的错误,才反应过来,这里的ahb_mst_sqr可以只是一个句柄,指向一个sequencer而已,并不用将其实例化。所以问题就很清楚了,是virt_sqr的问题,看了一下,果然没有实例化,create之后,问题解决!
标签:ahb,object,sqr,mst,allocated,before From: https://www.cnblogs.com/fuqiangblog/p/16621229.html