Logo兔二思
  • 价格
  • 博客
  • 关于
2025/05/19

一直都在用的 Library Manager,其实还能这样配置

工具专项第一弹:Library Manager 实用配置技巧,包含右键菜单扩展、日志文件管理及常用环境变量设置。

小红书小红书公众号公众号微信微信

在前面的系列中,我们已经系统介绍了 Virtuoso 环境变量配置的 11 个核心应用场景。本篇开始进入 “工具专项配置” 系列,介绍几个工具在实际使用中的环境设置与优化方法。这一篇,我们先从 Library Manager 讲起。

Library Manager 是一个独立的进程,不依赖 Virtuoso 主程序启动,所以它的环境配置方式也相对独立。Library Manager 不读取 .cdsinit 文件,想要自定义它的行为,需要借助两个入口:.cdsenv 和 cdsLibMgr.il。

我个人的配置习惯是:将通用设置统一写进HOME目录下的 cdsLibMgr.il,这样所有项目都能共享;对于一些与具体项目相关的选项,则单独写在项目目录下的 .cdsenv 中,维护起来也比较方便。

理解了 Library Manager 的配置逻辑,下面分享几个我在实际项目中的应用示例。

用 SKILL 脚本拓展 Library Manager 菜单功能

在日常使用 Virtuoso 的过程中,我们经常要执行一些重复性操作,比如导出 GDS、生成 CDL 网表、或解除 Cellview 锁等。这些功能虽然都可以通过菜单或命令窗口实现,但路径分散、步骤繁琐。如果用户不熟悉命令方式,即便写好了对应的 SKILL 脚本,也未必用得方便。

相比之下,把这些常用操作集成进 Library Manager 的右键菜单,是一种更直观、更高效的方式。Virtuoso 提供了相关的 API 接口,比如 lmgrCreateMenuItem、lmgrAddMenuItems 和 lmgrDeleteMenuItems,允许我们自定义 Library Manager 的菜单结构,可以将任意功能以回调的形式绑定到菜单项中。

基于这些接口,我们可以把常用的菜单项全部集成进右键菜单,让我们能直接在 Library、Cell 或 View 级别下完成常用操作。比如,当你在 Library Manager 中选中一个 View,只需点击右键,就可以直接导出 CDL 和 GDS ,无需再打开繁复的表单。再比如,遇到 Cellview 被锁的情况,右键一点,就能用 clsAdminTool 解锁,不用再跳出终端敲命令。

实现过程也不复杂,只需两个文件:

✅cdsLibMgr.il 定义一个菜单项(menu);

✅cdsLibMgrCallbacks.il 编写对应的回调逻辑。

接着,需要在 .cdsinit 中加载这个回调脚本,Virtuoso 启动时将自动识别并应用这些自定义菜单。

最终效果是:当我们在 Library Manager 中右键点击某个库、Cell 或 View,就能看到这些快捷操作项,直接点击即可执行。

(🎁如果你也想试试把这些功能集成进右键菜单,脚本文件已经准备好咯~ 后续我会分享在“交流群”里供大家参考~)

配置 libManager.log 日志文件的路径和命名方式

libManager.log 是由 Library Manager 生成的日志文件,默认情况下,用户从哪个路径启动 Virtuoso,该路径下就会留下 libManager.log 。项目多了之后,这类文件可能会散落在不同目录中,对于需要集中管理或保持目录整洁的用户来说,会带来一些不便。

针对这种情况,我们可以通过配置环境变量,控制日志文件的生成路径与命名方式,例如集中存放到指定目录,再根据用户 ID 来区分日志文件名称。

日志文件集中存放的配置方式

通过 cdsLibManager.log 下的 baseName 属性,可以设定日志文件的生成路径与文件名前缀。例如:

.cdsenv
cdsLibManager.log  baseName  string  "/libManLogs/libManager"

这条配置的含义是:将日志文件输出到 libManLogs 目录,并命名为 libManager.log。

日志的最终路径由环境变量 CDS_LOG_PATH 决定(之前介绍过)。如果你设置成了 /home/users/logs:

.cshrc
setenv CDS_LOG_PATH /home/users/logs

最终的日志路径将变为 /home/users/logs/libManLogs/libManager.log;

若未设置,则退回到当前目录的 ./libManLogs/libManager.log。

按用户名区分文件

如果日志路径设置的是一个共享目录,不同用户生成的日志会重名并相互覆盖。通过启用 addUserID,可自动在文件名中添加用户名:

.cdsenv
cdsLibManager.log  addUserID  boolean  t

系统将为每位用户生成独立的 libManager.<userID>.log 文件:

libManager.zhangsan.log
libManager.lisi.log

其中 zhangsan 和 lisi 是当前系统的用户名。

📌如果部署在多主机或并行使用场景下,还可以分别启用 addHostID、addProcID 和 addSequence 扩展选项,来进一步区分日志来源。

控制删除库时是否保留注释行

在使用 Library Manager 删除库时,cds.lib 文件中会自动添加一行注释,记录被移除的库路径,例如:

cds.lib
#Removed by ddDeleteObj: DEFINE demolib /home/user/demolib

如果希望关闭该行为,可以在你的 shell 文件中添加如下环境变量:

.cshrc
setenv DD_DELETE_DEFINE yes

设置后,Library Manager 删除库时将不再在 cds.lib 中保留相关注释。

📌如果你也遇到过 cds.lib 注释越来越长的情况,不妨试试这个小技巧吧。

其它常用的配置项

除了前面介绍的几个设置,Library Manager 还有一些日常使用中常见的配置项,我们可以根据实际需求来启用或调整。

配置项列表说明如下:

以上就是我常用的 Library Manager 配置方法。如果你也有自己的 Library Manager 使用技巧,欢迎留言交流。

END.

全部文章
用 SKILL 脚本拓展 Library Manager 菜单功能配置 libManager.log 日志文件的路径和命名方式日志文件集中存放的配置方式按用户名区分文件控制删除库时是否保留注释行其它常用的配置项

更多文章

Virtuoso 多窗口管理:自定义标题栏和显示样式
环境配置

Virtuoso 多窗口管理:自定义标题栏和显示样式

快速区分项目:修改 CIW 窗口和设计窗口标题栏的文本显示;设置 Palette(LSW) 面板显示样式

avatar for Tina
Tina
2024/08/12
Virtuoso 字体不再小:一招放大你的屏幕字体
环境配置

Virtuoso 字体不再小:一招放大你的屏幕字体

三种方式调整高分辨率下的字体大小,修正大字体导致表单文本重叠的问题。

avatar for Tina
Tina
2024/07/31
如何解决 “LVS 验证时 Source 端网表未定义 SUBCKT” 的问题
扩展开发

如何解决 “LVS 验证时 Source 端网表未定义 SUBCKT” 的问题

遇到 LVS 提示 Source netlist 缺少 SUBCKT 定义时,通常是 CDL 网表没有包含 PDK 的器件定义文件。本文介绍问题原因、include 文件添加方式,以及如何保存为可复用配置。

avatar for Tina
Tina
2021/02/18

邮件列表

加入我们的社区

订阅邮件列表,及时获取最新消息和更新

小红书公众号微信
© 2026 兔二思. All Rights Reserved.