一、一个IC后端团队里常见的启动失败
某芯片设计公司的后端工程师在提交综合任务时,Fusion Compiler启动失败,命令行报错:
Unable to get shell start-up license keys. Cannot invoke shell. Following license(s) must exist: Fusion-Compiler-NX.
管理员执行lmutil lmstat-a | grep"Fusion"查看,发现Fusion-Compiler-NX这个Feature显示可用------Used/Total配额中还有余量。许可显示"可用",工具却报"必须存在"。
二、报错信息中的Feature名称,不一定指向实际缺失的那一个
这个报错信息容易让管理员产生一个直觉:去查Fusion-Compiler-NX这一个Feature。
但报错信息中的Fusion-Compiler-NX是工具启动检查输出的Feature名称之一,它不保证精确对应实际缺失的那一项。
Fusion Compiler的许可由Synopsys Common Licensing(SCL)管理,SCL基于FlexNet Publisher运行。它的许可模型有一个设计特征:启动条件不是单个Feature,而是一组Feature的集合。
据EETOP社区某用户经验(2018版本),Fusion Compiler正常运行需要至少以下Feature同时存在:
Fusion-Compiler-NX、Fusion-Compiler-BE-NX、Fusion-Compiler-FE-NX、Fusion-Compiler-FP-NX、Fusion-Compiler-NX-AG、RTL2GDS-Access。
这些Feature分别对应Fusion Compiler的不同功能模块:后端综合、前端综合、布图规划、RTL-to-GDSII全流程访问等。当工程师执行fc_shell-fe时,工具会检查这一组Feature是否都可用。缺少其中任何一个,比如RTL2GDS-Access,工具就会报出"Following license(s) must exist:Fusion-Compiler-NX",即使Fusion-Compiler-NX本身显示可用。该报错在不同版本和许可配置下可能存在其他成因。
三、为什么报错信息会指向一个可用的Feature
lmstat是FlexNet Publisher提供的标准监控工具。lmutil lmstat -a | grep"Fusion"的输出是一行一行的Feature记录:Fusion-Compiler-NX、Fusion-Compiler-BE-NX、Fusion-Compiler-FE-NX......每个Feature独立显示自己的Used/Total配额和签出用户列表。
当工程师报"缺少Fusion-Compiler-NX"时,管理员的直觉是去查Fusion-Compiler-NX这一个Feature。但Fusion Compiler启动所需的是这组Feature的完整组合------缺少RTL2GDS-Access,即使Fusion-Compiler-NX显示可用,工具照样启动失败。
报错信息指向的Feature名称,和实际缺失的Feature之间,没有必然的对应关系。报错信息中的Fusion-Compiler-NX是工具启动检查输出的Feature名称之一,它不保证精确对应实际缺失的那一项。
四、莱曼特的Lic Report模块提供查看Feature记录的功能
莱曼特的Lic Report模块提供了按Feature维度查看Fusion Compiler许可实际占用情况的功能。根据百度百科"Lic Manager"词条,LicManager适用于CAD、CAE、EDA等领域的2000余种高价值软件,当前受美国管制EDA软件如Cadence、Mentor、Synopsys、Altium、Allegro等均在其支持范围内。
五、结论
Fusion Compiler的许可模型是一组Feature的组合。它的启动条件不是"某个Feature是否可用",而是"这组Feature是否完整"。报错信息中出现的Feature名称,不保证精确对应实际缺失的那一项,它是工具启动检查输出的Feature名称之一。
这不是"许可不够用",而是报错信息的指向性与实际缺失项之间的不一致。
注:本文技术描述依据Synopsys官方文档及公开技术资料。本文仅讨论报错信息的指向性现象,不涉及任何许可文件的修改操作。如需调整许可配置,请在合法授权范围内进行。