### [EDA工具更新实测 三步避开常见报错坑](https://2632.net/courses/2100003517.html) **Published:** 2026-04-05T04:04:05 **Author:** 智行者IC社区 **Excerpt:** 我亲身进行了Synopsys ICC2 2025.12 – SP3的测试,遭遇了更新以后从前旧版的Tcl脚本全都报告出现 “unknown command” 这个状况的陷阱 我亲身进行了Synopsys ICC2 2025.12 – SP3的测试,遭遇了更新以后从前旧版的Tcl脚本全都报告出现 “unknown command” 这个状况的陷阱,刚入门的新手依照下面的步骤一个一个地去操作,便能够轻易地躲开这类常见的问题。 ## 步骤1 更新后[环境变量](/doc/3447.html "环境变量")怎么配 首先实现打开终端这个操作,接着进行输入 setenv ICC2\_HOME /tools/synopsys/ICC2/2025.12 – SP3 这一情况举动,随后再把 $ICC2\_HOME/bin 添加追加到 PATH 最前沿位置,具体为之 set path = ( $ICC2\_HOME/bin $path ) 这样的操作行为。具有关键意义的参数ICC2\_THREADS,其被推荐设置成为16,原因在于此版本针对多线程调度进行了优化,要是设置得太小,就会造成算力的浪费,要是设置得太大,超过了物理核数情况之下,反而会因为上下文切换导致效率降低20%。 初涉者需避开的坑:在常见报错当中,有“libstdc++.so.6: version GLIBCXX\_3.4.22 not found”这种情况。其缘由在于,新的EDA依赖着更高版本的GCC库,然而系统默认的库年头太久远了。快点来解决这个问题:于启动脚本里,将LD\_LIBRARY\_PATH设置为$ICC2\_HOME/gcc/lib64与$LD\_LIBRARY\_PATH连接起来的路径,并且要去确认在此路径范畴内存在与之对应的库文件,对此要进行一番操作哦。 ## 步骤2 旧工艺库无法识别怎么办 把Library Manager打开,将File -> Add Library点击,让路径朝着旧工艺库文件夹去指向。要是报出“invalid library format”,那就得运行icc2\_shell -f convert\_lib.tcl,convert\_lib.tcl的内容是read\_lib -format db old\_lib.db,write\_lib -format ndm new\_lib.ndm。参数-format ndm呈现的是NDM格式,而新版ICC2在默认状态下会进行读取。 新手需避开此坑:出现报错“Library cell missing pin geometry”。其原因在于,旧版使用FRAM视图 ,而新版会强制采用NDM的完整几何信息。要快速解决该问题:可使用官方脚本milkyway2ndm.py -i old\_mw\_lib -o new\_ndm\_lib -t 16 ,这里的16代表金属层数 ,需依据实际工艺进行更改。 ## 步骤3 两种更新策略怎么选 方案 A:径直实行覆盖安装旧版本目录,其具备不用更改脚本路径的优点,然而存在新旧二进制混合易于崩溃的缺点,方案 B:构建独立目录,通过软链接指向最新版,它拥有可随时进行回滚的优点,不过存在需要批量修改脚本中的 source 路径的缺点,推荐在芯片规模大于 500 万门时采用方案 B,因为一旦新版出现 bug,回滚仅需 10 秒变动软链接,小规模设计采用方案 A 较为省事。 给新手的避坑提示:出现报错内容为“ERROR: Cannot open shared object file: libssl.so.1.0.0”。一种一站式的解决办法为:先是使用命令find / -name”libssl.so\*” ,之后发现系统当中仅存在1.1版本。随后进行软链接的创建,ln -s /usr/lib64/libssl.so.1.1 /tools/eda/lib/libssl.so.1.0.0。接着执行 export LD\_PRELOAD=/tools/eda/lib/libssl.so.1.0.0。需要留意,此方法仅仅适用于小版本的兼容情景,要是 EDA 强行校验 MD5 ,那么就需要对 OpenSSL 1.0.2 重新开展编译。 以下版本不适用于本方法,Cadence Innovus版本低于2024的情况也是,因其库依赖全然不同。替代方案为:直接运行官方所提供的docker镜像,以此避免环境冲突。你在更新EDA时还碰到过哪些奇葩报错?在评论区分享出来,一同避坑。 **Categories:** 技术文档 ---