Cadence Capture 常见启动故障总结

 Cadence Capture 常见启动故障总结

今天有小伙伴向老wu咨询了个Capture 16.6的启动异常问题,如下图所示

这个问题老wu之前也有遇到过,只是当时没有找到造成该异常的真正原因,所以直接使用了重装操作系统大法解决了。今天再次面对这个启动异常的问题,老wu建议其尝试了清空Spb_data目录,卸载VC++2005运行库之后重装Cadence SPB 自带的VC++2005运行库等修复方法,但启动异常问题依然存在。

 

如果采用重装操作系统大法肯定是能解决问题,但重装完操作系统之后又要重装许多应用软件,也是挺折腾人的事情,所以觉得有必要花时间分析一下,彻底搞定这个启动异常的问题。

该排查的地方也都排查过了,只能是先跟踪下capture的启动过程,看下都调用了哪些配置文件和dll,看看能不能找到些线索。

果然发现了问题点,16.6的Capture.exe 去调用了17.4的dll,所以造成了启动异常。

问题根源找到了,那解决思路就清晰了,Cadence程序的相关dll文件路径是在环境变量里设置的,应该是PATH的读取优先级问题。PATH中的dll读取策略是从PATH中配置的路径头部开始读取,读取到同名的dll文件之后就不会再继续往后读取了,所以这里先把17.4的dll路径往下移降低其读取优先级,将%CDSROOT%对应的路径排在前边即可。

广告

总结一下,这个启动异常的问题是同时安装了多个版本的Cadence SPB造成的,如果先装了高版本的SPB如17.4再装16.6应该不会有问题,而如果先装的16.6后装的高版本,则后装的Cadence相关的库路径会在PATH里排在前边(读取优先级更高),造成16.6读取到了高版本的dll文件所以加载出错了。

另一个常见的多版本共存的问题也是先装16.6后装17.4造成的,如下图所示的cdn_xxx开头的错误。

这是因为后装的高版本Cadence SPB修改了%CDSROOT%这个环境变量,指向了高版的SPB的安装路径造成16.6启动读取dll文件出现版本异常,此时只需手动修改环境变量CDSROOT,指向16.6的安装后的路径即可,如下图所示

还有一个非常常见的问题是16.6的VC++ 2005 运行库造成的问题,如下图所示

这个只需卸载系统里现有的VC++ 2005的运行库后重新安装16.6自带的运行库即可。

Cadence 16.6的VC++ 2005运行库在16.6的安装后的路径『SPB_16.6\tools\msbase』下,vcredist_x86.exe和vcredist_x64.exe都装上即可。

吴川斌

吴川斌

2 Comments

    硅素生命
  • 感谢,我也是16.6和17.4同时安装出现这个问题,之后清理注册表又重新装了一次还是一样。确实是PATH优先级的问题,有所不同的是我PATH的环境变量里没有生成D:\Cadence\SPB_16.6\tools\bin,新建了一个放在D:\Cadence\SPB_17.4\tools\bin前面就可以顺利打开了。

  • 只会投球的三威胁
  • capture16.6第一个同样的报错。但是确认了环境变量没问题。之前有试过环境变量修改不正确,确实会出现这个报错。现在是第二次出现。另,系统上同时装了16.6和17.4;16.6的capture出现报错,allegro同样打不开,无任何信息,后台进行都是挂起,然后就被杀掉了,pad designer正常打开。17.4的capture无法打开,会提示说当前的打开有问题,然后选yes/no,进入选产品,选完后一样是无任何反应,后台显示一样是被挂起,然后进程被杀掉。但是17.4的allegro、paddesigner正常打开。查看了16.6的capture errorlog,显示是cdn_og1101as.dll无法识别。cadence社区上面也有类似问题,说是系统更新导致。请问可以帮忙排查吗

Leave a Reply