使用xrun MSIE flow在进行多个snapshot的编译的时,当进行到最后top模块的elaboration的时候,遇到如下异常:
ImportError: No module named site
xmelab: *F,INTERR: INTERNAL EXCEPTION
-----------------------------------------------------------------
The tool has encountered an unexpected condition and must exit.
Contact Cadence Design Systems customer support about this
problem and provide enough information to help us reproduce it,
including the logfile that contains this error message.
TOOL: xmelab(64) 20.09-s023
HOSTNAME: hzfes1
OPERATING SYSTEM: Linux 2.6.32-754.el6.x86_64 #1 SMP Thu May 24 18:18:25 EDT 2018 x86_64
MESSAGE: ifmgr - pt_build() - size calculated incorrectly 36947 vs 36948
查询了Cadence help有如下解释:
This internal error comes in multi xrun MSIE non-Bbox flow. The reason is that, the non-Bbox flow shares
the elaboration environment. If the same specialization of the code generation happens in different primaries, then, at the
time of incremental elaboration, the primaries cannot distinguish which code generation belongs to them and it loads
incorrect code generation. Due to this shared environment, this results into this internal error with message "ifmgr -
pt_build()"
This issue can be resolved using the multi Xrun MSIE Bbox flow. This flow enables primaries to know their entire
compilation and elaboration data structures.
- Use bbox_create while creating the primary:
xrun -clean msie.sv -mkprimsnap -top prim1 -name prim1 -xmlibdirname prim1_lib -
bbox_create bbox1 -access r
xrun -clean msie.sv -mkprimsnap -top prim2 -name prim2 -xmlibdirname prim2_lib -
bbox_create bbox2 -access r
上面的命令会在编译目录下创建bbox1和bbox2文件夹
Note: Make sure to use different snapshot name (passed with -name) to different primaries using -bbox_create.
2. Use bbox_link to refer the primaries during incremental elaboration:
xrun -clean msie.sv -primname prim1@prim1_lib -bbox_link 绝对路径指到/bbox1 -
primname prim2@prim2_lib -bbox_link 绝对路径指到/bbox2 -top incr